返回市场
法律法国服务

法律法国服务

作者:pylegifrance31 星标更新:2025-06-29

项目介绍

mcp-server-legifrance

这是一个实验性的MCP(模型上下文协议)服务器,允许通过Legifrance API查询法国法律数据库,并在兼容的大语言模型(LLMs)如Claude中使用。

描述

该项目实现了一个MCP服务器,该服务器可以从大语言模型直接访问法国法律资源(法律文本、法规、判例法)。它简化了法律研究,使Legifrance的数据可以通过交互式工具访问。它是基于pylegifrance包的创建而进行的。

什么是MCP?

MCP(模型上下文协议)是由Anthropic开发的一个标准化协议,它允许像Claude这样的语言模型以结构化的方式与外部工具和服务交互。这是LLMs互操作性的一个有趣进展,因为它建立了一个共同框架用于数据交换和模型与第三方API之间的函数执行。在此之前,每个服务都需要开发特定的函数调用。

MCP的互操作性

MCP的重要性在于它能够在LLMs和外部系统之间创建一个标准化接口。这种标准化带来了几个优点:

  1. 模块化架构:开发者可以创建易于集成到不同兼容MCP协议的LLMs中的专用工具。
  2. 增强的安全性:MCP限制模型仅访问明确定义的功能,从而减少了安全风险。
  3. 简化维护:外部工具的更新可以独立于模型进行,便于系统的发展。
  4. 扩展能力:LLMs可以访问实时数据并执行复杂的操作,这些操作它们单独无法完成。

mcp-server-legifrance?

这个想法是利用像Claude这样的语言模型的强大功能,通过Legifrance处理官方法律内容,并最终扩展到其他公共数据库如RNE、BODACC等。初步结果非常有希望,能够弥补传统统计搜索方法的一些局限性。服务正在持续改进中,但您现在可以查看一些搜索示例。

服务器支持以下功能:

  • 在法律文本(法律、法令、条例、命令)中搜索
  • 查看法国法律代码的文章
  • 在司法判例中搜索

其他Legifrance基金库将很快被实现。

如果您想直接连接自己的MCP服务器到Legifrance API,请访问:https://lab.dassignies.lawLinkedIn

预备条件

  • Python 3.9+
  • Legifrance API密钥(从lab.dassignies.law获取)
  • 兼容MCP协议的模型(如Claude桌面版)

安装

  1. 创建虚拟环境并激活它:
python -m venv venv 
source venv/bin/activate  # 在Windows上: venv\Scripts\activate
uv venv .venv 
source .venv/bin/activate  # 在Windows上: venv\Scripts\activate
  1. 使用pip安装:
pip install git+https://github.com/rdassignies/mcp-server-legifrance.git
  1. 使用uv安装:
uv pip install git+https://github.com/rdassignies/mcp-server-legifrance.git
  1. 在项目根目录下创建一个.env文件,包含您的身份验证信息:
DASSIGNIES_API_KEY=您的API密钥
DASSIGNIES_API_URL=https://lab.dassignies.law/api/ # 或相应的URL

要获取测试API密钥,请通过LinkedIn联系我。

使用

与Claude集成

这是最“简单”的集成方式。

  1. 使用以下配置文件将MCP服务器集成到Claude Desktop中。找到此文件的方法是在设置>开发者>修改配置(返回.json格式的配置文件)。

还有一种通过命令行使用uv的程序,将在以后进行文档说明。

这是一个使用示例:

{
  "mcpServers": {
    "legifrance": {
      "command": "<您的路径>/mcp-server-legifrance/venv/bin/python",
            "args": [
                "<您的路径>/mcp-server-legifrance/src/server.py"
		]

    }
  }
}
  1. 启动Claude桌面,您应该能看到工具图标出现: alt text

可用工具

1. 搜索法律文本

在法律文本(法律、法令、条例、命令)中搜索文章。

参数:

  • 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. 搜索法律代码

在法国法律代码中搜索文章。

例如:“给我写一份关于PACS法律制度的总结”

<img width="793" alt="image" src="https://gips1.baidu.com/it/u=2096325009,944168838&fm=3081&app=3081&f=PNG?w=1586&h=1644" />

参数:

  • search: 搜索词
  • code_name: 法律代码名称(例如:"民法典", "劳动法典")
  • champ: 搜索区域
  • sort: 结果排序
  • type_recherche: 搜索模式
  • page_size: 结果数量
  • fetch_all: 是否需要获取所有结果

示例: 为了在民法典中搜索有关PACS的信息,语言模型会发送如下请求:

{
  "search": "pacte civil de solidarité",
  "code_name": "民法典"
}

详情请参阅https://lab.dassignies.law/api/docs

3. 搜索司法判例

在司法判例数据库中搜索。可以利用语言模型的力量直接在Legifrance中搜索判例。

示例1:某个主题的最新判例概览(例如:“给我找最近关于商业关系突然破裂的判例,并写一份总结”)。

<img width="1456" alt="image" src="https://gips0.baidu.com/it/u=2780503745,3552016562&fm=3081&app=3081&f=PNG?w=2912&h=1580" />

示例2:从已知的具体判决(上诉号23-23.382),可以进行逐步分析:

  1. 找到判决书,Claude生成判决书摘要
  2. 要求提取引用的文章并在Legifrance中查找
  3. 要求查找相似的判例
  4. 等等...

image

参数:

  • search: 搜索词或案件编号
  • publication_bulletin: 是否发布在公报["T"]或不["F"]
  • sort: 结果排序
  • champ: 搜索区域
  • type_recherche: 搜索模式
  • page_size: 结果数量
  • fetch_all: 是否需要获取所有结果
  • juri_keys: 需要提取的回答字段
  • juridiction_judiciaire: 法院列表

详情请参阅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": "婚姻合同的有效条件是什么?"
                        }
                    }
                }
            ]
        }
    ]
)

限制

  • 请求限制为每秒10次,以遵守API限制
  • 访问法律数据库需要互联网连接
  • 服务器不会缓存结果,每次请求都会查询API

贡献

欢迎贡献!请打开一个问题或提交一个拉取请求以进行任何改进或修复。

许可证

MIT许可证