eyeot ERP
ERP français avec serveur MCP natif : plus de 1 800 actions métier auto-générées via OpenAPI.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (17)
- LOWin whoami
- LOWin create_client
- LOWin get_client
- LOWin update_client
- LOWin create_opportunity
- LOWin create_quote
- LOWin accept_quote
- LOWin quote_pdf
- LOWin create_invoice
- LOWin invoice_from_quote
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"eyeot-erp": {
"url": "https://erp.eyeot.fr/api/v1/mcp"
}
}
}Remote-Endpunkte
https://erp.eyeot.fr/api/v1/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (33)
🟢whoami
Récupérer l'utilisateur authentifié + organisation active + permissions. À APPELER AVANT toute réponse mentionnant l'org/user/plan/role.
Eingabe-Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢list_clients
Lister les clients (CRM)
Eingabe-Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟡create_client(body)
Créer un client
Eingabe-Schema
{
"type": "object",
"properties": {
"body": {
"additionalProperties": false,
"description": "Request body",
"properties": {
"address": {
"type": [
"string",
"null"
]
},
"address_line1": {
"maxLength": 255,
"type": [
"string",
"null"
]
},
"address_line2": {
"maxLength": 255,
"type": [
"string",
"null"
]
},
"category": {
"enum": [
"prospect",
"client"
],
"type": "string"
},
"city": {
"maxLength": 120,
"type": [
"string",
"null"
]
},
"company": {
"maxLength": 200,
"type": [
"string",
"null"
]
},
"country": {
"maxLength": 80,
"type": [
"string",
"null"
]
},
"email": {
"format": "email",
"type": [
"string",
"null"
]
},
"first_name": {
"maxLength": 100,
"type": [
"string",
"null"
]
},
"icp_score": {
"maximum": 100,
"minimum": 0,
"type": [
"integer",
"null"
]
},
"last_name": {
"maxLength": 100,
"type": [
"string",
"null"
]
},
"marketing_opt_in": {
"type": "boolean"
},
"name": {
"maxLength": 200,
"minLength": 2,
"type": [
"string",
"null"
]
},
"notes": {
"type": [
"string",
"null"
]
},
"phone": {
"pattern": "^\\+?[0-9\\s\\-().]{6,30}$",
"type": [
"string",
"null"
]
},
"postal_code": {
"maxLength": 20,
"type": [
"string",
"null"
]
},
"siren": {
"maxLength": 11,
"type": [
"string",
"null"
]
},
"siret": {
"maxLength": 17,
"type": [
"string",
"null"
]
},
"status": {
"enum": [
"actif",
"inactif",
"archivé",
null
],
"type": [
"string",
"null"
]
},
"vat_number": {
"maxLength": 32,
"type": [
"string",
"null"
]
},
"website": {
"pattern": "^(https?://)?[a-zA-Z0-9][a-zA-Z0-9.\\-]*\\.[a-zA-Z]{2,}(/.*)?$",
"type": [
"string",
"null"
]
}
},
"type": "object"
}
},
"required": [
"body"
],
"additionalProperties": false
}🟢get_client(client_id)
Récupérer un client par id
Eingabe-Schema
{
"type": "object",
"properties": {
"client_id": {
"description": "(path parameter)",
"type": "string"
}
},
"required": [
"client_id"
],
"additionalProperties": false
}🟡update_client(body, client_id)
Mettre à jour un client
Eingabe-Schema
{
"type": "object",
"properties": {
"body": {
"additionalProperties": false,
"description": "Request body",
"properties": {
"address": {
"type": [
"string",
"null"
]
},
"address_line1": {
"maxLength": 255,
"type": [
"string",
"null"
]
},
"address_line2": {
"maxLength": 255,
"type": [
"string",
"null"
]
},
"category": {
"enum": [
"prospect",
"client"
],
"type": "string"
},
"city": {
"maxLength": 120,
"type": [
"string",
"null"
]
},
"company": {
"maxLength": 200,
"type": [
"string",
"null"
]
},
"country": {
"maxLength": 80,
"type": [
"string",
"null"
]
},
"email": {
"format": "email",
"type": [
"string",
"null"
]
},
"first_name": {
"maxLength": 100,
"type": [
"string",
"null"
]
},
"icp_score": {
"maximum": 100,
"minimum": 0,
"type": [
"integer",
"null"
]
},
"last_name": {
"maxLength": 100,
"type": [
"string",
"null"
]
},
"marketing_opt_in": {
"type": "boolean"
},
"name": {
"maxLength": 200,
"minLength": 2,
"type": [
"string",
"null"
]
},
"notes": {
"type": [
"string",
"null"
]
},
"phone": {
"pattern": "^\\+?[0-9\\s\\-().]{6,30}$",
"type": [
"string",
"null"
]
},
"postal_code": {
"maxLength": 20,
"type": [
"string",
"null"
]
},
"siren": {
"maxLength": 11,
"type": [
"string",
"null"
]
},
"siret": {
"maxLength": 17,
"type": [
"string",
"null"
]
},
"status": {
"enum": [
"actif",
"inactif",
"archivé"
],
"type": "string"
},
"vat_number": {
"maxLength": 32,
"type": [
"string",
"null"
]
},
"website": {
"pattern": "^(https?://)?[a-zA-Z0-9][a-zA-Z0-9.\\-]*\\.[a-zA-Z]{2,}(/.*)?$",
"type": [
"string",
"null"
]
}
},
"type": "object"
},
"client_id": {
"description": "(path parameter)",
"type": "string"
}
},
"required": [
"body",
"client_id"
],
"additionalProperties": false
}🟢list_opportunities
Lister les opportunités commerciales
Eingabe-Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟡create_opportunity(body)
Créer une opportunité
Eingabe-Schema
{
"type": "object",
"properties": {
"body": {
"additionalProperties": false,
"description": "Request body",
"properties": {
"amount": {
"maximum": 9999999999.99,
"minimum": 0,
"type": [
"number",
"null"
]
},
"client_id": {
"type": "string"
},
"expected_close_date": {
"format": "date-time",
"type": [
"string",
"null"
]
},
"notes": {
"maxLength": 5000,
"type": [
"string",
"null"
]
},
"probability": {
"maximum": 100,
"minimum": 0,
"type": [
"integer",
"null"
]
},
"stage": {
"maxLength": 40,
"minLength": 1,
"type": "string"
}
},
"required": [
"client_id",
"title"
],
"type": "object"
}
},
"required": [
"body"
],
"additionalProperties": false
}⚪convert_opportunity_to_quote(opportunity_id)
Convertir une opportunité en devis
Eingabe-Schema
{
"type": "object",
"properties": {
"opportunity_id": {
"description": "(path parameter)",
"type": "string"
}
},
"required": [
"opportunity_id"
],
"additionalProperties": false
}🟢list_quotes
Lister les devis
Eingabe-Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟡create_quote(body)
Créer un devis
Eingabe-Schema
{
"type": "object",
"properties": {
"body": {
"description": "Request body",
"properties": {
"client_id": {
"type": "string"
},
"currency": {
"type": "string"
},
"discount_percent": {
"maximum": "100",
"minimum": "0",
"type": [
"number",
"null"
]
},
"intervention_date": {
"format": "date",
"type": [
"string",
"null"
]
},
"items": {
"items": {
"properties": {
"discount_percent": {
"type": "object"
},
"product_id": {
"type": "object"
},
"product_name": {
"type": "object"
},
"quantity": {
"type": "object"
},
"tva_rate": {
"type": "object"
},
"unit_price": {
"type": "object"
}
},
"required": [
"quantity",
"unit_price"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"notes": {
"type": [
"string",
"null"
]
},
"opportunity_id": {
"type": [
"string",
"null"
]
},
"technician_id": {
"type": [
"string",
"null"
]
},
"valid_until": {
"format": "date",
"type": [
"string",
"null"
]
}
},
"required": [
"client_id",
"items"
],
"type": "object"
}
},
"required": [
"body"
],
"additionalProperties": false
}⚪accept_quote(quote_id)
Marquer un devis accepté (par le client)
Eingabe-Schema
{
"type": "object",
"properties": {
"quote_id": {
"description": "(path parameter)",
"type": "string"
}
},
"required": [
"quote_id"
],
"additionalProperties": false
}🟢quote_pdf(quote_id)
Récupérer le PDF d'un devis
Eingabe-Schema
{
"type": "object",
"properties": {
"quote_id": {
"description": "(path parameter)",
"type": "string"
}
},
"required": [
"quote_id"
],
"additionalProperties": false
}🟢list_invoices
Lister les factures
Eingabe-Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟡create_invoice
Créer une facture
Eingabe-Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}⚪invoice_from_quote(quote_id)
Créer une facture à partir d'un devis
Eingabe-Schema
{
"type": "object",
"properties": {
"quote_id": {
"description": "(path parameter)",
"type": "string"
}
},
"required": [
"quote_id"
],
"additionalProperties": false
}🟢list_products
Lister les produits / catalogue
Eingabe-Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟡create_product(body)
Créer un produit (catalogue stock)
Eingabe-Schema
{
"type": "object",
"properties": {
"body": {
"additionalProperties": false,
"description": "Request body",
"properties": {
"auto_reorder": {
"type": "boolean"
},
"barcode": {
"pattern": "^[0-9A-Za-z\\-]{1,64}$",
"type": [
"string",
"null"
]
},
"category": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"cost_price": {
"minimum": "0.00",
"type": [
"number",
"null"
]
},
"name": {
"maxLength": 300,
"minLength": 1,
"type": "string"
},
"quantity_in_stock": {
"minimum": "0.000",
"type": "number"
},
"reorder_quantity": {
"minimum": "0.000",
"type": [
"number",
"null"
]
},
"site_id": {
"format": "uuid",
"type": [
"string",
"null"
]
},
"sku": {
"maxLength": 50,
"minLength": 1,
"type": "string"
},
"sold_by_weight": {
"type": "boolean"
},
"threshold": {
"minimum": "0.000",
"type": "number"
},
"unit": {
"maxLength": 30,
"type": "string"
},
"unit_precision": {
"maximum": 3,
"minimum": 0,
"type": "integer"
},
"unit_price": {
"minimum": "0.00",
"type": "number"
},
"valuation_method": {
"enum": [
"FIFO",
"LIFO",
"CMP"
],
"type": "string"
}
},
"required": [
"category",
"name",
"sku",
"unit_price"
],
"type": "object"
}
},
"required": [
"body"
],
"additionalProperties": false
}🟢list_stock_alerts
Alertes stock bas / rupture
Eingabe-Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢stock_dashboard
Dashboard stock (KPIs)
Eingabe-Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢list_employees
Lister les employés
Eingabe-Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟡create_employee
Créer un employé
Eingabe-Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢list_leaves
Lister les demandes de congés
Eingabe-Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}⚪request_leave(body)
Demander un congé
Eingabe-Schema
{
"type": "object",
"properties": {
"body": {
"description": "Request body",
"properties": {
"end_date": {
"format": "date",
"type": "string"
},
"half_day_end": {
"type": "boolean"
},
"half_day_start": {
"type": "boolean"
},
"leave_type_id": {
"format": "uuid",
"type": [
"string",
"null"
]
},
"reason": {
"maxLength": 2000,
"type": [
"string",
"null"
]
},
"start_date": {
"format": "date",
"type": "string"
},
"type": {
"type": "string"
}
},
"required": [
"end_date",
"start_date",
"type"
],
"type": "object"
}
},
"required": [
"body"
],
"additionalProperties": false
}🟢list_tickets
Lister les tickets IT
Eingabe-Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟡create_ticket(body)
Créer un ticket IT
Eingabe-Schema
{
"type": "object",
"properties": {
"body": {
"additionalProperties": false,
"description": "Request body",
"properties": {
"cart_lines": {
"items": {
"additionalProperties": false,
"properties": {
"discount_cents": {
"type": "object"
},
"label": {
"type": "object"
},
"product_id": {
"type": "object"
},
"qty": {
"type": "object"
},
"tax_rate_percent": {
"type": "object"
},
"total_ht_cents": {
"type": "object"
},
"total_ttc_cents": {
"type": "object"
},
"total_tva_cents": {
"type": "object"
},
"unit_price_ht_cents": {
"type": "object"
}
},
"required": [
"label",
"qty",
"tax_rate_percent",
"total_ht_cents",
"total_ttc_cents",
"total_tva_cents",
"unit_price_ht_cents"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"client_id": {
"format": "uuid",
"type": [
"string",
"null"
]
},
"payments": {
"items": {
"additionalProperties": false,
"properties": {
"amount_cents": {
"type": "object"
},
"card_brand": {
"type": "object"
},
"change_cents": {
"type": "object"
},
"charge_id": {
"type": "object"
},
"last4": {
"type": "object"
},
"method": {
"type": "object"
},
"payment_intent_id": {
"type": "object"
},
"provider": {
"type": "object"
},
"reader_id": {
"type": "object"
}
},
"required": [
"amount_cents",
"method"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"session_id": {
"format": "uuid",
"type": "string"
}
},
"required": [
"cart_lines",
"payments",
"session_id"
],
"type": "object"
}
},
"required": [
"body"
],
"additionalProperties": false
}🟢list_suppliers
Lister les fournisseurs
Eingabe-Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢list_orders
Lister les bons de commande
Eingabe-Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟡create_order(body)
Créer un bon de commande
Eingabe-Schema
{
"type": "object",
"properties": {
"body": {
"additionalProperties": false,
"description": "Request body",
"properties": {
"expected_delivery_date": {
"format": "date",
"type": [
"string",
"null"
]
},
"items": {
"items": {
"additionalProperties": false,
"properties": {
"product_id": {
"type": "object"
},
"quantity": {
"type": "object"
},
"unit_price": {
"type": "object"
}
},
"required": [
"product_id",
"quantity"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"notes": {
"type": [
"string",
"null"
]
},
"order_type": {
"enum": [
"MANUAL",
"AUTO"
],
"type": "string"
},
"site_id": {
"format": "uuid",
"type": [
"string",
"null"
]
},
"supplier_id": {
"format": "uuid",
"type": "string"
}
},
"required": [
"items",
"supplier_id"
],
"type": "object"
}
},
"required": [
"body"
],
"additionalProperties": false
}🟢dashboard_kpis
KPIs du dashboard principal
Eingabe-Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢dashboard_alerts
Alertes du dashboard
Eingabe-Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢search
Recherche globale cross-module
Eingabe-Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢eyeot_help(action, module, search)
Catalog des actions disponibles sur eyeot ERP. Sans argument : liste les modules et compteur d'actions. Avec `module='rh'` : liste toutes les actions RH (employes, conges, paie, formations…). Avec `action='rh.employes.create'` : retourne le détail (path, méthode, params, schema body). Avec `search='facture'` : recherche les actions matchant. Toujours appeler eyeot_help AVANT eyeot_call pour découvrir l'action exacte.
Eingabe-Schema
{
"type": "object",
"properties": {
"action": {
"description": "Action exacte au format `<module>.<resource>.<verb>` (ex: 'rh.employes.create'). Retourne le schéma complet.",
"type": "string"
},
"module": {
"description": "Nom du module (ex: 'rh', 'finance', 'clients'). Optionnel.",
"type": "string"
},
"search": {
"description": "Recherche textuelle dans les noms d'action et descriptions. Optionnel.",
"type": "string"
}
},
"additionalProperties": false
}🔴eyeot_call(action, params)
Exécute une action eyeot ERP par son nom canonique. Format action : `<module>.<resource>.<verb>` (ex: 'clients.list', 'rh.employes.create', 'quotes.send'). Toujours utiliser eyeot_help d'abord pour connaître l'action + les params attendus. Les params path (ex: id) et le body JSON sont passés dans `params`.
Eingabe-Schema
{
"type": "object",
"properties": {
"action": {
"description": "Nom canonique de l'action (ex: 'rh.employes.create').",
"type": "string"
},
"params": {
"additionalProperties": true,
"description": "Tous les paramètres mélangés : path params (id, ...), query params (limit, cursor, ...) et body fields. Le serveur route automatiquement selon la spec OpenAPI.",
"type": "object"
}
},
"required": [
"action"
],
"additionalProperties": false
}Community
Nachweis