Server definition
- Hash
- sha256:50638a25b91297d68a1a0b6bb43f1a1bb2b4eaf12f4d63c3c4237ecab94563ef
- What it is
- What a remote MCP server returned when asked what it offers: 10 tools
The blob, as servednamed by its sha256
{
"instructions": null,
"tools": [
{
"description": "ENGAGE : annulation par le client final (secret requis). Libère le créneau immédiatement. Irréversible pour cet engagement.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"engagement_id": {
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"type": "string"
},
"engagement_secret": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"required": [
"engagement_id",
"engagement_secret"
],
"type": "object"
},
"name": "cancel_engagement",
"outputSchema": null
},
{
"description": "ENGAGE : transmet le client final + le consentement sur une option quotée. Retourne requested (le pro valide d'un pouce) ou confirmed (auto-acceptation). Idempotent : rappeler sur un engagement déjà transmis renvoie son état courant.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"consent": {
"properties": {
"early_execution": {
"description": "OBLIGATOIRE si la prestation a lieu à moins de 14 jours : le client demande expressément l'exécution avant la fin du délai de rétractation et reconnaît perdre ce droit une fois le service entièrement exécuté (art. L221-25 code conso)",
"type": "boolean"
},
"mandate": {
"const": true,
"description": "l'agent atteste du mandat du client final (mandat de classe faible — D-003)",
"type": "boolean"
},
"terms_accepted": {
"const": true,
"description": "le client a accepté le devis et les conditions",
"type": "boolean"
}
},
"required": [
"mandate",
"terms_accepted"
],
"type": "object"
},
"customer": {
"properties": {
"email": {
"description": "OBLIGATOIRE : contact du client final, transmis au professionnel. Le client reçoit la confirmation (et l'issue) de sa réservation par e-mail à cette adresse — support durable, art. L221-13.",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"type": "string"
},
"name": {
"description": "prénom et nom du client final",
"type": "string"
},
"note": {
"description": "le BRIEF pour le professionnel : contexte et objectif de la demande (ex. « veut automatiser ses devis, TPE bâtiment 3 salariés ») — aide le pro à accepter en connaissance",
"maxLength": 500,
"type": "string"
},
"phone": {
"type": "string"
}
},
"required": [
"name",
"email"
],
"type": "object"
},
"engagement_id": {
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"type": "string"
},
"engagement_secret": {
"type": "string"
}
},
"required": [
"engagement_id",
"engagement_secret",
"customer",
"consent"
],
"type": "object"
},
"name": "create_engagement",
"outputSchema": null
},
{
"description": "Ouvre un séjour : un contenant pour plusieurs réservations qui doivent tenir ensemble (une après-midi, une journée, une semaine). Les étapes devisées avec ce sejour_id partagent une MÊME échéance de tenue, au lieu d'expirer chacune de son côté pendant que vous préparez les suivantes. Le rail tient le groupe, il ne le compose pas : l'ordre, les trajets et ce qui remplit un trou restent votre travail.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"duree_minutes": {
"description": "durée de la fenêtre de tenue commune, en minutes (défaut 30, maximum 240). Prenez large si vous devisez beaucoup d'étapes, mais pas plus que nécessaire : vous immobilisez du stock chez de vrais professionnels.",
"maximum": 240,
"minimum": 5,
"type": "integer"
},
"label": {
"description": "libellé libre pour vous y retrouver, ex. \"Journée bien-être 14 sept.\"",
"maxLength": 80,
"type": "string"
}
},
"type": "object"
},
"name": "create_sejour",
"outputSchema": null
},
{
"description": "État courant d'un engagement (secret requis). Lecture seule, n'engage rien.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"engagement_id": {
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"type": "string"
},
"engagement_secret": {
"type": "string"
}
},
"required": [
"engagement_id",
"engagement_secret"
],
"type": "object"
},
"name": "get_engagement",
"outputSchema": null
},
{
"description": "La FICHE complète d'une offre : descriptions entières, politique de réservation et d'annulation, paiement, adresse géolocalisée, fiabilité. Lecture seule. À appeler quand l'offre intéresse — la recherche ne sert que le résumé.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"offer_id": {
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"type": "string"
}
},
"required": [
"offer_id"
],
"type": "object"
},
"name": "get_offer_details",
"outputSchema": null
},
{
"description": "Relit l'état d'un séjour et de toutes ses étapes. Sert à répondre à « qu'est-ce que j'ai de réservé ? » sans avoir retenu chaque identifiant, y compris depuis une autre session. Le rail rend l'état, il ne conclut rien : c'est vous qui décidez quoi faire d'un séjour à moitié confirmé.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"sejour_id": {
"description": "identifiant rendu par create_sejour",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"type": "string"
}
},
"required": [
"sejour_id"
],
"type": "object"
},
"name": "get_sejour",
"outputSchema": null
},
{
"description": "Liste les professionnels réservables du réseau Resadock (l'annuaire machine). Sans requête texte : filtres optionnels par catégorie et commune. Donne aussi les facettes (catégories et communes présentes) pour affiner. Lecture seule.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"categorie": {
"description": "filtre catégorie (ex. \"massage\", \"coiffure\", \"location-velo-paddle\") — voir les facettes retournées",
"type": "string"
},
"commune": {
"description": "filtre commune (ex. \"Cogolin\") — zone de chalandise OU ville du pro",
"type": "string"
},
"include_demo": {
"description": "inclure les guichets de démonstration (défaut : non)",
"type": "boolean"
},
"limit": {
"description": "max de résultats (défaut 50)",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"verified_only": {
"description": "ne garder que les sociétés actives au registre INSEE (n'atteste PAS que le déclarant représente la société)",
"type": "boolean"
}
},
"type": "object"
},
"name": "list_directory",
"outputSchema": null
},
{
"description": "ENGAGE une option : tient le créneau (TTL court) et retourne le devis complet — montant, politique d'annulation, délai de validation du pro — AVANT toute transmission du client final. L'information précède l'engagement (D-002). Réversible : l'option expire seule si create_engagement ne suit pas.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"end": {
"description": "fin ISO 8601 avec offset",
"type": "string"
},
"idempotency_key": {
"description": "dérivée de l'INTENTION de l'utilisateur (même intention = même clé), pas d'un tirage par tentative",
"minLength": 8,
"type": "string"
},
"options": {
"description": "les à-côtés choisis par le client (gâteau, photographe, formule traiteur…)",
"items": {
"properties": {
"label": {
"description": "libellé EXACT depuis get_offer_details.options",
"type": "string"
},
"persons": {
"description": "pour les options par personne (traiteur…) — un minimum facturé peut s'appliquer",
"maximum": 9007199254740991,
"minimum": 1,
"type": "integer"
}
},
"required": [
"label"
],
"type": "object"
},
"maxItems": 8,
"type": "array"
},
"quantity": {
"default": 1,
"maximum": 9007199254740991,
"minimum": 1,
"type": "integer"
},
"sejour_id": {
"description": "rattache cette étape à un séjour ouvert par create_sejour : la tenue s'aligne alors sur la fenêtre COMMUNE du groupe, au lieu d'expirer au bout de 5 minutes pendant que vous devisez les étapes suivantes",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"type": "string"
},
"service_context": {
"properties": {
"deplacement": {
"description": "si chez_client : le libellé EXACT d'une option de déplacement de get_offer_details (supplément + temps de trajet inclus au devis)",
"type": "string"
},
"mode": {
"description": "où la prestation a lieu",
"enum": [
"sur_place",
"chez_client"
],
"type": "string"
}
},
"required": [
"mode"
],
"type": "object"
},
"start": {
"description": "début ISO 8601 avec offset",
"type": "string"
},
"variant_id": {
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"type": "string"
}
},
"required": [
"variant_id",
"start",
"end",
"idempotency_key"
],
"type": "object"
},
"name": "quote_engagement",
"outputSchema": null
},
{
"description": "Vérifie la disponibilité d'une variante sur une fenêtre (ISO 8601 avec offset). Lecture seule, n'engage rien. Statut ternaire : available | unavailable | unknown (unknown = le pro n'a rien déclaré ; canal de repli fourni ; jamais un refus).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"end": {
"description": "fin ISO 8601",
"type": "string"
},
"quantity": {
"default": 1,
"maximum": 9007199254740991,
"minimum": 1,
"type": "integer"
},
"start": {
"description": "début ISO 8601",
"type": "string"
},
"variant_id": {
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"type": "string"
}
},
"required": [
"variant_id",
"start",
"end"
],
"type": "object"
},
"name": "search_availability",
"outputSchema": null
},
{
"description": "Recherche les prestations réservables (texte libre : métier, activité). Lecture seule, n'engage rien. Retourne offres, variantes, prix et « l'actu du jour » du pro.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"include_demo": {
"description": "inclure les guichets de DÉMONSTRATION (défaut : non). Ils servent à essayer le rail de bout en bout sans déranger un vrai professionnel ; ils sortent marqués demo:true",
"type": "boolean"
},
"level": {
"description": "filtre de niveau (fiche 09) — par défaut : tous (un N1 est déjà une réponse utile)",
"items": {
"enum": [
"declarative",
"consultable",
"engageable"
],
"type": "string"
},
"type": "array"
},
"provenance": {
"description": "filtre de provenance (fiche 05) — par défaut : toutes",
"items": {
"enum": [
"declared",
"observed",
"inferred"
],
"type": "string"
},
"type": "array"
},
"query": {
"description": "Ce que cherche le client, ex. \"cours de padel\", \"location vélo\"",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_offers",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:50638a25b91297d68a1a0b6bb43f1a1bb2b4eaf12f4d63c3c4237ecab94563ef | sha256sum