Server definition
- Hash
- sha256:f61fcb4a77f333db2a0109ed3cc404474d2dc419c7ea6785a519152e35071762
- What it is
- What a remote MCP server returned when asked what it offers: 33 tools
The blob, as servednamed by its sha256
{
"instructions": "eyeot ERP — full-stack ERP (CRM, Sales, Stock, Maintenance, RH, Finance, GED, IT/ITSM, Projects, Intelligence).\n\n**⚠ RÈGLE #1 — ZÉRO HALLUCINATION SUR LES DONNÉES UTILISATEUR**\nNe JAMAIS citer un nom d'organisation, d'utilisateur, de plan, de rôle, de ressource ou un identifiant qui ne provient pas d'un appel de tool effectué dans CETTE session. Tes données d'entraînement et ta mémoire NE SONT PAS des sources fiables pour ce contexte multi-tenant. Si tu hésites : appelle `whoami` ou un tool de lecture, ne devine jamais.\n\n**Première chose à faire** : appeler `whoami` au début de toute session impliquant l'identité de l'utilisateur (création d'entité, rapport, action sur l'org). Cela te donne user + org active + permissions depuis la source de vérité ERP.\n\n**Tools layout** :\n- ~30 **direct curated tools** pour le 80 % hot path : `whoami`, `list_clients`, `create_client`, `list_quotes`, `create_quote`, `accept_quote`, `list_invoices`, `invoice_from_quote`, `list_products`, `list_employees`, `list_tickets`, `search`, `dashboard_kpis`, etc. Appel direct avec champs du body au top level.\n- 2 **meta-tools** pour la long tail (plus de 2 100 actions) :\n • `eyeot_help` — découvrir. Sans arg liste les modules ; `module=<name>` liste un module ; `search=<term>` recherche ; `action=<canonique>` retourne le schéma complet.\n • `eyeot_call` — exécuter par nom canonique (`<module>.<resource>.<verb>`, ex `rh.employes.create`, `intelligence.customer_health.list`). Path params + body passés ensemble dans `params`.\nPréférer les curated quand ils couvrent ton action. Fallback vers `eyeot_help` → `eyeot_call` pour le reste. Client protocol version: 2025-06-18. OpenAPI: https://erp.eyeot.fr/api/docs",
"tools": [
{
"description": "Marquer un devis accepté (par le client)",
"inputSchema": {
"additionalProperties": false,
"properties": {
"quote_id": {
"description": "(path parameter)",
"type": "string"
}
},
"required": [
"quote_id"
],
"type": "object"
},
"name": "accept_quote",
"outputSchema": null
},
{
"description": "Convertir une opportunité en devis",
"inputSchema": {
"additionalProperties": false,
"properties": {
"opportunity_id": {
"description": "(path parameter)",
"type": "string"
}
},
"required": [
"opportunity_id"
],
"type": "object"
},
"name": "convert_opportunity_to_quote",
"outputSchema": null
},
{
"description": "Créer un client",
"inputSchema": {
"additionalProperties": false,
"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"
],
"type": "object"
},
"name": "create_client",
"outputSchema": null
},
{
"description": "Créer un employé",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "create_employee",
"outputSchema": null
},
{
"description": "Créer une facture",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "create_invoice",
"outputSchema": null
},
{
"description": "Créer une opportunité",
"inputSchema": {
"additionalProperties": false,
"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"
],
"type": "object"
},
"name": "create_opportunity",
"outputSchema": null
},
{
"description": "Créer un bon de commande",
"inputSchema": {
"additionalProperties": false,
"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"
],
"type": "object"
},
"name": "create_order",
"outputSchema": null
},
{
"description": "Créer un produit (catalogue stock)",
"inputSchema": {
"additionalProperties": false,
"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"
],
"type": "object"
},
"name": "create_product",
"outputSchema": null
},
{
"description": "Créer un devis",
"inputSchema": {
"additionalProperties": false,
"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"
],
"type": "object"
},
"name": "create_quote",
"outputSchema": null
},
{
"description": "Créer un ticket IT",
"inputSchema": {
"additionalProperties": false,
"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"
],
"type": "object"
},
"name": "create_ticket",
"outputSchema": null
},
{
"description": "Alertes du dashboard",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "dashboard_alerts",
"outputSchema": null
},
{
"description": "KPIs du dashboard principal",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "dashboard_kpis",
"outputSchema": null
},
{
"description": "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`.",
"inputSchema": {
"additionalProperties": false,
"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"
],
"type": "object"
},
"name": "eyeot_call",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"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"
}
},
"type": "object"
},
"name": "eyeot_help",
"outputSchema": null
},
{
"description": "Récupérer un client par id",
"inputSchema": {
"additionalProperties": false,
"properties": {
"client_id": {
"description": "(path parameter)",
"type": "string"
}
},
"required": [
"client_id"
],
"type": "object"
},
"name": "get_client",
"outputSchema": null
},
{
"description": "Créer une facture à partir d'un devis",
"inputSchema": {
"additionalProperties": false,
"properties": {
"quote_id": {
"description": "(path parameter)",
"type": "string"
}
},
"required": [
"quote_id"
],
"type": "object"
},
"name": "invoice_from_quote",
"outputSchema": null
},
{
"description": "Lister les clients (CRM)",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_clients",
"outputSchema": null
},
{
"description": "Lister les employés",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_employees",
"outputSchema": null
},
{
"description": "Lister les factures",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_invoices",
"outputSchema": null
},
{
"description": "Lister les demandes de congés",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_leaves",
"outputSchema": null
},
{
"description": "Lister les opportunités commerciales",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_opportunities",
"outputSchema": null
},
{
"description": "Lister les bons de commande",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_orders",
"outputSchema": null
},
{
"description": "Lister les produits / catalogue",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_products",
"outputSchema": null
},
{
"description": "Lister les devis",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_quotes",
"outputSchema": null
},
{
"description": "Alertes stock bas / rupture",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_stock_alerts",
"outputSchema": null
},
{
"description": "Lister les fournisseurs",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_suppliers",
"outputSchema": null
},
{
"description": "Lister les tickets IT",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_tickets",
"outputSchema": null
},
{
"description": "Récupérer le PDF d'un devis",
"inputSchema": {
"additionalProperties": false,
"properties": {
"quote_id": {
"description": "(path parameter)",
"type": "string"
}
},
"required": [
"quote_id"
],
"type": "object"
},
"name": "quote_pdf",
"outputSchema": null
},
{
"description": "Demander un congé",
"inputSchema": {
"additionalProperties": false,
"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"
],
"type": "object"
},
"name": "request_leave",
"outputSchema": null
},
{
"description": "Recherche globale cross-module",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "search",
"outputSchema": null
},
{
"description": "Dashboard stock (KPIs)",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "stock_dashboard",
"outputSchema": null
},
{
"description": "Mettre à jour un client",
"inputSchema": {
"additionalProperties": false,
"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"
],
"type": "object"
},
"name": "update_client",
"outputSchema": null
},
{
"description": "Récupérer l'utilisateur authentifié + organisation active + permissions. À APPELER AVANT toute réponse mentionnant l'org/user/plan/role.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "whoami",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:f61fcb4a77f333db2a0109ed3cc404474d2dc419c7ea6785a519152e35071762 | sha256sum