MCP 서버

eyeot ERP

io.github.Termi24/eyeot-erp
비즈니스 및 운영 영업 및 CRM 공개 · 연결 가능 MCP 2026-07-28

이 MCP로 할 수 있는 일

Exposes French ERP operations for managing customers, employees, opportunities, quotes, orders, invoices, products, suppliers, stock, leave, and IT tickets.

accept_quote
Marquer un devis accepté (par le client)
입력 스키마
{'type': 'object', 'required': ['quote_id'], 'properties': {'quote_id': {'type': 'string', 'description': '(path parameter)'}}, 'additionalProperties': False}
convert_opportunity_to_quote
Convertir une opportunité en devis
입력 스키마
{'type': 'object', 'required': ['opportunity_id'], 'properties': {'opportunity_id': {'type': 'string', 'description': '(path parameter)'}}, 'additionalProperties': False}
create_client
Créer un client
입력 스키마
{'type': 'object', 'required': ['body'], 'properties': {'body': {'type': 'object', 'properties': {'city': {'type': ['string', 'null'], 'maxLength': 120}, 'name': {'type': ['string', 'null'], 'maxLength': 200, 'minLength': 2}, 'email': {'type': ['string', 'null'], 'format': 'email'}, 'notes': {'type': ['string', 'null']}, 'phone': {'type': ['string', 'null'], 'pattern': '^\\+?[0-9\\s\\-().]{6,30}$'}, 'siren': {'type': ['string', 'null'], 'maxLength': 11}, 'siret': {'type': ['string', 'null'], 'maxLength': 17}, 'status': {'enum': ['actif', 'inactif', 'archivé', None], 'type': ['string', 'null']}, 'address': {'type': ['string', 'null']}, 'company': {'type': ['string', 'null'], 'maxLength': 200}, 'country': {'type': ['string', 'null'], 'maxLength': 80}, 'website': {'type': ['string', 'null'], 'pattern': '^(https?://)?[a-zA-Z0-9][a-zA-Z0-9.\\-]*\\.[a-zA-Z]{2,}(/.*)?$'}, 'category': {'enum': ['prospect', 'client'], 'type': 'string'}, 'icp_score': {'type': ['integer', 'null'], 'maximum': 100, 'minimum': 0}, 'last_name': {'type': ['string', 'null'], 'maxLength': 100}, 'first_name': {'type': ['string', 'null'], 'maxLength': 100}, 'vat_number': {'type': ['string', 'null'], 'maxLength': 32}, 'postal_code': {'type': ['string', 'null'], 'maxLength': 20}, 'address_line1': {'type': ['string', 'null'], 'maxLength': 255}, 'address_line2': {'type': ['string', 'null'], 'maxLength': 255}, 'marketing_opt_in': {'type': 'boolean'}}, 'description': 'Request body', 'additionalProperties': False}}, 'additionalProperties': False}
create_employee
Créer un employé
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
create_invoice
Créer une facture
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
create_opportunity
Créer une opportunité
입력 스키마
{'type': 'object', 'required': ['body'], 'properties': {'body': {'type': 'object', 'required': ['client_id', 'title'], 'properties': {'notes': {'type': ['string', 'null'], 'maxLength': 5000}, 'stage': {'type': 'string', 'maxLength': 40, 'minLength': 1}, 'amount': {'type': ['number', 'null'], 'maximum': 9999999999.99, 'minimum': 0.0}, 'client_id': {'type': 'string'}, 'probability': {'type': ['integer', 'null'], 'maximum': 100, 'minimum': 0}, 'expected_close_date': {'type': ['string', 'null'], 'format': 'date-time'}}, 'description': 'Request body', 'additionalProperties': False}}, 'additionalProperties': False}
create_order
Créer un bon de commande
입력 스키마
{'type': 'object', 'required': ['body'], 'properties': {'body': {'type': 'object', 'required': ['items', 'supplier_id'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'quantity'], 'properties': {'quantity': {'type': 'object'}, 'product_id': {'type': 'object'}, 'unit_price': {'type': 'object'}}, 'additionalProperties': False}, 'minItems': 1}, 'notes': {'type': ['string', 'null']}, 'site_id': {'type': ['string', 'null'], 'format': 'uuid'}, 'order_type': {'enum': ['MANUAL', 'AUTO'], 'type': 'string'}, 'supplier_id': {'type': 'string', 'format': 'uuid'}, 'expected_delivery_date': {'type': ['string', 'null'], 'format': 'date'}}, 'description': 'Request body', 'additionalProperties': False}}, 'additionalProperties': False}
create_product
Créer un produit (catalogue stock)
입력 스키마
{'type': 'object', 'required': ['body'], 'properties': {'body': {'type': 'object', 'required': ['category', 'name', 'sku', 'unit_price'], 'properties': {'sku': {'type': 'string', 'maxLength': 50, 'minLength': 1}, 'name': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'unit': {'type': 'string', 'maxLength': 30}, 'barcode': {'type': ['string', 'null'], 'pattern': '^[0-9A-Za-z\\-]{1,64}$'}, 'site_id': {'type': ['string', 'null'], 'format': 'uuid'}, 'category': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'threshold': {'type': 'number', 'minimum': '0.000'}, 'cost_price': {'type': ['number', 'null'], 'minimum': '0.00'}, 'unit_price': {'type': 'number', 'minimum': '0.00'}, 'auto_reorder': {'type': 'boolean'}, 'sold_by_weight': {'type': 'boolean'}, 'unit_precision': {'type': 'integer', 'maximum': 3, 'minimum': 0}, 'reorder_quantity': {'type': ['number', 'null'], 'minimum': '0.000'}, 'valuation_method': {'enum': ['FIFO', 'LIFO', 'CMP'], 'type': 'string'}, 'quantity_in_stock': {'type': 'number', 'minimum': '0.000'}}, 'description': 'Request body', 'additionalProperties': False}}, 'additionalProperties': False}
create_quote
Créer un devis
입력 스키마
{'type': 'object', 'required': ['body'], 'properties': {'body': {'type': 'object', 'required': ['client_id', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['quantity', 'unit_price'], 'properties': {'quantity': {'type': 'object'}, 'tva_rate': {'type': 'object'}, 'product_id': {'type': 'object'}, 'unit_price': {'type': 'object'}, 'product_name': {'type': 'object'}, 'discount_percent': {'type': 'object'}}}, 'minItems': 1}, 'notes': {'type': ['string', 'null']}, 'currency': {'type': 'string'}, 'client_id': {'type': 'string'}, 'valid_until': {'type': ['string', 'null'], 'format': 'date'}, 'technician_id': {'type': ['string', 'null']}, 'opportunity_id': {'type': ['string', 'null']}, 'discount_percent': {'type': ['number', 'null'], 'maximum': '100', 'minimum': '0'}, 'intervention_date': {'type': ['string', 'null'], 'format': 'date'}}, 'description': 'Request body'}}, 'additionalProperties': False}
create_ticket
Créer un ticket IT
입력 스키마
{'type': 'object', 'required': ['body'], 'properties': {'body': {'type': 'object', 'required': ['cart_lines', 'payments', 'session_id'], 'properties': {'payments': {'type': 'array', 'items': {'type': 'object', 'required': ['amount_cents', 'method'], 'properties': {'last4': {'type': 'object'}, 'method': {'type': 'object'}, 'provider': {'type': 'object'}, 'charge_id': {'type': 'object'}, 'reader_id': {'type': 'object'}, 'card_brand': {'type': 'object'}, 'amount_cents': {'type': 'object'}, 'change_cents': {'type': 'object'}, 'payment_intent_id': {'type': 'object'}}, 'additionalProperties': False}, 'minItems': 1}, 'client_id': {'type': ['string', 'null'], 'format': 'uuid'}, 'cart_lines': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'qty', 'tax_rate_percent', 'total_ht_cents', 'total_ttc_cents', 'total_tva_cents', 'unit_price_ht_cents'], 'properties': {'qty': {'type': 'object'}, 'label': {'type': 'object'}, 'product_id': {'type': 'object'}, 'discount_cents': {'type': 'object'}, 'total_ht_cents': {'type': 'object'}, 'total_ttc_cents': {'type': 'object'}, 'total_tva_cents': {'type': 'object'}, 'tax_rate_percent': {'type': 'object'}, 'unit_price_ht_cents': {'type': 'object'}}, 'additionalProperties': False}, 'minItems': 1}, 'session_id': {'type': 'string', 'format': 'uuid'}}, 'description': 'Request body', 'additionalProperties': False}}, 'additionalProperties': False}
dashboard_alerts
Alertes du dashboard
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
dashboard_kpis
KPIs du dashboard principal
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
eyeot_call
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', 'required': ['action'], 'properties': {'action': {'type': 'string', 'description': "Nom canonique de l'action (ex: 'rh.employes.create')."}, 'params': {'type': 'object', '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.', 'additionalProperties': True}}, 'additionalProperties': False}
eyeot_help
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': {'type': 'string', 'description': "Action exacte au format `<module>.<resource>.<verb>` (ex: 'rh.employes.create'). Retourne le schéma complet."}, 'module': {'type': 'string', 'description': "Nom du module (ex: 'rh', 'finance', 'clients'). Optionnel."}, 'search': {'type': 'string', 'description': "Recherche textuelle dans les noms d'action et descriptions. Optionnel."}}, 'additionalProperties': False}
get_client
Récupérer un client par id
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'required': ['client_id'], 'properties': {'client_id': {'type': 'string', 'description': '(path parameter)'}}, 'additionalProperties': False}
invoice_from_quote
Créer une facture à partir d'un devis
입력 스키마
{'type': 'object', 'required': ['quote_id'], 'properties': {'quote_id': {'type': 'string', 'description': '(path parameter)'}}, 'additionalProperties': False}
list_clients
Lister les clients (CRM)
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
list_employees
Lister les employés
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
list_invoices
Lister les factures
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
list_leaves
Lister les demandes de congés
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
list_opportunities
Lister les opportunités commerciales
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
list_orders
Lister les bons de commande
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
list_products
Lister les produits / catalogue
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
list_quotes
Lister les devis
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
list_stock_alerts
Alertes stock bas / rupture
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
list_suppliers
Lister les fournisseurs
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
list_tickets
Lister les tickets IT
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
quote_pdf
Récupérer le PDF d'un devis
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'required': ['quote_id'], 'properties': {'quote_id': {'type': 'string', 'description': '(path parameter)'}}, 'additionalProperties': False}
request_leave
Demander un congé
입력 스키마
{'type': 'object', 'required': ['body'], 'properties': {'body': {'type': 'object', 'required': ['end_date', 'start_date', 'type'], 'properties': {'type': {'type': 'string'}, 'reason': {'type': ['string', 'null'], 'maxLength': 2000}, 'end_date': {'type': 'string', 'format': 'date'}, 'start_date': {'type': 'string', 'format': 'date'}, 'half_day_end': {'type': 'boolean'}, 'leave_type_id': {'type': ['string', 'null'], 'format': 'uuid'}, 'half_day_start': {'type': 'boolean'}}, 'description': 'Request body'}}, 'additionalProperties': False}
search
Recherche globale cross-module
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
stock_dashboard
Dashboard stock (KPIs)
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
update_client
Mettre à jour un client
입력 스키마
{'type': 'object', 'required': ['body', 'client_id'], 'properties': {'body': {'type': 'object', 'properties': {'city': {'type': ['string', 'null'], 'maxLength': 120}, 'name': {'type': ['string', 'null'], 'maxLength': 200, 'minLength': 2}, 'email': {'type': ['string', 'null'], 'format': 'email'}, 'notes': {'type': ['string', 'null']}, 'phone': {'type': ['string', 'null'], 'pattern': '^\\+?[0-9\\s\\-().]{6,30}$'}, 'siren': {'type': ['string', 'null'], 'maxLength': 11}, 'siret': {'type': ['string', 'null'], 'maxLength': 17}, 'status': {'enum': ['actif', 'inactif', 'archivé'], 'type': 'string'}, 'address': {'type': ['string', 'null']}, 'company': {'type': ['string', 'null'], 'maxLength': 200}, 'country': {'type': ['string', 'null'], 'maxLength': 80}, 'website': {'type': ['string', 'null'], 'pattern': '^(https?://)?[a-zA-Z0-9][a-zA-Z0-9.\\-]*\\.[a-zA-Z]{2,}(/.*)?$'}, 'category': {'enum': ['prospect', 'client'], 'type': 'string'}, 'icp_score': {'type': ['integer', 'null'], 'maximum': 100, 'minimum': 0}, 'last_name': {'type': ['string', 'null'], 'maxLength': 100}, 'first_name': {'type': ['string', 'null'], 'maxLength': 100}, 'vat_number': {'type': ['string', 'null'], 'maxLength': 32}, 'postal_code': {'type': ['string', 'null'], 'maxLength': 20}, 'address_line1': {'type': ['string', 'null'], 'maxLength': 255}, 'address_line2': {'type': ['string', 'null'], 'maxLength': 255}, 'marketing_opt_in': {'type': 'boolean'}}, 'description': 'Request body', 'additionalProperties': False}, 'client_id': {'type': 'string', 'description': '(path parameter)'}}, 'additionalProperties': False}
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}
추가됨
eyeot_call
2026년 9월 17일 12:52 PM
추가됨
eyeot_help
2026년 9월 17일 12:52 PM
추가됨
search
2026년 9월 17일 12:52 PM
추가됨
dashboard_alerts
2026년 9월 17일 12:52 PM
추가됨
dashboard_kpis
2026년 9월 17일 12:52 PM
추가됨
create_order
2026년 9월 17일 12:52 PM
추가됨
list_orders
2026년 9월 17일 12:52 PM
추가됨
list_suppliers
2026년 9월 17일 12:52 PM
추가됨
create_ticket
2026년 9월 17일 12:52 PM
추가됨
list_tickets
2026년 9월 17일 12:52 PM
추가됨
request_leave
2026년 9월 17일 12:52 PM
추가됨
list_leaves
2026년 9월 17일 12:52 PM
추가됨
create_employee
2026년 9월 17일 12:52 PM
추가됨
list_employees
2026년 9월 17일 12:52 PM
추가됨
stock_dashboard
2026년 9월 17일 12:52 PM
추가됨
list_stock_alerts
2026년 9월 17일 12:52 PM
추가됨
create_product
2026년 9월 17일 12:52 PM
추가됨
list_products
2026년 9월 17일 12:52 PM
추가됨
invoice_from_quote
2026년 9월 17일 12:52 PM
추가됨
create_invoice
2026년 9월 17일 12:52 PM
추가됨
list_invoices
2026년 9월 17일 12:52 PM
추가됨
quote_pdf
2026년 9월 17일 12:52 PM
추가됨
accept_quote
2026년 9월 17일 12:52 PM
추가됨
create_quote
2026년 9월 17일 12:52 PM
추가됨
list_quotes
2026년 9월 17일 12:52 PM
추가됨
convert_opportunity_to_quote
2026년 9월 17일 12:52 PM
추가됨
create_opportunity
2026년 9월 17일 12:52 PM
추가됨
list_opportunities
2026년 9월 17일 12:52 PM
추가됨
update_client
2026년 9월 17일 12:52 PM
추가됨
get_client
2026년 9월 17일 12:52 PM