mpc-legifrance
MCP server covering French law via the PISTE platform: 62 tools wrapping the full Légifrance API (legislation, codes, Journal Officiel, jurisprudence…)
README
mcp-legifrance
Serveur MCP HTTP Streamable donnant accès à l'intégralité de l'API Légifrance (PISTE / DILA) depuis n'importe quel client MCP : Demeter, Claude Desktop, Claude Code, applications Tauri/Electron, ou tout LLM compatible MCP.
62 outils couvrant les codes, lois, décrets, Journal Officiel, conventions collectives, jurisprudence, questions parlementaires, circulaires, et plus.
Aperçu

Prérequis
- Python 3.11+
- Un compte sur piste.gouv.fr avec accès à l'API Légifrance (gratuit)
Note : Si vous utilisez déjà
mcp-judilibre, les identifiants PISTE sont les mêmes. Il suffit d'ajouter la souscription à l'API Légifrance dans votre application PISTE existante.
Obtenir les identifiants API Légifrance
L'API Légifrance est exposée via la plateforme PISTE (Plateforme d'Intermédiation des Services pour la Transformation de l'État), gérée par la DILA.
1. Créer un compte PISTE
Rendez-vous sur https://piste.gouv.fr et cliquez sur S'inscrire. L'inscription est gratuite et ouverte à tous (particuliers, entreprises, collectivités).
2. Créer une application (ou réutiliser l'existante)
Une fois connecté :
- Allez dans Mes applications → Nouvelle application (ou ouvrez votre application existante)
- Donnez un nom à votre application (ex:
mcp-legifrance) - Sélectionnez l'environnement Sandbox pour commencer (accès immédiat, données réelles en lecture seule)
3. Souscrire à l'API Légifrance
- Dans le catalogue, recherchez Légifrance
- Cliquez sur Souscrire → choisissez votre application
- La souscription est automatiquement approuvée pour l'environnement Sandbox
4. Récupérer les identifiants
Dans votre application PISTE, copiez :
- Client ID (
LEGIFRANCE_CLIENT_ID) - Client Secret (
LEGIFRANCE_CLIENT_SECRET)
Note : L'environnement Sandbox et l'environnement Production utilisent les mêmes données. La différence porte uniquement sur les quotas. Pour un usage intensif, faites une demande d'accès Production depuis PISTE.
Installation
Installation locale (Python)
git clone https://github.com/ktulu-analog/mcp-legifrance.git
cd mcp-legifrance
python -m venv .venv
source .venv/bin/activate # Windows : .venv\Scripts\activate
pip install -r requirements.txt
Installation via Docker
git clone https://github.com/ktulu-analog/mcp-legifrance.git
cd mcp-legifrance
docker build -t mcp-legifrance .
Configuration
Copiez .env.example en .env et renseignez vos identifiants :
cp .env.example .env
LEGIFRANCE_CLIENT_ID=votre_client_id
LEGIFRANCE_CLIENT_SECRET=votre_client_secret
Ou exportez-les directement dans votre shell :
export LEGIFRANCE_CLIENT_ID=votre_client_id
export LEGIFRANCE_CLIENT_SECRET=votre_client_secret
Démarrage
En local (Python)
python server.py
Options disponibles :
--host Adresse d'écoute (défaut : 0.0.0.0)
--port Port d'écoute (défaut : 6502)
--path Chemin MCP (défaut : /mcp)
Exemple sur un port personnalisé :
python server.py --port 8080
Via Docker
docker run -p 6502:6502 \
-e LEGIFRANCE_CLIENT_ID=votre_client_id \
-e LEGIFRANCE_CLIENT_SECRET=votre_client_secret \
mcp-legifrance
Le serveur peut tourner sur n'importe quelle machine accessible en réseau. Les clients MCP se connectent alors à http://adresse-du-serveur:6502/mcp — le serveur n'a pas besoin d'être sur la même machine que le client.
Le serveur est accessible à http://localhost:6502/mcp.
Intégration avec un client MCP
Claude Desktop
Dans claude_desktop_config.json :
{
"mcpServers": {
"legifrance": {
"url": "http://localhost:6502/mcp"
}
}
}
Pour utiliser les deux serveurs simultanément avec mcp-judilibre :
{
"mcpServers": {
"legifrance": {
"url": "http://localhost:6502/mcp"
},
"judilibre": {
"url": "http://localhost:6501/mcp"
}
}
}
Claude Code
claude mcp add legifrance --url http://localhost:6502/mcp
Autre client HTTP Streamable
Tout client supportant la spec MCP 2025-03-26 HTTP Streamable peut se connecter à http://localhost:6502/mcp.
Outils disponibles
Journal Officiel (JORF)
| Outil | Description |
|---|---|
legifrance_derniers_jo |
Derniers numéros du JO parus |
legifrance_sommaire_jorf |
Sommaire d'un JO par date ou identifiant |
legifrance_jorf |
Contenu complet d'un texte du JO (par CID) |
legifrance_jorf_part |
Contenu d'une section d'un texte du JO |
legifrance_jo_par_nor |
Texte du JO par numéro NOR |
legifrance_eli_alias_texte |
Texte du JO par identifiant ELI ou alias |
legifrance_dates_sans_jo |
Dates sans parution du JO |
Codes législatifs (LEGI)
| Outil | Description |
|---|---|
legifrance_lister_codes |
Liste de tous les codes disponibles |
legifrance_consulter_code |
Table des matières d'un code |
legifrance_code_complet |
Contenu complet d'un code |
legifrance_code_par_ancien_id |
Code par ancien identifiant |
legifrance_obtenir_article |
Contenu d'un article par identifiant |
legifrance_article_par_numero |
Article par numéro dans un code |
legifrance_article_par_eli |
Article par identifiant ELI |
legifrance_versions_article |
Historique des versions d'un article |
legifrance_articles_meme_numero |
Tous les articles portant le même numéro |
legifrance_loi_decret |
Texte de loi ou décret par identifiant |
legifrance_legi_part |
Section d'un texte LEGI |
legifrance_tables_annuelles |
Tables annuelles LEGI |
legifrance_annees_sans_table |
Années sans table annuelle |
legifrance_historique_texte |
Historique complet d'un texte |
legifrance_versions_element |
Versions d'un élément de texte |
legifrance_a_des_versions |
Vérifie si un texte a des versions |
legifrance_version_canonique_article |
Version canonique d'un article |
legifrance_version_canonique |
Version canonique d'un texte |
legifrance_version_proche |
Version la plus proche d'une date |
Lois et décrets (LODA)
| Outil | Description |
|---|---|
legifrance_lister_loda |
Liste paginée des textes LODA |
legifrance_liens_concordance |
Liens de concordance d'un texte |
legifrance_liens_relatifs |
Liens relatifs d'un texte |
legifrance_liens_service_public |
Liens Service-Public.fr |
legifrance_a_liens_service_public |
Vérifie l'existence de liens Service-Public |
Conventions collectives (KALI)
| Outil | Description |
|---|---|
legifrance_conventions |
Liste des conventions collectives |
legifrance_convention_par_idcc |
Convention par numéro IDCC |
legifrance_convention_cont |
Conteneur d'une convention |
legifrance_convention_texte |
Texte d'une convention |
legifrance_convention_article |
Article d'une convention |
legifrance_convention_section |
Section d'une convention |
Jurisprudence (CASS, CETAT, CONSTIT, JURITEXT…)
| Outil | Description |
|---|---|
legifrance_jurisprudence |
Décision de justice par identifiant |
legifrance_jurisprudence_plan_classement |
Plan de classement jurisprudentiel |
legifrance_jurisprudence_ancien_id |
Décision par ancien identifiant |
Dossiers et débats parlementaires
| Outil | Description |
|---|---|
legifrance_dossier_legislatif |
Dossier législatif par identifiant |
legifrance_debat |
Débat parlementaire par identifiant |
legifrance_lister_legislatures |
Liste des législatures |
legifrance_lister_dossiers_legislatifs |
Dossiers législatifs paginés |
legifrance_lister_debats_parlementaires |
Débats parlementaires paginés |
legifrance_lister_questions_parlementaires |
Questions parlementaires paginées |
legifrance_section_par_cid |
Section par CID |
Documents administratifs (CIRC, ACCO, CNIL, BOCC…)
| Outil | Description |
|---|---|
legifrance_circulaire |
Circulaire par identifiant |
legifrance_acco |
Accord d'entreprise par identifiant |
legifrance_cnil |
Délibération CNIL par identifiant |
legifrance_cnil_ancien_id |
Délibération CNIL par ancien identifiant |
legifrance_lister_bocc |
Bulletins BOCC paginés |
legifrance_lister_bocc_textes |
Textes d'un bulletin BOCC |
legifrance_lister_boccs_et_textes |
Bulletins et textes BOCC combinés |
legifrance_bocc_pdf_metadata |
Métadonnées PDF d'un bulletin BOCC |
legifrance_lister_docs_admins |
Documents administratifs paginés |
legifrance_lister_bodmr |
Bulletins BODMR paginés |
Recherche et utilitaires
| Outil | Description |
|---|---|
legifrance_rechercher |
Recherche plein texte tous fonds |
legifrance_suggerer |
Suggestions de textes |
legifrance_suggerer_acco |
Suggestions d'accords |
legifrance_suggerer_pdc |
Suggestions plan de classement |
legifrance_commit_id |
Identifiant de version du serveur |
Utilisation combinée avec mcp-judilibre
mcp-legifrance et mcp-judilibre sont complémentaires :
- Légifrance → textes législatifs et réglementaires, jurisprudence administrative (Conseil d'État, Conseil constitutionnel, CNIL…)
- JUDILIBRE → décisions de justice Open Data (Cour de cassation, cours d'appel, tribunaux judiciaires)
Les deux serveurs peuvent tourner simultanément sur des ports différents (6502 et 6501 par défaut) et être déclarés dans le même fichier de configuration MCP.
Licence
GNU Affero General Public License v3.0 — © 2026 Pierre COUGET
Disclaimer
Ce projet n'est pas un projet officiel. C'est la traduction de l'API LEGIFRANCE en serveur MCP pour mes propres besoins initialement. Mais autant que ça serve à d'autres.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器