README
🚀 法国法律MCP服务器
本项目旨在探索通过 模型上下文协议(Model Context Protocol,MCP) 在 Claude Desktop 中集成工具。
此项目是一次实验与验证,旨在了解工具编排如何提升语言模型(LLM)在处理技术数据时的可靠性、相关性和效率。
在此框架下,项目着重于获取来自官方来源的可靠法律数据。
这里开发的MCP服务器提供了一个统一接口,用于查询法国法律的公共API,特别是:
- 立法网(Légifrance)——用于查询立法、法典、法律和法令
- 司法自由(JudiLibre)——用于查询判例法和司法判决
借助该服务器,用户可以搜索和查阅:
- 📖 法国法律法规(民法典、刑法典、劳动法等)
- 📜 法律、法令、政令和行政命令
- ⚖️ 所有法国司法管辖区的判例法
- 📰 《法兰西共和国政府公报》(JORF)
- 🤝 集体协议
- 🏛️ 国务委员会、最高法院和法庭的判决
🚀 快速开始
本项目旨在通过MCP协议在Claude Desktop中集成工具,以提升语言模型处理法律数据的能力。以下是使用该项目的快速步骤:
✨ 主要特性
🔍 立法网搜索
- 高级搜索:可在所有法国法律库中进行高级搜索。
- 强大的过滤功能:可按性质、日期、司法管辖区、部门等进行过滤。
- 条款查询:可查看完整文本及详细元数据。
- 多库支持:支持法典、法律、政府公报、判例法、集体协议等。
⚖️ 司法自由搜索
- 判例法搜索:可在所有法国司法管辖区搜索判例法。
- 上下文过滤:可按司法管辖区、分庭、地点、解决方案、主题等进行过滤。
- 完整判决文本:包含结构化区域的完整判决文本。
- 完整分类法:可访问有效值列表(分庭、组成、主题等)。
🛠️ 技术特性
- 安全的OAuth 2.0认证
- 自动令牌管理
- 详细的日志记录:便于调试
- 沙盒和生产模式
- 参数验证
- 错误处理
📦 安装指南
1. 克隆仓库
git clone https://github.com/jmtanguy/DroitFrancaisMCP.git
cd DroitFrancaisMCP
或者下载项目的ZIP文件。
2. 安装
执行与您操作系统对应的安装脚本:
- Windows:install.ps1
- macOS / Linux:install.sh
这些脚本将自动执行以下操作:
- 📦 创建Python虚拟环境
- 🔽 安装所有必要的依赖项
- ⚙️ 配置Claude Desktop客户端以使用此MCP服务器
⚙️ 配置
1. 创建环境文件
# 复制示例文件
cp .env.example .env
2. 填写PISTE凭证
编辑 .env 文件,填入真实值:
# PISTE生产环境API凭证
PISTE_CLIENT_ID=您的生产环境客户端ID
PISTE_CLIENT_SECRET=您的生产环境客户端密钥
# PISTE沙盒环境API凭证(可选,用于测试)
PISTE_SANDBOX_CLIENT_ID=您的沙盒环境客户端ID
PISTE_SANDBOX_CLIENT_SECRET=您的沙盒环境客户端密钥
⚠️ 重要提示
.env文件包含您的机密信息,切勿提交到Git仓库!
3. 配置MCP客户端
配置Claude Desktop
要在Claude Desktop中使用服务器,请检查以下配置文件:
- macOS/Linux:
~/.config/claude-desktop/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"droit-francais": {
"command": "/绝对路径/到/DroitFrancaisMCP/.venv/bin/python3",
"args": ["/绝对路径/到/DroitFrancaisMCP/droit_francais_MCP.py"]
}
}
}
💡 使用建议
请将
/绝对路径/到/替换为您项目目录的完整路径。
配置Cursor
要在Cursor中使用服务器,请在MCP配置文件(通常为 ~/.cursor/mcp.json 或在Cursor设置中)添加以下配置:
{
"mcpServers": {
"DroitFrancaisMCP": {
"command": "<DroitFrancaisMCP项目路径>/.venv/bin/python3",
"args": [
"-u",
"<DroitFrancaisMCP项目路径>/droit_francais_MCP.py"
],
"cwd": "<DroitFrancaisMCP项目路径>",
"env": {
"PYTHONPATH": "<DroitFrancaisMCP项目路径>",
"PYTHONUNBUFFERED": "1",
"PYTHONIOENCODING": "utf-8"
},
"envFile": "<环境文件路径>",
"description": "用于法国法律研究的MCP服务器(立法网、司法自由)",
"enabled": true
}
}
}
💡 使用建议
- 请将
<DroitFrancaisMCP项目路径>替换为您的DroitFrancaisMCP项目目录的完整路径。- 请将
<环境文件路径>替换为包含PISTE凭证的.env文件的完整路径。
💻 使用示例
基础用法
在Claude Desktop或Cursor中,您可以尝试以下示例:
帮我查找民法典中关于婚姻的条款
最高法院近期关于严重过错解雇的判决有哪些?
请提供2021年8月24日第2021 - 1109号关于尊重共和国原则的法律全文
Claude或Cursor将自动识别合适的MCP工具,查询官方来源并展示相应结果。
🛠️ 可用工具
立法网
| 工具 | 描述 |
| ---- | ---- |
| rechercher_droit_francais() | 在所有法国法律库中进行多条件高级搜索 |
| obtenir_article() | 获取条款的完整文本及元数据 |
司法自由
| 工具 | 描述 |
| ---- | ---- |
| rechercher_jurisprudence_judilibre() | 使用高级过滤功能搜索司法判决 |
| obtenir_decision_judilibre() | 获取判决的完整文本 |
| obtenir_taxonomie_judilibre() | 访问有效值列表(分庭、司法管辖区等) |
🏗️ 架构
DroitFrancaisMCP/
├── droit_francais_MCP.py # 主MCP服务器
├── api_legifrance.py # 立法网API客户端
├── api_legifrance_search_input.py # 立法网查询模型
├── api_legifrance_search_output.py# 立法网响应模型
├── api_judilibre.py # 司法自由API客户端
├── test_api_legifrance.py # 立法网测试
├── test_api_judilibre.py # 司法自由测试
├── requirements.txt # Python依赖项
├── .env.example # 配置模板
└── README.md # 文档
主要组件
droit_francais_MCP.py:通过FastMCP暴露工具的MCP服务器api_legifrance.py:带有OAuth认证的立法网API客户端api_judilibre.py:带有令牌管理的司法自由API客户端- 测试:功能验证脚本
🧪 测试
测试立法网API
python3 test_api_legifrance.py
测试司法自由API
python3 test_api_judilibre.py
使用pytest测试
pytest test_api_legifrance.py -v
pytest test_api_judilibre.py -v
📄 许可证
本项目采用MIT许可证。详情请参阅 LICENSE 文件。
🔗 有用链接
- PISTE官方网站 —— API访问申请
- 模型上下文协议 —— MCP规范
- Claude Desktop —— Claude应用程序
- Cursor —— 支持MCP的代码编辑器
🤖 人工智能辅助开发
本项目在人工智能工具的辅助下开发:
- Claude(Anthropic)—— 开发助手和代码生成工具
- GitHub Copilot —— 代码自动补全工具
使用这些工具加速了开发进程,同时保证了代码质量和文档完整性。所有生成的内容都经过了审查、验证,并根据项目的特定需求进行了调整。
💡 使用建议
此说明有助于贡献者和用户了解项目的创建背景。
👤 作者
Jean - Michel Tanguy
Scan to join WeChat group