eyeot ERP
ERP français avec serveur MCP natif : plus de 1 800 actions métier auto-générées via OpenAPI.
我该使用它吗
质量与安全性
发现(17)
- LOW在 whoami 中
- LOW在 create_client 中
- LOW在 get_client 中
- LOW在 update_client 中
- LOW在 create_opportunity 中
- LOW在 create_quote 中
- LOW在 accept_quote 中
- LOW在 quote_pdf 中
- LOW在 create_invoice 中
- LOW在 invoice_from_quote 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"eyeot-erp": {
"url": "https://erp.eyeot.fr/api/v1/mcp"
}
}
}远程端点
https://erp.eyeot.fr/api/v1/mcpstreamable-http它能做什么
工具清单
工具(33)
🟢whoami
Récupérer l'utilisateur authentifié + organisation active + permissions. À APPELER AVANT toute réponse mentionnant l'org/user/plan/role.
输入模式
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢list_clients
Lister les clients (CRM)
输入模式
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟡create_client(body)
Créer un client
输入模式
{
"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
输入模式
{
"type": "object",
"properties": {
"client_id": {
"description": "(path parameter)",
"type": "string"
}
},
"required": [
"client_id"
],
"additionalProperties": false
}🟡update_client(body, client_id)
Mettre à jour un client
输入模式
{
"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
输入模式
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟡create_opportunity(body)
Créer une opportunité
输入模式
{
"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
输入模式
{
"type": "object",
"properties": {
"opportunity_id": {
"description": "(path parameter)",
"type": "string"
}
},
"required": [
"opportunity_id"
],
"additionalProperties": false
}🟢list_quotes
Lister les devis
输入模式
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟡create_quote(body)
Créer un devis
输入模式
{
"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)
输入模式
{
"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
输入模式
{
"type": "object",
"properties": {
"quote_id": {
"description": "(path parameter)",
"type": "string"
}
},
"required": [
"quote_id"
],
"additionalProperties": false
}🟢list_invoices
Lister les factures
输入模式
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟡create_invoice
Créer une facture
输入模式
{
"type": "object",
"properties": {},
"additionalProperties": false
}⚪invoice_from_quote(quote_id)
Créer une facture à partir d'un devis
输入模式
{
"type": "object",
"properties": {
"quote_id": {
"description": "(path parameter)",
"type": "string"
}
},
"required": [
"quote_id"
],
"additionalProperties": false
}🟢list_products
Lister les produits / catalogue
输入模式
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟡create_product(body)
Créer un produit (catalogue stock)
输入模式
{
"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
输入模式
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢stock_dashboard
Dashboard stock (KPIs)
输入模式
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢list_employees
Lister les employés
输入模式
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟡create_employee
Créer un employé
输入模式
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢list_leaves
Lister les demandes de congés
输入模式
{
"type": "object",
"properties": {},
"additionalProperties": false
}⚪request_leave(body)
Demander un congé
输入模式
{
"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
输入模式
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟡create_ticket(body)
Créer un ticket IT
输入模式
{
"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
输入模式
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢list_orders
Lister les bons de commande
输入模式
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟡create_order(body)
Créer un bon de commande
输入模式
{
"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
输入模式
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢dashboard_alerts
Alertes du dashboard
输入模式
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢search
Recherche globale cross-module
输入模式
{
"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.
输入模式
{
"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`.
输入模式
{
"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
}社区
证据