Skip to main content

permisapi-mcp

Serveur MCP (Model Context Protocol) pour PermisAPI.

Il permet à Claude, ChatGPT, Claude Desktop, Cursor, Windsurf ou tout client compatible MCP d'interroger en langage naturel 1,3 million de permis de construire en France (base Sitadel, permis autorisés depuis 2013, 101 départements, logements et locaux).

18 outils en lecture seule : recherche par critères ou par adresse, score d'opportunité marchand de biens v0.3 et son explication (les 11 signaux pondérés, commentés en français), ventes immobilières voisines (DVF, ventes de 2021 à 2025) et prix au m², zonage PLU, risques Géorisques (inondation, séisme, sites Seveso proches…), parcelle cadastrale DGFiP, bâtiments existants (terrain nu ou déjà bâti), parcelles voisines, recherche dans un polygone GeoJSON (ZAC, périmètre d'opération), statistiques de densité par commune, budget de chantier estimé et entreprises du bâtiment proches (base SIRENE, codes NAF 41, 42 et 43), enrichissement d'une liste.

Deux façons de l'utiliser

1. Serveur hébergé (recommandé, rien à installer)

Adresse : https://mcp.permisapi.fr/mcp/

  • Claude et ChatGPT : ajoutez un connecteur personnalisé à cette adresse. Une page PermisAPI s'ouvre ; collez-y votre clé et cliquez sur Autoriser (OAuth 2.0 avec PKCE : l'assistant reçoit un jeton, jamais votre clé). Les intitulés des menus changent d'une version à l'autre : le pas à pas à jour est sur permisapi.fr/mcp.
  • Cursor, Windsurf et autres clients acceptant un en-tête (~/.cursor/mcp.json) :
{
  "mcpServers": {
    "permisapi-hosted": {
      "url": "https://mcp.permisapi.fr/mcp/",
      "headers": { "Authorization": "Bearer pk_live_VOTRE_CLE" }
    }
  }
}

Transports : Streamable HTTP (spécification MCP actuelle) sur /mcp et /mcp/, et SSE historique sur /sse + /messages/. Le serveur ne conserve ni vos questions ni les résultats : il relaie vos appels vers api.permisapi.fr. Quand la mesure d'audience est activée sur le serveur (PostHog, hébergement UE), chaque appel d'outil y est compté (nom de l'outil, durée, statut, formule).

2. En local (Claude Desktop, mode stdio)

Pour Claude Desktop, ou si vous préférez tout faire tourner sur votre machine, installez le paquet permisapi-mcp.

Prérequis

  • Python 3.10 ou plus récent (exigé par le SDK MCP)
  • Une clé PermisAPI : permisapi.fr/#pricing (formule Gratuit, sans carte bancaire)

Installation

Vérifiez d'abord la version de Python :

python --version       # macOS / Linux / Windows

Si elle est >= 3.10 :

pip install permisapi-mcp

Sinon, voir Dépannage plus bas (solution uvx en une commande, sans changer le Python du système).

Configuration de Claude Desktop

Modifiez ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) ou %APPDATA%\Claude\claude_desktop_config.json (Windows) :

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

Redémarrez Claude Desktop. Vous pouvez alors demander :

« Liste les permis de logement autorisés à Paris ce mois-ci »

« Trouve des permis autour de la rue de Passy à Paris »

« Quel est le zonage PLU du permis 07510125V0025 ? » (formule Régional et plus)

Périmètre géographique selon la formule (src/services/plan_gating.py) :

  • Gratuit : 1 département, 6 mois d'historique, 500 requêtes par mois.
  • Explorer : 5 départements, 6 mois d'historique.
  • Régional : 5 départements, historique complet et données avancées (ventes DVF, score, PLU, risques, cadastre, budget, entreprises).
  • Pro : les mêmes données avancées sur la France entière.
  • Business et Enterprise : France entière, plus la recherche par polygone, la densité par commune et l'enrichissement de liste.

Pour les formules à départements (Gratuit, Explorer, Régional), chaque nouveau département interrogé s'ajoute à votre périmètre jusqu'à la limite de la formule ; le choix est ensuite définitif pour cette formule. Les exemples ci-dessus portent sur Paris (75).

Configuration de Cursor, Windsurf et autres clients

Guide complet : permisapi.fr/mcp

Outils disponibles (18)

Outil Route Formules
search_permits GET /v1/permits (12 filtres et un tri) Toutes
get_permit_details GET /v1/permits/{num_pa} Toutes
fuzzy_search_addresses GET /v1/search?q=texte (recherche approchée) Toutes
find_dvf_neighbors GET /v1/permits/{num_pa}/dvf (ventes DVF 2021-2025, prix médian au m²) Régional et plus
get_mdb_score GET /v1/permits/{num_pa}/score (score v0.3, 11 signaux) Régional et plus
get_score_explanation GET /v1/permits/{num_pa}/score/explain (11 signaux commentés, principaux leviers) Régional et plus
get_plu_zoning GET /v1/permits/{num_pa}/plu Régional et plus
get_risks GET /v1/permits/{num_pa}/risks (Géorisques) Régional et plus
get_parcelle_geometry GET /v1/permits/{num_pa}/parcelle (cadastre DGFiP) Régional et plus
get_existing_buildings GET /v1/permits/{num_pa}/batiments-existants (terrain nu ou bâti) Régional et plus
get_parcelle_by_id GET /v1/parcelles/{id_parcelle} (identifiant cadastral de 14 caractères) Régional et plus
get_neighbor_parcels GET /v1/permits/{num_pa}/parcelles-voisines (rayon de 10 à 2 000 m) Régional et plus
get_permit_full_view GET /v1/permits/{num_pa}/360 (vue complète en un appel) Régional et plus (détail seul en Gratuit et Explorer)
get_economics GET /v1/permits/{num_pa}/economics (budget de chantier : fourchette, scénario, lots) Régional et plus
get_contractors GET /v1/permits/{num_pa}/contractors (entreprises du bâtiment proches, par métier) Régional et plus
search_permits_in_polygon POST /v1/permits/inside-polygon (polygone GeoJSON) Business et Enterprise
get_commune_density_stats GET /v1/stats/commune/{code}/density (parcelles, bâtiments, permis) Business et Enterprise
bulk_enrich_list POST /v1/permits/bulk-enrich (liste de 1 000 lignes au plus) Business et Enterprise

« Régional et plus » = Régional, Pro, Business et Enterprise. Les autres formules reçoivent une erreur 402.

Sécurité

  • En mode local, la clé reste sur votre machine (variable d'environnement) ; en mode hébergé, l'assistant ne reçoit qu'un jeton. Dans les deux cas, le modèle ne voit jamais la clé, seulement les arguments des outils.
  • Validation stricte des entrées (num_pa, identifiants cadastraux, codes INSEE, bornes numériques).
  • 16 outils en consultation (GET) et 2 en POST (bulk_enrich_list, qui croise une liste que vous fournissez, et search_permits_in_polygon, qui reçoit un polygone). Tous sont en lecture seule : ils ne modifient ni votre compte ni les données.

Dépannage

pip install permisapi-mcp répond « package introuvable » ou « no matching distribution »

Cause la plus fréquente : votre Python est antérieur à 3.10, minimum exigé par le SDK MCP.

Vérifiez :

python --version       # ou python3 --version

Si elle est < 3.10, deux solutions au choix.

Solution A (recommandée, 30 secondes) : uvx avec une version de Python imposée

uvx installe et lance le serveur dans un Python isolé, à la version voulue, sans toucher à votre installation.

# 1. Installer uv (une seule fois)
curl -LsSf https://astral.sh/uv/install.sh | sh         # macOS / Linux
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"  # Windows PowerShell

# 2. Lancer le serveur
uvx --python 3.11 permisapi-mcp

Puis, dans la configuration de Claude Desktop, remplacez "command": "permisapi-mcp" par :

{
  "mcpServers": {
    "permisapi": {
      "command": "uvx",
      "args": ["--python", "3.11", "permisapi-mcp"],
      "env": { "PERMISAPI_KEY": "pk_live_VOTRE_CLE" }
    }
  }
}

Solution B : mettre à jour le Python du système

  • macOS : brew install python@3.11
  • Windows : télécharger https://www.python.org/downloads/ et cocher « Add to PATH »
  • Linux : sudo apt install python3.11 (ou l'équivalent de votre distribution)

Puis pip3.11 install permisapi-mcp.

Guide complet et autres questions : permisapi.fr/mcp

Licence

MIT pour le code. Données publiques : SDES (Sitadel), DGFiP (DVF, cadastre), Géorisques, IGN (Géoportail de l'Urbanisme), INSEE (SIRENE).

Support

evan@permisapi.fr

Code source

github.com/Evan-Crx/permisapi-mcp

Metadata

Release files for permisapi-mcp 0.5.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for permisapi-mcp 0.5.9
File Size Uploaded Provenance
permisapi_mcp-0.5.9.tar.gz 54.4 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for permisapi-mcp 0.5.9
File Interpreter ABI Platform
permisapi_mcp-0.5.9-py3-none-any.whl Python 3 none any Details

Total release size: 100.0 kB

Release files / permisapi_mcp-0.5.9.tar.gz

Download URL permisapi_mcp-0.5.9.tar.gz
Size 54.4 kB
Tags Source
SHA-256 checksum
How to use checksums
8cb2d6bb2319d6db6132d919d3593f10e96d7d6a4a2ced97492d9c648a7210e8
BLAKE2b-256 checksum
How to use checksums
7203f9af665702a9a94e68243955f5d1143951866c2f1db114c489b9c2f30b30
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.17

Release files / permisapi_mcp-0.5.9-py3-none-any.whl

Download URL permisapi_mcp-0.5.9-py3-none-any.whl
Size 45.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
37c347e20e33536795ab49050150d3ee135e01b2c97d6070d7530a432ffa987a
BLAKE2b-256 checksum
How to use checksums
b56c380d150e104ff0a47bfeae28358c3dfaf3bf4e1d8bddc1f9114bb9b087ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.17

Security for permisapi-mcp 0.5.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page