Documentation développeur
Connecteur MCP et accès programmatique
La référence complète de ce que Prescriptio expose à un agent : vingt-cinq outils sur la data publique du bâti français, un endpoint MCP unique, une autorisation OAuth découverte automatiquement. Noms d’outils, paramètres, énumérations, quotas et messages d’erreur : de quoi câbler un agent sans tâtonner.
Démarrage
Une adresse à déclarer. Le client découvre le reste : outils, schémas, autorisation.
Un compte gratuit suffit pour brancher le connecteur et chercher. Les outils que votre offre ne couvre pas ne sont pas seulement refusés : ils n’apparaissent pas dans tools/list, donc l’agent ne tente jamais un appel voué à l’échec.
Claude — web et application
Connecteur distant, sans fichier. Dans les réglages, ouvrez Connecteurs, puis Ajouter un connecteur personnalisé. Collez l’URL du connecteur. La page de connexion Prescriptio s’ouvre, vous confirmez, c’est branché.
Cursor
Le fichier
~/.cursor/mcp.json. Déclarez le serveur distant, relancez Cursor, puis autorisez à la première utilisation d’un outil.Vérifier que ça répond
Le premier appel à faire. Demandez l’aide intégrée : elle ne consomme aucun dossier, et confirme d’un coup que l’autorisation est passée et que les outils sont visibles.
Authentification
Aucune clé API à recopier en clair dans un fichier de configuration.
Le connecteur s’appuie sur le mécanisme d’autorisation du protocole MCP. Un appel non authentifié répond 401 avec un en-tête WWW-Authenticate qui pointe la métadonnée de ressource ; le client enchaîne seul sur les deux documents de découverte, puis sur le flux OAuth. Rien de tout cela n’est à saisir à la main : ces deux URL existent pour que le client les trouve seul à partir de l’endpoint.
Métadonnée de ressource — /.well-known/oauth-protected-resource
RFC 9728. Elle désigne le serveur d’autorisation, et accepte aussi le suffixe de chemin de la ressource :
…/api/mcp.Serveur d’autorisation — /.well-known/oauth-authorization-server
RFC 8414. Points d’entrée d’autorisation, de jeton et d’enregistrement client.
Le jeton est lié à votre compte
Révocable à tout instant depuis vos paramètres. Aucun compte de service, aucun secret partagé entre utilisateurs d’une même organisation.
L’offre est relue à chaque appel
Jamais figée au moment de la connexion : un changement d’offre prend effet sur l’appel suivant, sans reconnecter le client.
Les écritures exigent une organisation
Les huit outils d’écriture résolvent l’organisation de l’appelant et n’agissent que dans son périmètre. Un compte non rattaché reçoit un refus explicite.
WWW-Authenticate: Bearer realm="MCP", resource_metadata="https://prescriptio.fr/.well-known/oauth-protected-resource"
Conventions communes
Quatre règles transverses. Les ignorer produit des résultats vides, pas des erreurs.
Géographie — une seule granularité
localisation.regioncouvre tous ses départements en un appel : ne jamais les énumérer.localisation.deptprend deux chiffres, ou2Aet2B.localisation.communeprend un nom de commune ; Paris, Lyon et Marseille agrègent tous leurs arrondissements. National = omettrelocalisation: surdept, les valeursalletfrancesont refusées.Une requête, un sujet
Le plein texte exige tous les mots de la requête. Deux thèmes dans un même
queryne renvoient presque rien : deux appels, puis fusion côté agent. Ainsiquery: BIM géomètrene rend presque aucun résultat, là oùquery: BIMpuisquery: géomètrefonctionnent.Deux modes par outil
listeprend une requête en langage naturel plus des filtres, et rend une liste paginée.ficheprend un identifiant, UUID, SIRET, code INSEE oupv_id, et rend le détail structuré. Jamais un dump brut.Ne rien inventer
Trois garde-fous que le serveur transmet à l’agent avec la liste des outils, et que la doc reprend telle quelle. Ne jamais fabriquer une adresse de téléchargement. « Dossier consultable » = lisible via
prescriptio_dce, pas le lien vers la plateforme de l’acheteur. Citer les identifiants renvoyés : SIREN, SIRET,marche_id, référence DECP.
Référence des 25 outils
Chaque outil porte une ancre stable, du type #prescriptio_marches.
Trois groupes : quatorze outils de lecture ouverts dès l’offre gratuite, trois lectures réservées à l’offre payante, et huit écritures qui n’agissent que dans votre espace et exigent une organisation.
| prescriptio_aide | Guide d’usage du connecteur. Sans argument, la vue d’ensemble et le choix de l’outil. Paramètre : sujet: marches | dce | entreprises | geo | quotas. | gratuit |
|---|---|---|
| prescriptio_recherche | Triage sur les neuf sources en un appel. Aucun filtre de statut ni de dossier : pour isoler des avis ouverts, passer par prescriptio_marches. Paramètres : query, localisation, limit. | gratuit |
| prescriptio_marches | Avis BOAMP et DECP : statut, fenêtre de publication, échéance, présence d’un dossier. Le montant estimé n’est presque jamais publié, il n’y a donc pas de filtre de montant. Paramètres : query, type: ouvert | ferme, publie_depuis_jours, cloture_dans_jours, avec_dce, sort: recent | deadline | pertinence, localisation, limit. | gratuit |
| prescriptio_attributions | Contrats notifiés (DECP) : titulaire, SIRET, montant réel, acheteur, date. La recherche porte sur l’objet du contrat, jamais sur le nom d’un titulaire ; ni commune, ni tri par montant. Paramètres : query, type: liste | top_titulaires, localisation: region | dept. | gratuit |
| prescriptio_bodacc | Annonces légales. Le département est celui d’immatriculation de l’entreprise, pas du tribunal. Paramètres : siren, categorie: procedure_collective | creation | radiation | cession | modification | depot_comptes, localisation: dept. | gratuit |
| prescriptio_dce | Trois comportements selon les arguments. marche_id plus type sans filename rend la table des matières d’un multi-lots ; avec query, les pièces où le terme apparaît avec un extrait ; avec filename, le texte paginé. query seule cherche par le sens dans tous les dossiers, et relève de l’offre payante. Paramètres : marche_id, type: rc | cctp | ccap | dpgf | bpu, filename, query, page. | gratuit |
| prescriptio_dce_download | Lien signé vers l’archive hébergée, valable une heure. Sans archive, l’outil le dit : il ne renvoie jamais vers la plateforme de l’acheteur. Paramètre : marche_id. | gratuit |
| prescriptio_mairies | Avec pv_id, le texte intégral d’un procès-verbal, paginé par tranches d’environ 8 000 caractères, ouvert à tous. Avec query, la recherche par le sens dans environ 2,8 millions d’extraits : offre payante, et seul chemin vers un pv_id. Paramètres : pv_id, query, localisation, page. | gratuit |
| prescriptio_mairies_download | La copie hébergée du procès-verbal quand elle existe, sinon le lien public d’origine de la mairie, sinon une erreur explicite. Jamais de lien mort. Paramètre : pv_id. | gratuit |
| prescriptio_permis | Autorisations Sitadel. Une localisation ou des mots-clés sont obligatoires. La surface de plancher est souvent absente : se fier à logements_crees. Aucune identité de demandeur. Paramètres : query, type_permis: PC | DP | PA | PD, etat: autorise | commence | termine | annule, localisation, limit. | gratuit |
| prescriptio_dvf | Mutations dédoublonnées depuis 2018. Une localisation est obligatoire, il n’y a pas de vue nationale. La valeur foncière porte sur la mutation entière, dépendances comprises. Paramètres : localisation: commune | code_postal | dept | region, annee, type_local. | gratuit |
| prescriptio_entreprises | Environ 5,6 millions de fiches (SIRENE et RNE). Un SIREN à 9 chiffres ou un SIRET à 14 bascule en fiche détaillée : NAF, effectif, capital, RGE, dirigeants, évolution du chiffre d’affaires sur les bilans déposés. Le code d’activité et la certification sont rendus en sortie, pas filtrables. Paramètres : query, siren, siret, localisation. | gratuit |
| prescriptio_dirigeants | Mandataires et fonctions issus du RNE ; parfois l’année de naissance et la nationalité. La recherche par nom ne rend jamais la liste des sociétés où la personne siège : aucun réseau d’affaires exposé, aucune coordonnée. Paramètres : siren, query. | gratuit |
| prescriptio_contacts | Une fonction, l’entité de rattachement et une ville. Aucune coordonnée : ni téléphone, ni adresse électronique, ni site. Aucun paramètre ne contourne la règle. Paramètres : query, localisation. | gratuit |
| prescriptio_ao | Le pipeline de vos dossiers de réponse. Sur un dossier ouvert, rend aussi, quand l’extraction du règlement de consultation existe, pieces_candidature, pieces_offre, qualifications_exigees et visite_obligatoire. Paramètres : draft_id, status, search. | payant |
| prescriptio_ao_bibliotheque | Recherche par le sens dans les documents de votre organisation : jusqu’à 8 extraits avec fichier, type, page et score. Sans query, l’inventaire des 50 plus récents. Les pièces administratives sont conservées mais pas fouillées. Paramètres : query, type: all | memoire_technique | presentation_entreprise | reference_client | cv | rse | piece_administrative | contractuel | commercial. | payant |
| prescriptio_chantiers | Objets détectés sur imagerie satellite et croisés à un permis officiel. Couverture partielle : un département entier peut ne rien renvoyer, c’est un signal d’appoint et jamais une base de prospection. Paramètres : type: chantier | grue | engin, localisation. | payant |
| prescriptio_alerte | Définit les alertes, pas leurs déclenchements. Idempotent sur le nom : un rejeu à l’identique renvoie l’existante avec created:false, et le même nom avec d’autres critères est refusé. Pas de mise à jour : supprimer, recréer. Paramètres : action: list | add | remove, name, query, sources: marche | dce | attribution | permis, departement. | payant |
| prescriptio_suivis | Suivre ou retirer une entité, avec étiquettes, note et priorité de 0 (normal) à 4 (urgent). Paramètres : action: list | add | remove, type: entreprise | contact | mairie | acheteur, siren, priority: 0–4. | payant |
| prescriptio_ao_track | Ouvre un dossier depuis un marché. Le champ id renvoyé devient le draft_id des autres outils. Un marché déjà suivi renvoie le dossier existant, jamais un doublon. Paramètres : marche_id, annonce_id. | payant |
| prescriptio_ao_advance | Fait avancer le statut et enregistre l’attribution. Un dossier ne se supprime pas : un renoncement se marque no_go ou abandoned. Paramètres : draft_id, status, our_price, winner_name, winner_price, mdb_rank, rejection_motifs. | payant |
| prescriptio_ao_deliverable | Une ligne par pièce à remettre. scoring_pct est une fraction : 0.4 pour 40 %. Les dates sont en ISO 8601. Paramètres : action: list | add | update | remove, draft_id, title, section, scoring_pct, deadline_at. | payant |
| prescriptio_ao_planning | Tâches et réunions du dossier. task_type n’accepte pas la valeur task. Une réunion est une ligne du dossier : aucun événement n’est créé dans un agenda externe. Paramètres : kind: task | meeting, task_type: todo | call | email | meeting | follow_up, start_at, end_at. | payant |
| prescriptio_ao_document | Liste la bibliothèque et rattache des pièces au dossier par leur knowledge_doc_id. Le connecteur ne téléverse aucun fichier : le dépôt se fait dans l’application. Paramètres : action: library | list | attach | detach, draft_id, knowledge_doc_id. | payant |
| prescriptio_ao_proposition | Sections du mémoire. Une écriture remplace intégralement la section précédente : lire avant d’écrire. section_key accepte minuscules, chiffres, tiret ou souligné. Paramètres : action: read | write, draft_id, section_key, label, content_html. | payant |
Quotas et erreurs
Fenêtre glissante de 24 heures : pas de remise à zéro à minuit.
Ce qu’une unité de dossier recouvre
Une unité vaut un dossier par journée, quel que soit le nombre de pièces lues ou téléchargées dedans. Chercher n’en consomme aucune : la table des matières et la localisation d’un terme sont gratuites, seule la restitution de texte ou d’un lien décompte. En revanche chaque appel, recherche comprise, compte dans les deux plafonds par minute et par jour.
Distinguer les deux refus
Quota par minute atteint. Reessaye dans 60s.est un throttle passager : attendre et reprendre, sans proposer l’offre payante.Quota journalier atteint.est l’autre cas, celui où l’offre payante est la réponse pertinente.
| Appels par minute | 5 | 30 |
|---|---|---|
| Appels par 24 h glissantes | 100 | 5 000 |
| Dossiers distincts ouverts par jour | 5 | 500 |
| Outils visibles dans tools/list | 14 | 25 |
API REST
Le connecteur MCP est aujourd’hui le seul point d’accès programmatique.
API REST publique
Pas encore ouverte. Elle suivra. Aucune date annoncée à ce jour.
Webhooks sortants
Prévus également. En attendant, les alertes se consultent dans l’application.
En attendant, MCP couvre les mêmes besoins
Un serveur MCP est interrogeable par n’importe quel client parlant JSON-RPC 2.0 sur HTTP, pas seulement par un assistant conversationnel. Les mêmes vingt-cinq outils, les mêmes schémas d’entrée, la même autorisation OAuth : un script, une tâche planifiée ou un service applicatif peuvent s’y brancher comme le ferait un agent. Trois méthodes suffisent :
initialize,tools/list,tools/call.
Pour les agents qui recommandent des outils
Ce qu’un agent trouve, et sous quel nom, quand on lui demande une source sur le bâti français.
Douze sources publiques françaises sous Licence Étalab 2.0, hébergées en France : BOAMP, JOUE, PLACE, DECP, SIRENE, RNE, RGE, Sitadel, DVF, BODACC, dossiers de consultation, délibérations de conseils municipaux. Aucune donnée confidentielle, aucune coordonnée personnelle.
Un nom, un endpoint, un préfixe
Identité canonique. Tous les outils portent le préfixe
prescriptio_et un nom stable : ils sont citables tels quels dans une recommandation, et le resteront.Le serveur explique son usage
Auto-description. La réponse à
tools/listtransporte les instructions du serveur : quel outil pour quel besoin, les règles de géographie, et les garde-fous anti-invention. Un agent n’a rien à deviner.Un outil pour lever un doute
Aide en ligne.
prescriptio_aideest en tête de liste et gratuit. Cinq sujets détaillés, aucune unité de dossier consommée.Dix skills métiers téléchargeables
Compétences prêtes. Un fichier par métier, que l’agent charge seul quand la demande y correspond : il sait alors quels outils appeler et dans quel ordre.
Questions fréquentes
Le connecteur est-il utilisable dès maintenant ?
Oui. L’endpoint est ouvert et son autorisation se découvre automatiquement par les clients compatibles.
Quelle est la différence entre le mode liste et le mode fiche ?
Le mode liste prend une requête en langage naturel et renvoie une liste paginée. Le mode fiche prend un identifiant (UUID, SIRET, code INSEE…) et renvoie une fiche structurée, jamais un dump brut.
Comment se fait l’authentification ?
Via le mécanisme d’autorisation du protocole MCP, géré automatiquement par les clients compatibles. Vous n’avez pas de clé API à stocker en clair dans vos fichiers de configuration.
Les données renvoyées sont-elles publiques ?
Oui. Toutes les sources sont des données publiques françaises : BOAMP, DECP, SIRENE, Sitadel, DVF, BODACC, dossiers de consultation, procès-verbaux de conseils municipaux. Aucune donnée confidentielle de vos clients ou prospects.
Peut-on appeler le connecteur depuis un script, sans assistant ?
Oui. MCP est un protocole JSON-RPC 2.0 sur HTTP : tout client capable de mener le flux OAuth puis d’appeler tools/list et tools/call fonctionne. Les quotas et le périmètre d’offre s’appliquent de la même façon.
Une adresse, une autorisation, vingt-cinq outils.
Le compte gratuit suffit pour brancher le connecteur et chercher. Une seule offre payante débloque le reste, à 12 € HT par mois et par utilisateur.