MCP INPI
MCP Entreprises FR — Outils juridiques (Recherche d'Entreprises · BODACC · Marques INPI)
Serveur MCP (Model Context Protocol) en Python exposant des outils juridiques sur les
entreprises françaises, basés sur des API gratuites. Deux transports :
Streamable HTTP (/mcp, recommandé pour Claude.ai) et SSE (/sse, legacy).
Déployable directement sur Railway et connectable à Claude.ai.
Outils exposés
Outil | Description | Source | Auth |
| Recherche d'entreprises par nom → SIREN, forme juridique, commune | Recherche d'Entreprises | aucune |
| Identité : dénomination, sigle, forme juridique, activité (NAF), siège, SIREN | Recherche d'Entreprises | aucune |
| Mandataires sociaux (qualité, identité, date de naissance) | Recherche d'Entreprises | aucune |
| Active / cessée (état administratif INSEE) | Recherche d'Entreprises | aucune |
| Sauvegarde, redressement, liquidation judiciaire | BODACC | aucune |
| Marques déposées par une société (par SIREN) | API PI INPI | INPI* |
| Détail d'une marque (classes Nice, dates, statut, logo) | API PI INPI | INPI* |
* Seuls les outils de marques nécessitent des identifiants INPI (voir Configuration). Les bénéficiaires effectifs (UBO) ne sont pas exposés : aucune source gratuite ne les fournit.
Sources de données
Recherche d'Entreprises —
recherche-entreprises.api.gouv.fr(data.gouv.fr / DINUM), basée sur SIRENE + RNE. Open data sans clé, réponse < 1 s. EndpointGET /search?q=.BODACC —
bodacc-datadila.opendatasoft.com(Opendatasoft v2.1), open data sans clé.API PI Marques —
api-gateway.inpi.fr/services/apidiffusion— auth XSRF + cookies (INPI).
Configuration
Les outils entreprises et BODACC fonctionnent sans aucune clé. Seuls les outils de
marques nécessitent des identifiants INPI. Copiez .env.example en .env (non commité) :
# Requis UNIQUEMENT pour portfolio_marques / detail_marque (compte data.inpi.fr) :
INPI_USERNAME=votre_email@example.com
INPI_PASSWORD=votre_mot_de_passe
# Optionnel — compte technique API PI Marques (api-gateway.inpi.fr).
# Si absent, INPI_USERNAME/INPI_PASSWORD sont réutilisés.
# INPI_PI_USERNAME=compte_technique@example.com
# INPI_PI_PASSWORD=mot_de_passe_techniqueCompte INPI (marques uniquement) : créez-le sur https://data.inpi.fr/login, puis activez « Accès APIs PI » dans Mes accès API / SFTP. L'activation génère un compte technique (email + mot de passe propres) à mettre dans
INPI_PI_USERNAME/INPI_PI_PASSWORD.
Lancer en local
python -m venv .venv
.venv\Scripts\activate # Windows (PowerShell : .venv\Scripts\Activate.ps1)
pip install -r requirements.txt
copy .env.example .env # puis éditez .env
python main.pyEndpoint Streamable HTTP :
http://localhost:8080/mcpEndpoint SSE (legacy) :
http://localhost:8080/sseSanté :
http://localhost:8080/health
Déploiement sur Railway
Les fichiers railway.json, Procfile et .python-version sont fournis (build Nixpacks,
Python 3.11). Railway injecte automatiquement la variable PORT, déjà prise en charge.
Depuis l'interface Railway :
New Project → Deploy from GitHub repo et sélectionnez ce dépôt.
(Optionnel, pour les marques) dans Variables, ajoutez
INPI_USERNAME,INPI_PASSWORD. Ne commitez jamais.env. Les autres outils marchent sans clé.Dans Settings → Networking, cliquez Generate Domain pour obtenir une URL publique.
Le déploiement se lance automatiquement ; le healthcheck pointe sur
/health.Vos endpoints publics :
https://<votre-projet>.up.railway.app/mcp(recommandé) ou.../sse(legacy).
Ou via la CLI Railway :
npm i -g @railway/cli
railway login
railway init
railway up
railway domain # génère l'URL publique
# (optionnel, marques) : railway variables --set INPI_USERNAME=... --set INPI_PASSWORD=...Connexion à Claude.ai
Les endpoints MCP sont publics (pas d'authentification). Dans Claude.ai → Settings → Connectors → Add custom connector, renseignez l'URL Streamable HTTP (recommandée) :
https://<votre-projet>.up.railway.app/mcp⚠️ Utilisez bien
/mcp(Streamable HTTP), pas/sse, avec Claude.ai. Le transport SSE legacy peut provoquer l'erreur « Session terminated » (code 32600) côté Claude.ai.
⚠️ Sécurité : sans authentification, toute personne connaissant l'URL peut utiliser le serveur. Gardez l'URL privée, ou réintroduisez une protection (reverse-proxy, IP allowlist, ou une couche d'auth) si nécessaire.
Notes & limites
Identité : l'API Recherche d'Entreprises ne fournit ni le capital social ni l'objet social (données SIRENE/RNE ouvertes). Le reste (dénomination, forme juridique, activité NAF, siège, dirigeants, statut) est complet et rapide (< 1 s).
Bénéficiaires effectifs (UBO) : non exposés (aucune source gratuite). Nécessiteraient une API payante (ex. Pappers) ou l'API formalités RNE de l'INPI (habilitation requise).
Statut :
active/cesséeselon l'état administratif INSEE (A/C).Procédures collectives :
en_cours_estimationest une heuristique (une clôture récente éteint la procédure) — à confirmer auprès du greffe/tribunal compétent.Marques par SIREN : ne couvre que les marques FR (le SIREN n'est rattaché qu'au déposant / dernier titulaire ayant renouvelé).
detail_marquerenvoie la notice telle quelle (plus l'URL du logo).
Structure du projet
mcp-inpi/
├── main.py # entrée : app Starlette (/mcp + /sse + /health), uvicorn
├── railway.json # config de déploiement Railway (Nixpacks)
├── Procfile # commande de démarrage
├── .python-version # version Python (3.11)
├── .env.example # modèle de configuration (secrets)
├── requirements.txt
└── inpi_mcp/
├── server.py # FastMCP + définition des 7 outils
├── config.py # variables d'environnement
├── reference.py # formes juridiques (codes INSEE) + normalisation SIREN
├── entreprises_parsers.py # extraction API Recherche d'Entreprises
├── parsers.py # extraction BODACC / marques
└── clients/
├── recherche_entreprises.py # API data.gouv.fr (sans clé)
├── bodacc.py # API BODACC Opendatasoft (sans clé)
└── marques.py # API PI Marques INPI (XSRF + cookies)Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ArnoLegi/mcp-inpi'
If you have feedback or need assistance with the MCP directory API, please join our Discord server