Information
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": "/mcp-server-legifrance/venv/bin/python",
"args": [
"/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
贡献
欢迎贡献!请就任何改进或修正提交问题或拉取请求。
许可证
MIT License