eyeot ERP
ERP français avec serveur MCP natif : plus de 1 800 actions métier auto-générées via OpenAPI.
사용해야 할까요
품질 및 안전성
발견 사항 (17)
- LOWwhoami에서
- LOWcreate_client에서
- LOWget_client에서
- LOWupdate_client에서
- LOWcreate_opportunity에서
- LOWcreate_quote에서
- LOWaccept_quote에서
- LOWquote_pdf에서
- LOWcreate_invoice에서
- LOWinvoice_from_quote에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`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
}커뮤니티
증거