PermisAPI
MCP server · gratuit pour tous les plans

PermisAPI dans
Claude.ai, ChatGPT, Cursor.

Demande en langage naturel à ton LLM préféré. Pas de code, pas de dashboard à apprendre. 2 modes au choix : connecteur OAuth hosted sur Claude.ai web (zéro install) ou installation locale pour Claude Desktop / Cursor / Windsurf. Premier mover FR sur ce setup MCP officiel Anthropic.

Mode 1 : OAuth hosted (recommandé pour Claude.ai web)

Zéro installation, zéro fichier de config. Tu colles l'URL dans les paramètres Claude.ai et tu autorises avec ta clé PermisAPI dans la page consent dédiée. Flow OAuth 2.0 + PKCE conforme à la spec officielle MCP Anthropic mars 2025.

URL à coller dans Claude.ai

https://mcp.permisapi.fr/mcp/
  1. Claude.ai web > Réglages > Connecteurs personnalisés > + Ajouter un connecteur personnalisé
  2. Nom : « PermisAPI ». URL : https://mcp.permisapi.fr/mcp/. Laisse les champs OAuth ID/Secret vides (Claude.ai gère le Dynamic Client Registration automatiquement).
  3. Clique Ajouter. Claude.ai te redirige vers notre page consent. Colle ta clé pk_live_... et autorise.
  4. Pas encore de clé ? Inscris-toi gratuitement (500 requêtes / mois sans carte).
  5. Nouvelle conversation : l'icône MCP affiche 18 outils disponibles. Tu peux demander « Liste les permis logement à Paris ce mois avec un score MDB > 70 ».

Aussi compatible avec ChatGPT (custom GPT Actions avec Bearer), Cursor et Windsurf en mode remote MCP. Pour ces clients qui supportent les Bearer custom, tu peux mettre directement Authorization: Bearer pk_live_… dans la config sans passer par le flow OAuth.

Mode 2 : Installation locale (Claude Desktop, stdio)

Si tu utilises Claude Desktop ou si tu préfères tout en local : install Python et le package permisapi-mcp (v0.5.0 sur PyPI).

  1. Installer le connecteur

    # Vérifier d'abord la version (3.10+ requis)
    python --version
    
    # Installer
    pip install permisapi-mcp

    Python 3.10 ou plus récent requis. Si vous avez une version plus ancienne, voir la section Troubleshooting plus bas (workaround uvx en 1 commande, pas besoin d'upgrade système).

  2. Récupérer une clé PermisAPI

    Voir les plans →

    Gratuite pour commencer (500 requêtes/mois, plan Free). Plan Pro 199 €/mois pour accéder aux outils ventes voisines (DVF), score d'opportunité, zonage urbanisme (PLU) et risques (Géorisques).

  3. Configurer Claude Desktop

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

    Éditez ~/Library/Application Support/Claude/claude_desktop_config.json sur macOS, ou %APPDATA%/Claude/claude_desktop_config.json sur Windows. Redémarrez Claude Desktop.

  4. Demandez ce que vous voulez

    « Liste les permis de construction logement à Paris ce mois avec un score d'opportunité > 70 »

    Claude détecte automatiquement les outils disponibles et choisit la bonne fonction. Les plans Free et Explorer ont un périmètre géographique limité (1 ou 5 départements au choix). Pro et + : France entière.

18 outils disponibles

  • search_permitsFree

    Cherchez des permis avec 13 filtres au choix : département, commune, type (logement, locaux, démolir...), état (accordé, refusé...), dates, surface du terrain, entreprise demandeuse, et même note d'opportunité ou niveau de risque.

  • get_permit_detailsFree

    Toutes les informations d'un permis à partir de son numéro officiel (le num_pa qui apparait sur les arrêtés Sitadel).

  • fuzzy_search_addressesFree

    Cherchez par adresse approximative, même avec des fautes de frappe ou des accents oubliés (par exemple : « rue de la republique bordeaux »).

  • find_dvf_neighborsPro

    Les 5 ventes immobilières les plus pertinentes près du permis sur les 12 dernières années (depuis 2014). Données publiques officielles (DVF + Cerema DVF+). Sert à estimer le prix au m² du quartier.

  • get_mdb_scorePro

    Une note de 0 à 100 qui dit si le permis est une opportunité intéressante pour un marchand de biens (« faible / moyen / élevé / premium »). Calculée à partir de 11 signaux : type de permis, surface, prix du quartier, profil du demandeur, PLU, risques, SIRENE, densité de construction de la parcelle, etc.

  • get_score_explanationPro

    Explication transparente du score : retourne les 11 signaux pondérés avec pour chacun son libellé en français clair, comment il est calculé en général, son poids dans le score, sa valeur 0-100 pour CE permis, sa contribution finale et une interprétation FR contextualisée (« Démolition pure (PD) : top signal MDB », « 850 m² dans le sweet spot 200-2 000 m² », « Risque critique : rédhibitoire »). Inclut top 3 signaux positifs et top 3 négatifs. Pour justifier une décision à un client ou banquier au lieu d'une boîte noire.

  • get_plu_zoningPro

    Le zonage urbanisme officiel du permis (urbain, à urbaniser, agricole, naturel) avec une réponse simple oui/non sur la constructibilité.

  • get_risksPro

    Les risques connus de la commune : inondation, séisme, sol qui bouge (argile), sites industriels dangereux (ICPE, Seveso). Niveau global faible / modéré / élevé / critique. Source officielle Géorisques (BRGM + Ministère).

  • get_parcelle_geometryPro

    La forme exacte du terrain (le contour dessiné sur la carte) plus la surface officielle mesurée par le cadastre (DGFiP). Pour afficher la vraie parcelle sur une carte au lieu d'un simple point.

  • get_existing_buildingsPro

    Voir s'il y a déjà des bâtiments sur le terrain du permis : un terrain vide = vraie construction neuve à fort potentiel marchand de biens, un terrain déjà bâti = extension ou rénovation à potentiel limité. Donne le nombre de bâtiments et leur type (maison en dur, hangar léger).

  • get_parcelle_by_idPro

    Lookup direct d'une parcelle cadastrale par son identifiant Etalab (14 caractères, ex 75104000AA0123 pour Paris 4e section AA parcelle 0123). Retourne en 1 appel : centroïde, contenance officielle DGFiP en m², commune et département, polygon GeoJSON si dispo, compteur bâtiments existants, et tous les permits historiques associés à cette parcelle. Use case inverse de get_parcelle_geometry : parcelle -> permits au lieu de permit -> parcelle.

  • get_neighbor_parcelsPro

    Parcelles cadastrales voisines d'un permis dans un rayon configurable (10 à 2 000 m, défaut 200 m) plus leur historique permits (max 5 par parcelle). Killer feature marchand de biens : pattern d'activité local autour d'un permis identifié. Détecte les zones en mutation (plusieurs permits récents sur les parcelles voisines), les opportunités adjacentes (parcelles voisines sans activité récente) et la densification potentielle.

  • search_permits_in_polygonBusiness

    Recherche tous les permits dont le point géocodé est à l'intérieur d'un polygon GeoJSON custom fourni dans la requête. Killer feature foncière pour les ZAC (Zone d'Aménagement Concerté), périmètres d'opération propTech, zones de chasse marchand de biens au-delà des limites administratives commune ou département. Filtres additionnels combinables : département, type de permis, années, score minimum.

  • get_commune_density_statsBusiness

    Statistiques macro de densité urbaine pour une commune en 1 seul appel : nombre de parcelles cadastrales et surface totale, nombre de bâtiments par type (bâti dur, léger, autre), nombre de permits historiques 2014-2026 ventilés par année, type et distribution Score MDB v0.3, et indicateur de densité (bâtiments par km² avec tier très dense / dense / moyen / faible). Mapping PLM automatique pour Paris, Lyon et Marseille.

  • get_permit_full_viewPro

    Toutes les informations d'un permis en 1 seul appel : détails + fiche entreprise demandeuse + ventes voisines + note d'opportunité + zonage urbanisme + risques. Évite de faire 6 demandes successives.

  • bulk_enrich_listBusiness

    Envoyez votre propre liste (jusqu'à 1 000 adresses, références cadastre ou coordonnées GPS) et recevez en 1 fois les permis correspondants. Idéal pour enrichir une base prospects ou un portefeuille de biens.

  • get_economicsPro

    Estimation chiffrée du budget total du chantier d'un permis : fourchette basse / médiane / haute en EUR plus détail au m², scénario détecté automatiquement (construction neuve, rénovation lourde ou légère, démolition, aménagement), confiance 0-100 % et transparence complète des modulateurs appliqués. Combine 3 sources : surfaces déclarées par le constructeur dans le permit (Sitadel), barème statique calibré Capeb / FFB modulé par département (Paris +25 %, Côte d'Azur +20 %, métropoles régionales +5 %) et par taille (effet d'échelle inverse), et modulateur officiel INSEE ICP-BT actualisé mensuellement. Inclut breakdown_by_lot (gros oeuvre 38 %, plomberie 11 %, électricité 9 %, etc.) avec codes NAF SIRENE à passer à get_contractors.

  • get_contractorsPro

    Entreprises BTP locales autour d'un permis filtrables par métier (codes NAF SIRENE 41/42/43), rayon configurable (500 m à 50 km), effectif salarié minimum, statut actif. Source : base SIRENE INSEE ingérée mensuellement, 1 086 952 établissements actifs en France dont 830 860 géolocalisés WGS84 (76 % couverture). Retourne pour chaque entreprise : raison sociale, code NAF + libellé, tranche d'effectif INSEE + bornes salariés, ancienneté en années, commune, distance en mètres. Tri par distance croissante. Pont natif avec get_economics : pour chaque lot du breakdown, passez les codes NAF pour identifier les entreprises locales qualifiées.

Exemples de prompts

« Trouve les permis de construction logement déposés à Paris ce mois (Free) ou France entière (Pro+) »
« Pour le permis 0930662500027, quel est le zonage PLU et combien valent les biens voisins ? »
« Y a-t-il des risques inondation ou ICPE proches sur le permis DP_075_108_23_B0012 ? »
« Donne-moi un dossier complet sur 0930662500027 : détails, SIRENE du demandeur, DVF voisin, score MDB, PLU et géorisques »

Sécurité

  • Clé locale : ta clé PermisAPI reste dans la config de ton client (env var locale). Jamais transmise au LLM.
  • Outils en lecture seule : 16 outils en consultation pure (GET) + 2 outils POST en lecture seule côté PermisAPI : search_permits_in_polygon (envoi d'un polygon GeoJSON custom pour récupérer les permits à l'intérieur, sans stockage) et bulk_enrich_list (croisement d'une liste client adresses/cadastre/GPS pour récupérer les permits matchés, sans stocker la liste). Aucun risque qu'un assistant IA modifie ou supprime vos données.
  • Validation stricte : contrôles de format sur les identifiants permis, plages de valeurs vérifiées, protections anti-XSS et anti-injection en défense en profondeur.
  • Quota respecté : les limites de votre plan PermisAPI s'appliquent (un compte Free reste à 500 requêtes/mois même via le connecteur MCP).

Autres clients supportés

MCP est un standard ouvert : tout client compatible peut se brancher. Configurations détaillées dans le guide complet.

  • Cursor : Settings → Features → Model Context Protocol
  • Windsurf : ~/.codeium/windsurf/mcp_config.json
  • Custom integration : npm i @modelcontextprotocol/sdk côté client
Code source + README (GitHub) →

Troubleshooting

pip install dit « package introuvable » ou « no matching distribution »

Cause la plus fréquente : votre Python est plus ancien que 3.10. Le MCP SDK Anthropic requiert 3.10 minimum, on ne peut pas descendre.

Vérifiez :

python --version       # ou python3 --version

Si < 3.10, deux options. La plus rapide (recommandée, 30 secondes) :

# 1. Installer uv (macOS / Linux)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows PowerShell
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

# 2. Lancer le serveur via uvx (pin Python 3.11 automatique)
uvx --python 3.11 permisapi-mcp

Puis dans la config Claude Desktop, remplacez"command": "permisapi-mcp" par"command": "uvx", "args": ["--python", "3.11", "permisapi-mcp"].

Alternative : upgrade Python système (brew install python@3.11sur macOS, python.org/downloads sur Windows en cochant « Add to PATH »).

Claude Desktop ne voit pas les outils
  1. Validez la syntaxe JSON de votre config avec un linter (virgule oubliée fréquente).
  2. Confirmez que PERMISAPI_KEY est bien renseignée et démarre par pk_live_.
  3. Logs Claude Desktop : Help → Open Logs Directory, cherchez « permisapi-mcp ».
  4. Test manuel : ouvrez un terminal et lancez permisapi-mcp (ou uvx --python 3.11 permisapi-mcp). Si erreur, copiez-la dans un mail.
Erreur 402 Payment Required dans la réponse d'un outil

L'outil appelé nécessite un plan Pro (ex.find_dvf_neighbors, get_mdb_score,get_score_explanation,get_plu_zoning, get_risks,get_parcelle_geometry,get_parcelle_by_id,get_neighbor_parcels,get_permit_full_view) ou Business (ex.search_permits_in_polygon,get_commune_density_stats,bulk_enrich_list). Voir les plans →

Quota dépassé (429 Too Many Requests)

Vous avez consommé vos requêtes du mois (500 sur Free, 5 000 sur Explorer, 50 000 sur Pro, 500 000 sur Business). Reset le 1er du mois suivant, ou upgrade le plan.

Toujours bloqué ? evan@permisapi.fr, réponse 24-48h sur les plans Pro+.

Prêt à demander en langage naturel ?

Clé gratuite en 30 secondes. Pas de carte bleue requise pour le plan Free.

Obtenir une clé →