这是一个实验性的MCP(模型上下文协议)服务器,允许通过Legifrance API查询法国法律数据库,并在兼容的大型语言模型(LLMs)如Claude中使用这些数据。
该项目实现了一个MCP服务器,该服务器可以从大型语言模型直接访问法国法律资源(法律文本、法规、判例法)。它简化了法律研究,使Legifrance的数据可以通过交互式工具获取。它是基于pylegifrance包的创建而进行的。
MCP(模型上下文协议)是由Anthropic开发的一个标准化协议,它允许像Claude这样的语言模型以结构化的方式与外部工具和服务互动。这是LLMs互操作性的一个有趣进展,因为它建立了一个共同框架,用于在模型和第三方API之间交换数据和执行功能。在此之前,每个服务都需要开发特定的功能调用。
MCP的重要性在于它能够在LLMs和外部系统之间创建一个标准化接口。这种标准化带来了多个好处:
这个想法是利用像Claude这样的语言模型的强大功能,通过Legifrance处理官方法律内容,并最终扩展到其他公共数据库如RNE、BODACC等。初步结果非常有希望,能够弥补传统统计搜索方法的一些局限性。服务正在持续改进中,但您现在可以查看一些搜索示例。
服务器支持以下功能:
其他Legifrance基金库将很快被实现。
如果您想直接连接到Legifrance API来连接自己的MCP服务器, 请访问:https://lab.dassignies.law 或 LinkedIn
python -m venv venv
source venv/bin/activate # 在Windows上:venv\Scripts\activate
uv venv .venv
source .venv/bin/activate # 在Windows上:venv\Scripts\activate
pip install git+https://github.com/rdassignies/mcp-server-legifrance.git
uv pip install git+https://github.com/rdassignies/mcp-server-legifrance.git
.env文件,包含您的身份验证信息:DASSIGNIES_API_KEY=您的API密钥
DASSIGNIES_API_URL=https://lab.dassignies.law/api/ # 或相应的URL
要获取测试API密钥,请通过LinkedIn联系我。
这是最“简单”的集成方式。
还有一种通过命令行使用uv的方法,将在以后的文档中详细说明。
这是一个使用示例:
{
"mcpServers": {
"legifrance": {
"command": "<您的路径>/mcp-server-legifrance/venv/bin/python",
"args": [
"<您的路径>/mcp-server-legifrance/src/server.py"
]
}
}
}

在法律文本(法律、法令、条例、命令)中搜索文章。
参数:
详情请参阅https://lab.dassignies.law/api/docs
示例: 为了搜索《计算机与自由法》第7条:
{
"text_id": "78-17",
"search": "7",
"champ": "NUM_ARTICLE"
}
在法国法律代码中搜索文章。
例如:“给我写一份关于PACS法律制度的总结”
<img width="793" alt="image" src="https://gips2.baidu.com/it/u=2096325009,944168838&fm=3081&app=3081&f=PNG?w=1586&h=1644" />参数:
示例: 为了在民法典中搜索有关PACS的信息,语言模型会发送如下请求:
{
"search": "pacte civil de solidarité",
"code_name": "民法典"
}
详情请参阅https://lab.dassignies.law/api/docs
在司法判例数据库中搜索。可以利用语言模型的力量直接在Legifrance中搜索判例。
示例1:某个主题的最新判例全景图(例如:“给我找找最近关于突然终止商业关系的判例,并写一份总结”)。
<img width="1456" alt="image" src="https://gips3.baidu.com/it/u=2780503745,3552016562&fm=3081&app=3081&f=PNG?w=2912&h=1580" />示例2:从已知的具体判决(例如,上诉号23-23.382),可以进行逐步分析:
参数:
详情请参阅https://lab.dassignies.law/api/docs
服务器可以包括预定义提示以方便使用。 目前只实现了一个示例提示。可以设置更详细的提示,特别是用于执行深度搜索或跨多个文档的提取操作...
创建一个法律专家代理,该代理:
使用:
# 预定义提示使用的示例
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": "法律专家代理",
"inputs": {
"question": "婚姻合同的有效条件是什么?"
}
}
}
]
}
]
)
欢迎贡献!请打开问题或提交拉取请求以进行任何改进或修复。