Swiss Caselaw MCP Server

使用说明

项目简介

  • 这是一个完整的 MCP 服务器实现,围绕 Swiss 法院判决文本与法规数据构建。服务器暴露一组 MCP 工具,允许 LLM 客户端进行全文检索、获取判决、统计、引用图谱查询、领导案例、趋势分析、法规文本检索等。支持本地部署(stdio 传输)以及远端传输(SSE),可与 Claude、ChatGPT、Gemini 等 MCP 客户端对接。

主要功能点

  • MCP 核心能力
    • 以 MCP 协议提供工具集合,响应客户端的查询、检索、决策、统计等请求。
    • 支持多传输协议:本地 stdout/stdio 方式和远端的 SSE(服务器发送事件)方式。
    • 会话管理、能力声明、以及对多种数据源的访问能力(判决文本、法规文本、Legislation、引用图谱等)。
  • 可用工具(部分列举)
    • search_decisions、get_decision、list_courts、get_statistics、find_citations、find_leading_cases、analyze_legal_trend、draft_mock_decision、get_case_brief、get_doctrine、generate_exam_question、get_law、search_laws、search_legislation、get_legislation、browse_legislation_changes、update_database(本地数据更新工具)等。
  • 数据与模型
    • 依赖本地化的 SQLite FTS5 索引、Parquet 数据集、Fedlex/ LexFind 等数据源,提供快速检索、法条文本及引用关系查询。
    • 支持本地部署与离线使用场景,便于 LLM 应用在没有外部 API 时也能工作。
  • 安全与扩展性
    • 通过 MCP 框架暴露接口,能与多家云端/本地 LLM 服务对接,具备可扩展的工具集与数据来源。
    • 具备数据更新与健康状态报告能力,便于运维与监控。

安装步骤

  • 依赖环境
    • Python 3.10 及以上
    • 建议安装依赖: mcp、pydantic、huggingface_hub、pyarrow、fastapi、uvicorn 等
  • 获取与准备数据
    • 从 HuggingFace 获取 Parquet 数据集并构建本地 SQLite FTS5 索引(建议运行 update_database 工具完成数据更新,包含 Parquet 下载和索引构建)。
  • 启动服务器
    • 本地交互模式(stdio 传输,默认):执行 python mcp_server.py 即可启动 MCP 服务器,服务端将监听标准输入输出,供本地客户端连接。
    • 远端模式(SSE/对外暴露):执行 python mcp_server.py --remote --host 0.0.0.0 --port 8765,服务器将通过 SSE 提供远端传输,供云端或远程客户端连接。
    • 服务器在启动时会声明其能力、并提供对外的工具列表与调用接口。
  • 重要数据路径与依赖
    • 数据库通常位于 ~/.swiss-caselaw/decisions.db,Parquet 数据在 ~/.swiss-caselaw/parquet/
    • 数据更新工具 update_database 会下载并构建本地检索索引,之后 MCP 客户端即可使用
  • 运行前提与注意
    • 需要网络下载(初次)以及本地大量磁盘空间用于 Parquet 数据与 FTS 索引
    • 某些高级功能如跨向量检索、图谱信号等可能需要额外依赖或可选模块

服务器配置示例(给 MCP 客户端使用的配置说明,JSON 格式,非代码块) { "server_name": "swiss-caselaw", "comment": "MCP 服务器名称,供 MCP 客户端标识与连接使用", "command": "python3", "args": ["path/to/mcp_server.py"], "transport": "stdio|remote", "notes": "本服务器默认通过 stdio 启动(本地集成),若需要远端连接,请使用 --remote 模式启动,监听端口(如 8765)。路径请替换为实际 mcp_server.py 的路径。" } 说明

  • server_name 用于在 MCP 客户端配置中标识该服务器。
  • command 与 args 指定启动服务器的命令与参数,客户端需要读取该信息以便启动与服务器的对接。
  • transport 字段可选,用于描述客户端期望的传输方式(stdio 或 remote SSE),实际传输模式由启动参数决定。
  • 客户端实际并不需要额外的服务端实现细节,但需要上述启动信息来建立连接。

基本使用方法

  • 本地测试与开发
    1. 克隆并进入项目目录
    2. 安装依赖:pip install mcp pydantic huggingface_hub pyarrow fastapi uvicorn
    3. 数据准备:运行 update_database(或以 README/文档中的步骤完成数据准备与索引构建)
    4. 启动服务器:在命令行执行 python mcp_server.py
    5. 使用 MCP 客户端连接:在 Claude、Gemini、GPT 等平台里按 MCP 指南连接该服务器
  • 远端部署
    1. 启动服务器:python mcp_server.py --remote --host 0.0.0.0 --port 8765
    2. 客户端以远端传输方式连接,传输端口、地址按实际部署设置
  • 与 MCP 客户端的集成
    • 客户端需要提供上述 JSON 配置(server_name、command、args 等)用以建立连接;实际使用时,客户端通过 MCP 协议向服务器发送请求并接收响应。
    • 客户端执行流程通常包括:请求工具列表、调用具体工具、获取结果、处理返回的 JSON 结构、调用更新数据等。
  • 运行与运维
    • 使用 update_database 进行数据更新,保持数据库与索引的新鲜度
    • 如需监控服务器状态,可通过 /health 端点(如部署服务时提供的健康路由)或客户端的监控机制查看服务器健康

注意事项

  • MCP 客户端需要的最小信息是服务器的启动命令、工作目录与参数,以及服务器的转接方式(stdio/ SSE)。
  • 初次使用可能需要较长时间完成数据下载与索引构建,请耐心等待,并关注日志输出。

常用入口与部署模式

  • 本地开发与调试:stdio 传输
  • 远端生产:SSE 传输,监听公网端口

关键词 瑞士判例检索, 法律文本检索, 引用图谱, Fedlex/ LexFind 法规, 本地化法律数据

分类ID 5

服务器信息