SwissCaselaw MCP 服务器

使用说明(简明易懂,便于开发者直接上手):

  • 项目简介

    • 该仓库实现了一个 MCP 服务器,围绕瑞士法院判决数据构建后端服务,提供统一的 API 入口,向大型语言模型(LLM)客户端暴露多种“资源”和“工具”,并支持以标准化的 JSON-RPC 形式进行请求/响应交互。
    • 服务器基于 MCP 框架,能托管与管理资源(如判决文本、法规条文等)、注册并执行工具(如全文检索、法条检索、引文/趋势分析等),并支持为 LLM 交互提供可渲染的 Prompt 模板与输出。
  • 主要功能点

    • MCP 核心能力:通过一组标准工具接口暴露数据访问、计算与分析能力,LLM 客户端可按需调用。
    • 资源与工具管理:内置多种判决查询、法规/ Legislation 数据工具,以及引用图(citation graph)相关工具,便于构建上下文与推理。
    • JSON-RPC/通信:遵循 MCP 约定,前端通过 JSON-RPC 传输请求,服务器返回标准化响应。
    • 兼容传输协议:理论上支持 Stdio、SSE、WebSocket 等传输方式以实现安全、可扩展的上下文服务。
    • 会话与权限:内置对话/查询的能力声明与会话管理逻辑,为 LLM 应用提供可控的使用场景。
  • 安装步骤

    • 创建并进入一个干净的 Python 环境(如 virtualenv/venv)。
    • 安装依赖包,推荐命令包括但不限于:
      • mcp、pydantic、huggingface_hub、pyarrow 等。
    • 获取数据与索引:
      • 通过仓库提供的数据管线或远程 MCP 服务获取 Parquet/FTS5 数据库,并在本地构建/更新 SQLite FTS5 索引。
    • 启动服务器:
      • 直接运行 mcp_server.py(项目内置启动逻辑会采用 stdio/mcp transport 启动)。
    • 连接客户端(示例配置,非代码):
      • 客户端需要一个配置 JSON,描述服务器名称、启动命令和参数等,以便通过 MCP 客户端(如 Claude/ Gemini 等)连接。
  • 服务器配置示例(请按 JSON 形式理解,非代码块展示)

    • server name: SwissCaselaw MCP
    • command: python3
    • args: ["mcp_server.py"]
    • transport: stdio 说明:该配置用于 MCP 客户端向服务器发起连接,基于标准 MCP 传输。实际参数可根据运行环境调整,服务器端会暴露工具接口与资源接口,客户端无需关心实现细节。
  • 基本使用方法

    • 启动后,客户端可通过 MCP 客户端向服务器发出请求,调用内置工具以查询判决、检索法规、获取引文等。
    • 服务器提供工具清单(如 search_decisions、get_decision、list_courts、get_statistics、find_citations、find_leading_cases、analyze_legal_trend、draft_mock_decision 等),可按需组合来形成复杂的对话式查询。
    • 部署后可以在本地离线或远端环境中使用,确保数据库与索引可访问(如通过 HuggingFace 数据集下载并构建本地数据库)。
    • 如需远程使用,请参考客户端平台的连接步骤,将服务器地址/端点配置为 MCP 客户端的目标。
  • 额外注意

    • 数据与索引的规模较大,首次完整导入/构建可能需要较长时间;如使用远程 MCP 服务,可直接连接远端服务器以避免本地成本。
    • MCP 客户端与服务器之间的安全性/鉴权应结合具体部署环境配置(如自定义鉴权 token、CORS、传输协议等)。
  • 结论

    • 仓库中包含一个完整的可运行 MCP 服务器实现(mcp_server.py 等核心组件),具备明确的工具接口和 MCP 交互能力,符合 MCP 服务器的核心定义。

服务器信息