MCP Server 法国法律资源访问服务器
一个实现模型上下文协议的服务器,允许从兼容的大语言模型(如Claude)直接访问法国法律资源(法律、法规、判例法),通过Legifrance API实现交互式法律研究。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"legifrance": {
"args": [
"\u003cCHEMIN_VERS_VOTRE_REP\u003e/mcp-server-legifrance/src/server.py"
],
"command": "\u003cCHEMIN_VERS_VOTRE_REP\u003e/mcp-server-legifrance/venv/bin/python"
}
}
}
该服务需要配置环境变量:LAB_DASSIGNIES_API_KEY、LEGAL_API_URL
服务介绍
mcp-server-legifrance
Serveur MCP Model Context Protocol permettant d'interroger les bases juridiques françaises via l'API Legifrance dans des LLMs compatibles comme Claude.
说明
此项目实现了一个MCP服务器,可以从大型语言模型直接访问法国的法律资源(法律文本、法典、司法判例)。它通过使Legifrance的数据可以通过交互式工具访问,从而简化了法律研究。
该项目是在创建了pylegifrance包之后进行的。
什么是MCP?
Model Context Protocol (MCP) 是由Anthropic开发的一种标准化协议,允许像Claude这样的语言模型以结构化的方式与外部工具和服务交互。这是LLMs互操作性的一个有趣进步,因为它为模型和第三方API之间的数据交换和功能执行建立了一个共同框架。到目前为止,对于每个服务都需要开发特定的功能调用。
通过MCP实现互操作性
MCP的重要性在于它能够创建一个标准接口,连接LLMs和外部系统。这种标准化有几个优点:
- 模块化架构:开发者可以创建易于集成到不同兼容LLMs中的专门工具。
- 增强的安全性:MCP限制了模型仅能访问明确定义的功能,从而减少了安全风险。
- 简化维护:外部工具的更新可以独立于模型进行,简化了系统的演进过程。
- 扩展能力:LLMs可以访问实时数据并执行它们自身无法完成的复杂操作。
mcp-server-legifrance是什么?
我们的想法是利用像Claude这样的语言模型的强大功能,通过Légifrance处理官方法律内容,并最终包括其他公共数据库如RNE, BODACC等。初步结果非常有希望,能够弥补Légifrance提供的传统统计搜索的一些局限性。虽然服务仍在持续改进中,但您已经可以查看下面的一些搜索示例。
服务器支持以下功能:
- 在法律文本(法律、法令、命令、决定)中搜索
- 查看法国法律条文
- 在司法判例中搜索
其他Legifrance资料库将很快被实现。
如果您希望通过自己的MCP服务器直接访问Legifrance API,
请访问这里:https://lab.dassignies.law 或 linkedin
先决条件
请注意,原文档中“Prérequis”部分没有提供具体内容,因此在翻译中保留了标题但未添加具体细节。如果需要进一步补充先决条件的信息,请提供相关细节。
- Python 3.9+
- Legifrance 的 API 密钥(请从 lab.dassignies.law 获取)
- 一个与 MCP 协议兼容的模型(如 Claude 桌面版)
安装
- 创建并激活虚拟环境:
python -m venv venv
source venv/bin/activate # Sur Windows: venv\Scripts\activate
uv venv .venv
source .venv/bin/activate # Sur Windows: venv\Scripts\activate
- 通过 pip 安装:
pip install git+https://github.com/rdassignies/mcp-server-legifrance.git
- 通过 uv 安装
uv pip install git+https://github.com/rdassignies/mcp-server-legifrance.git
- 在项目根目录下创建一个
.env文件,填入您的认证信息:
LAB_DASSIGNIES_API_KEY=votre_clé_api
LEGAL_API_URL=https://lab.dassignies.law/api/ # ou l'URL correspondante
使用方法
与 Claude 集成
这是最“简单”的集成方式。
- 使用以下配置文件将 MCP 服务器集成到 Claude 桌面版中。要找到此文件,请转至设置>开发者>编辑配置(指向 .json 格式的配置文件)。
还有一种通过命令行使用 uv 的程序将在稍后进行文档说明。
这里是一个使用示例:
{
"mcpServers": {
"legifrance": {
"command": "<CHEMIN_VERS_VOTRE_REP>/mcp-server-legifrance/venv/bin/python",
"args": [
"<CHEMIN_VERS_VOTRE_REP>/mcp-server-legifrance/src/server.py"
]
}
}
}
- 启动 Claude 桌面版,您应该能看到工具图标出现:

可用工具
1. rechercher_dans_texte_legal
在法律文本(法律、法令、条例等)中搜索条文。
参数:
- text_id: 文本标识符(例如:"78-17" 对应信息技术和个人自由法)
- search: 关键词或条文编号
- champ: 搜索区域 ("ALL", "TITLE", "TABLE", "NUM_ARTICLE", "ARTICLE")
- type_recherche: 搜索模式 ("TOUS_LES_MOTS_DANS_UN_CHAMP", "EXPRESSION_EXACTE", "AU_MOINS_UN_MOT")
- page_size: 结果数量(最大 100)
详情参见 https://lab.dassignies.law/api/docs
示例:
查找信息技术和个人自由法第7条:
{
"text_id": "78-17",
"search": "7",
"champ": "NUM_ARTICLE"
}
2. rechercher_code
在法国法律代码中搜索条文。
例如:“为我撰写一份关于PACS法律制度的摘要”
参数:
- search: 搜索词
- code_name: 法典名称(例如:"民法典", "劳动法典")
- champ: 搜索区域
- sort: 结果排序
- type_recherche: 搜索模式
- page_size: 结果数量
- fetch_all: 是否获取所有结果
示例:
要在民法典中搜索有关PACS的信息,语言模型会发送如下请求:
{
"search": "pacte civil de solidarité",
"code_name": "Code civil"
}
详情参见 https://lab.dassignies.law/api/docs
3. rechercher_jurisprudence_judiciaire
在司法判例数据库中搜索。可以利用语言模型的力量直接在Legifrance上进行判例搜索。
示例 1 特定主题的最新判决概览(例如:“找给我最近关于突然中断已建立商业关系的案例,并为我总结成表格”)。
示例 2 从一个已知的具体判决(案号 23-23.382)出发,可以进行逐步分析:
- 找到该判决,并让 Claude 生成判决摘要
- 要求它提取涉及的条款并在 Legifrance 上查找这些条款
- 要求它找到类似的判例
- 等等 ...
参数:
- search: 搜索词或案件编号
- publication_bulletin: 是否在公报上发布 ["T"] 或未发布 ["F"]
- sort: 结果排序
- champ: 搜索区域
- type_recherche: 搜索模式
- page_size: 结果数量
- fetch_all: 是否获取所有结果
- juri_keys: 需要提取的响应字段
- juridiction_judiciaire: 法院列表
详情请参见 https://lab.dassignies.law/api/docs
预定义提示
服务器可以包含预定义的提示以方便使用。
目前仅实现了一个示例提示。可以设置更详细的提示,特别是用于执行 deepsearch 或多文档提取等操作...
agent_juridique_expert
创建一个专家法律代理,该代理:
- 始终引用其来源
- 使用相关工具查找信息
- 提供逐步分析
- 包含指向法律文本的官方链接
用法:
# Exemple d'utilisation du prompt prédéfini
response = client.messages.create(
model="claude-3-opus-20240229",
max_tokens=1000,
tools=tools,
messages=[
{
"role": "user",
"content": [
{
"type": "tool_use",
"id": "prompt_use_1",
"name": "legifrance.get_prompt",
"input": {
"prompt_name": "agent_juridique_expert",
"inputs": {
"question": "Quelles sont les conditions de validité d'un contrat de mariage?"
}
}
}
]
}
]
)
限制
- 查询每秒限制为 10 次,以符合 API 的限制
- 访问法律数据库需要互联网连接
- 服务器不缓存结果,每次查询都会调用 API
贡献
欢迎贡献!请就任何改进或修正提交问题或拉取请求。