Documentation MCP — Demande d'iNterV --géolocalisée

Serveur MCP

Les agents IA (ChatGPT, Claude, Cursor, Codex…) peuvent consulter nos coordonnées, nos zones d'intervention et enregistrer une demande de dépannage directement via le protocole MCP (Streamable HTTP).

https://planete-serrures-paris-au-petit-serrurier.lovable.app/mcp

Accès par clé API : chaque appel d'outil doit inclure le paramètre api_key. La clé est fournie sur demande par le réseau Planète Serrures / SAS STM. Aucune donnée client existante n'est lisible — les outils créent une demande ou renvoient des informations publiques.

Outils exposés

creer_demande_depannage
Créer une demande de dépannage

Enregistre une demande d'intervention (Paris 75 et Hauts-de-Seine 92) et retourne son numéro de demande.

Requis :
api_key, full_name, phone, address, postal_code, city, intervention_type, urgency
Optionnel :
email, callback_slot, details
écriture
infos_societes
Infos sociétés

Coordonnées, adresses, e-mails, téléphones et horaires des 3 entités du réseau.

Requis :
api_key
Optionnel :
lecture seule
importer_csv_seo
Importer un lot CSV SEO

Importe un lot CSV (1 ligne = 1 page). Les pages alimentent /sitemap.xml et leur JSON-LD est injecté sur la page correspondante.

Requis :
api_key, lot, csv
Optionnel :
remplacer (booléen)
écriture
etat_csv_seo
État des lots CSV

Liste les lots déjà importés, le nombre de pages actives et un aperçu des chemins.

Requis :
api_key
Optionnel :
lecture seule
zones_et_services
Zones et services

Arrondissements et communes couverts (75 / 92) et liste des types d'intervention.

Requis :
api_key
Optionnel :
lecture seule

Manifeste MCP

{
  "version": 1,
  "path": "/mcp",
  "auth": { "type": "api_key", "in": "tool_argument", "name": "api_key" },
  "mcp": {
    "server": {
      "name": "demande-d-nterv-geolocalisee",
      "title": "Demande d'iNterV --géolocalisée",
      "version": "0.1.0"
    },
    "tools": [
      "creer_demande_depannage",
      "infos_societes",
      "zones_et_services",
      "importer_csv_seo",
      "etat_csv_seo"
    ]
  }
}

Connecter Claude

  1. Ouvrir Claude → Settings → Connectors.
  2. Cliquer sur « Add custom connector ».
  3. Coller l'URL du serveur : https://planete-serrures-paris-au-petit-serrurier.lovable.app/mcp
  4. Valider : les 5 outils apparaissent dans la liste du connecteur.
  5. Fournir la clé API à Claude (paramètre api_key) : elle est demandée à chaque appel d'outil.
  6. Dans une conversation, activer le connecteur puis demander l'enregistrement d'une demande.

Connecter ChatGPT

  1. Ouvrir ChatGPT → Settings → Connectors → Advanced → Developer mode.
  2. « Create » / « Add MCP server » et coller l'URL du serveur.
  3. Authentification : « No authentication » — la clé API se passe dans le paramètre api_key de chaque outil.
  4. Activer le connecteur dans le composeur (Tools) avant de poser la question.

Exemple de prompt (ChatGPT / Claude)

Utilise le connecteur "Demande d'iNterV --géolocalisée" :
clé API = VOTRE_CLE_API ;
enregistre une demande de dépannage pour Louis-Vuitton LVMH,
07 81 69 20 79, 91 rue du Fbg Saint Honoré, 75008 Paris,
porte fermée à clé, urgence immédiate. Donne-moi le numéro de demande.

Appels JSON-RPC directs

Lister les outils disponibles :

curl -X POST https://planete-serrures-paris-au-petit-serrurier.lovable.app/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

Créer une demande de dépannage :

curl -X POST https://planete-serrures-paris-au-petit-serrurier.lovable.app/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "creer_demande_depannage",
      "arguments": {
        "api_key": "VOTRE_CLE_API",
        "full_name": "Louis-Vuitton LVMH",
        "phone": "07 81 69 20 79",
        "address": "91 rue du Fbg Saint Honoré",
        "postal_code": "75008",
        "city": "Paris",
        "intervention_type": "Porte fermée à clé",
        "urgency": "immediate",
        "callback_slot": "Immédiatement",
        "details": "Client sur place, digicode 1234A"
      }
    }
  }'

Importer un lot CSV (alimente /sitemap.xml et le JSON-LD) :

curl -X POST https://planete-serrures-paris-au-petit-serrurier.lovable.app/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "importer_csv_seo",
      "arguments": {
        "api_key": "VOTRE_CLE_API",
        "lot": "lot-1",
        "csv": "url;titre;description;ville;code_postal;priority;jsonld\n/serrurier-paris-15;Serrurier Paris 15;Dépannage serrurerie Paris 15;Paris;75015;0.8;{\"@context\":\"https://schema.org\",\"@type\":\"Locksmith\",\"name\":\"Planète Serrures de Paris\"}"
      }
    }
  }'

Colonnes reconnues (alias FR/EN acceptés) : url ou chemin (obligatoire), titre, description, ville, code_postal, service, lastmod (AAAA-MM-JJ), changefreq, priority (0 à 1), jsonld. Séparateur « ; », « , » ou tabulation, 2000 lignes maximum par appel. Réimporter le même lot met les pages à jour.

L'en-tête Accept: application/json, text/event-stream est obligatoire : sans lui le serveur répond 406 Not Acceptable. Les codes postaux hors 75 / 92 sont refusés. Un appel sans api_key valide est rejeté.