PermisAPI
tous les utilisateurs PermisAPI, du Free au Enterprise, surtout ceux qui ne veulent pas écrire de code.
temps 4 min de lecture.budget gratuit pour tous les plans (limité uniquement par le quota PermisAPI).

PermisAPI dans Claude / ChatGPT / Cursor : MCP server officiel

Persona : tous les utilisateurs PermisAPI, du Free au Enterprise, surtout ceux qui ne veulent pas écrire de code. Temps : 4 min de lecture. Budget : gratuit pour tous les plans (limité uniquement par le quota PermisAPI).

TL;DR : on a publié un serveur MCP (Model Context Protocol, standard Anthropic) qui branche PermisAPI directement dans Claude Desktop, Cursor ou Windsurf. Tu écris en langage naturel (« liste les permis Bordeaux ce mois avec score MDB > 70 »), ton LLM appelle les bons endpoints, retourne le résultat enrichi en prose. Setup : 2 minutes. Coût : zéro en plus de ton plan.

Le problème

Tu paies un abonnement Pro 199 €/mois pour PermisAPI. Tu utilises Claude Desktop tous les jours pour ton boulot. Mais entre les deux, il y a un mur : à chaque fois que tu veux qu'un LLM regarde des permis, tu dois copier-coller manuellement les résultats de ton dashboard ou écrire un bout de code Python pour les fetcher.

C'est ce que MCP résout.

C'est quoi MCP ?

Model Context Protocol (MCP) est un standard ouvert publié par Anthropic en novembre 2024. C'est l'équivalent USB-C pour les agents IA : un protocole unifié qui permet à n'importe quel LLM (Claude, GPT-4, Gemini, etc) d'appeler n'importe quel outil tiers, à condition que les deux respectent le protocole.

Concrètement :

  • Côté outil : tu publies un MCP server qui expose un ensemble de "tools" (fonctions), chacun avec son JSON Schema d'inputs et sa description
  • Côté LLM : ton client (Claude Desktop, Cursor, Windsurf...) découvre les tools disponibles, les présente au LLM dans son contexte, et exécute les appels que le LLM décide

L'utilisateur final voit juste : « Claude, trouve-moi les permis... ». Le LLM s'occupe du reste.

Le serveur PermisAPI MCP

On expose 6 tools, alignés sur les endpoints clés de l'API REST :

ToolEndpoint REST sous-jacentPlan requis
search_permitsGET /v1/permits (8 filtres)Free
get_permit_detailsGET /v1/permits/{num_pa}Free
find_dvf_neighborsGET /v1/permits/{num_pa}/dvfPro
get_mdb_scoreGET /v1/permits/{num_pa}/scorePro
get_plu_zoningGET /v1/permits/{num_pa}/pluPro
get_risksGET /v1/permits/{num_pa}/risksPro

Le LLM voit les 6 tools, lit leurs descriptions, et choisit le bon (ou plusieurs en parallèle) selon ta demande. Si tu lui demandes une question qui requiert un plan que tu n'as pas, il reçoit un 402 Payment Required avec un message explicite et te le dit en langage naturel : « Cette feature nécessite le plan Pro, tu peux upgrade ici ».

Installation en 2 minutes

pip install permisapi-mcp

Tu as besoin de Python 3.10+ et d'une clé PermisAPI (gratuite à permisapi.fr).

Claude Desktop (macOS)

Édite ~/Library/Application Support/Claude/claude_desktop_config.json :

{
  "mcpServers": {
    "permisapi": {
      "command": "permisapi-mcp",
      "env": {
        "PERMISAPI_KEY": "pk_live_VOTRE_CLE"
      }
    }
  }
}

Redémarre Claude Desktop. C'est tout.

Cursor / Windsurf

Configurations équivalentes dans leurs settings respectifs. Voir permisapi.fr/mcp pour le détail.

4 exemples concrets

1. Sourcing MDB en langage naturel

« Liste les permis de construction logement déposés à Bordeaux ce mois avec un score Opportunité MDB supérieur à 70. Pour chaque, donne-moi le nom du demandeur et la surface terrain. »

Claude utilise search_permits(dep_code="33", permit_type="PC_LOGEMENT", date_from="...") puis get_mdb_score(num_pa) sur chaque résultat. Il filtre côté LLM les scores > 70 et te rend une liste prête à exploiter.

2. Pré-faisabilité instantanée

« Pour le permis PC07404021K1, est-ce constructible (PLU) et quels sont les risques connus (inondation, séisme...) ? »

Claude appelle get_plu_zoning(num_pa="PC07404021K1") et get_risks(num_pa="PC07404021K1") en parallèle. Il synthétise : « Zone UB (constructible direct), risque inondation moyen avec PPRi en vigueur, pas d'ICPE proches. À noter : les fondations devront tenir compte du retrait-gonflement argile détecté. »

3. Dossier complet en 1 prompt

« Donne-moi un dossier complet sur PC07404021K1 : détails du permis, identité du demandeur via SIRENE, top 5 transactions DVF voisines, score MDB, zonage PLU et géorisques. »

Claude appelle les 6 endpoints en parallèle (équivalent de notre Vue 360° dashboard) et te génère un rapport texte structuré.

4. Comparatif inter-villes

« Compare le volume de permis PC_LOGEMENT déposés en 2024 entre Bordeaux, Toulouse et Lyon. Donne-moi les top 3 demandeurs par ville. »

Claude boucle 3 fois sur search_permits avec les bons codes département, agrège les SIREN demandeurs, retourne un tableau comparatif.

Sécurité by design

C'est important parce que tu donnes accès à un LLM à un endpoint authenticated.

1. Clé locale. Ta clé PermisAPI vit dans la config de ton client (env var locale, sur ta machine). Le LLM ne la voit jamais. Il voit uniquement les arguments des tools (numéros de permis, codes départements, etc).

2. Read-only. Les 6 tools sont tous GET. Pas de risque qu'un LLM modifie tes données ou consomme ton budget Stripe via une action destructive. Aucune mutation possible.

3. Validation stricte. Côté MCP server, on valide chaque input avant de l'envoyer à l'API : regex anti-XSS sur les num_pa (whitelist alphanumérique + espace + tiret + underscore), Pydantic sur les ranges, anti-injection en defense en profondeur.

4. Quota respecté. Les limites de ton plan PermisAPI s'appliquent. Un user Free reste à 500 req/mois même si Claude tourne en boucle. Tu ne peux pas être surpris par une facture Stripe.

5. Tools transparents. Tu vois exactement ce que le LLM appelle dans la sidebar Claude Desktop (« Used tool: search_permits »). Si quelque chose paraît bizarre, tu peux interrompre la session.

Ce qui n'est PAS encore disponible

  • Webhooks d'alertes via MCP : pour recevoir un push quand un permis match tes critères, il faut toujours utiliser l'API REST avec /v1/alerts. Backlog V0.2.
  • Mutation tools : créer une alerte, mettre à jour ses préférences. Volontairement read-only en V0.1 pour la sécurité. À ouvrir progressivement avec confirmation utilisateur.
  • Mode SSE pour serveurs distants : V0.1 = stdio uniquement (server local lancé par le client). Si tu veux un MCP server hosted, c'est sur la roadmap V0.2.

Pourquoi on l'a construit

PermisAPI est ma boîte solo. Je vois la consolidation MCP arriver vite : Anthropic, OpenAI, Cursor, Windsurf le poussent tous en 2026. Les utilisateurs B2B voudront leurs SaaS dans leurs LLM préférés sans avoir à coder.

Être premier sur PermisAPI MCP, c'est :

  • Distribution gratuite vers les utilisateurs Claude Desktop / Cursor / ChatGPT (millions)
  • Démocratisation : un MDB qui ne sait pas coder peut maintenant utiliser PermisAPI
  • Feature parity : pas de différence d'accès entre les API users et les LLM users
  • Premier mover advantage FR : aucun concurrent permis FR n'a fait ça

C'est zéro risque côté pricing : MCP est gratuit pour tous (limité par le quota du plan), donc on n'érode rien. C'est un canal d'acquisition pur.

Et après ?

V0.2 prévu si traction :

  • Mode SSE pour MCP server hosted sur mcp.permisapi.fr, accessible depuis web ChatGPT
  • Tools mutation (création d'alertes, update préférences) avec confirmation utilisateur explicite
  • Tools admin (pour les Enterprises qui veulent intégrer le panel admin LIR/funnel/cohortes)

Si tu utilises permisapi-mcp et tu as des suggestions, écris-moi à evan@permisapi.fr.

Essaie l'API en 30 secondes

Pas de signup, pas de carte bleue. Entre un code postal sur la home et regarde 5 permis en temps reel.

Autres tutoriels