eyeot ERP

ERP français avec serveur MCP natif : plus de 1 800 actions métier auto-générées via OpenAPI.

사용해야 할까요

품질 및 안전성

B
설명 품질
64%
스키마 완전성
62%
이름 품질
94%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (17)

  • LOWTool 'whoami' description lacks action verbwhoami에서
  • LOWTool 'create_client' description lacks action verbcreate_client에서
  • LOWTool 'get_client' description lacks action verbget_client에서
  • LOWTool 'update_client' description lacks action verbupdate_client에서
  • LOWTool 'create_opportunity' description lacks action verbcreate_opportunity에서
  • LOWTool 'create_quote' description lacks action verbcreate_quote에서
  • LOWTool 'accept_quote' description lacks action verbaccept_quote에서
  • LOWTool 'quote_pdf' description lacks action verbquote_pdf에서
  • LOWTool 'create_invoice' description lacks action verbcreate_invoice에서
  • LOWTool 'invoice_from_quote' description lacks action verbinvoice_from_quote에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~4,368토큰 (도구 정의)
~954 B일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 3.41%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`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
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 33개
검증됨버전이 기록되지 않음도구 33개
검증됨버전이 기록되지 않음도구 33개