Resadock est la MI (Machine Interface) des services locaux français : un serveur MCP multi-tenant où les agents cherchent, vérifient, devisent et réservent — le professionnel confirme d'un pouce, ou par sa politique d'acceptation automatique.
POST /v1/test-keys, un nom d'agent suffit) : lecture partout, engagement sur la
sandbox (« Coach Léa Padel (DÉMO) ») pour tester tout le parcours sans toucher un
professionnel réel. Clé de production (engagement chez les vrais professionnels) : écrivez à
agents@resadock.com (nom de l'agent, usage, volume estimé).
À terme, une micro-redevance par réservation confirmée pourra s'appliquer aux agents à fort
volume — jamais au professionnel, jamais au client final.Endpoint : https://resadock.com/mcp (MCP Streamable HTTP, stateless, POST)
Auth : en-tête X-API-Key: <clé> (jamais dans l'URL : la clé finirait dans des journaux)
ou OAuth 2.1 sans compte : découverte par /.well-known/oauth-protected-resource,
enregistrement dynamique ouvert, PKCE S256, une page « Autoriser », un jeton Bearer.
Chaque autorisation est un agent distinct, classe untrusted, qui monte sur des faits.
Registre : com.resadock/resadock (registre MCP officiel, namespace vérifié DNS)
Card : https://resadock.com/.well-known/mcp.json
| Outil | Rôle |
|---|---|
search_offers | Recherche libre (métier, nom, tags, ville). Retourne le RÉSUMÉ :
prix, booking_mode (instant/approval), géolocalisation {ville, lat, lng}, badge
verified (SIREN vérifié INSEE), niveau, actu du jour en enveloppe datée. |
get_offer_details | La FICHE complète : descriptions, options (à-côtés, prix par personne avec minimum facturé), politique (préavis, annulation, délai de réponse), déplacements chiffrés, paiement, sites, fiabilité mesurée (taux de confirmation sur 90 j, dérivé du journal — jamais déclaré). |
search_availability | Statut TERNAIRE : available | unavailable |
unknown — jamais un booléen menteur. unknown vient avec un canal de repli. |
quote_engagement | Tient le créneau (TTL 5 min) et retourne le DEVIS
complet avant tout engagement : montant décomposé (base + déplacement + options), annulation,
local_time chez le pro. Idempotent par clé d'INTENTION. |
create_engagement | Transmet client + consentement (mandat, CGV, et
early_execution si < 14 jours — droit conso français). → requested
ou confirmed (auto-acceptation sous seuils du pro). |
get_engagement / cancel_engagement | Suivi et annulation (secret requis). L'annulation libère le stock immédiatement. |
Vous n'êtes pas limité à un créneau. Ouvrez un séjour et rattachez-y autant d'étapes que vous voulez : un massage, une plage, une table, un club. Les étapes partagent alors une même échéance de tenue, au lieu d'expirer chacune de son côté.
create_sejour { "label": "Journée bien-être 14 sept.", "duree_minutes": 45 }
→ { "sejour_id": "…", "expires_at": "…" }
quote_engagement { "variant_id": "…", "start": "…", "sejour_id": "…" } // autant de fois que d'étapes
create_engagement { … } // inchangé, étape par étape
get_sejour { "sejour_id": "…" } // l'état de tout le groupe
Trois pannes mécaniques, qu'aucun agent ne peut résoudre seul :
get_sejour vous rend l'état complet du groupe pour que vous décidiez de la suite.sejour_id suffit, y compris depuis une autre session.retry (réessayez, avec retry_after) · fix (corrigez le
champ indiqué — l'erreur dit QUOI collecter) · refused (définitif : stock parti,
fermé) · ask_human (le canal de repli est fourni). Aucune erreur non typée.
Chaque transition de réservation est notifiée en POST signé sur votre URL déclarée :
en-têtes webhook-id, webhook-timestamp,
webhook-signature: v1=HMAC-SHA256(timestamp.body), webhook-key-id
(rotation). Livraison ordonnée par réservation, backoff exponentiel, get_engagement
en rattrapage.
POST https://resadock.com/mcp # MCP Streamable HTTP, header X-API-Key or OAuth Bearer
0. list_directory {} # who's bookable (facets: categories, communes)
1. search_offers {"query": "padel"}
2. search_availability {"variant_id", "start", "end"} # ISO 8601 with offset
3. quote_engagement {"variant_id", "start", "end", "quantity", "idempotency_key"}
4. create_engagement {"engagement_id", "engagement_secret",
"customer": {"name", "email"},
"consent": {"mandate": true, "terms_accepted": true,
"early_execution": true}} # if < 14 days
5. get_engagement / cancel_engagement
Miroir exact de la MI (mêmes moteurs, mêmes erreurs typées). Clé de test instantanée, sans humain dans la boucle — lecture sur tout le réseau, réservation sur la sandbox uniquement :
# 1. Votre clé de test, en 5 secondes
curl -X POST https://resadock.com/v1/test-keys -H "Content-Type: application/json" -d '{"name": "mon-agent"}'
# 2. Cherchez, devisez, réservez (sandbox « Coach Léa »)
curl -X POST https://resadock.com/v1/search -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" -d '{"query": "coach"}'
GET /v1/offers/{offer_id} POST /v1/availability
POST /v1/quotes POST /v1/engagements
GET /v1/engagements/{id}?secret= POST /v1/engagements/{id}/cancel
# Index complet : GET /v1 — clé de production : agents@resadock.com