RA-MCP:瑞典国家档案的模型上下文协议后端服务器(组合式 MCP 服务)

以下为使用说明(Markdown 格式,帮助理解与快速搭建测试环境):

  • 项目简介
    • RA-MCP 是一个基于 MCP(Model Context Protocol)的服务器实现,用于向 LLM 客户端提供资源、工具与提示模板的统一访问接口。通过组件化设计,可以按需启用搜索、浏览、指南等模块,并通过 JSON-RPC 进行通信。
  • 主要功能点
    • 模块化组合:可通过配置启用搜索、浏览、指南等模块,并在同一 MCP 服务中聚合暴露。
    • 工具注册与执行:每个模块都注册相应的 MCP 工具,LLM 客户端可以通过工具进行外部功能调用。
    • 资源与提示:支持对文档、元数据、以及提示模板等资源的管理与渲染。
    • 多传输协议:支持标准的 stdio 与 HTTP/SSE 传输,便于在不同环境中接入客户端。
    • 会话与能力声明:服务器端负责会话管理、能力声明,以及对外暴露的 API 细节。
    • 安全与扩展:通过模块化导入与路由暴露,为后续扩展提供清晰边界。
  • 安装与运行步骤
    • 安装与运行环境需求请参阅仓库 README,核心是 Python+Go 生态混合的实现,核心 MCP 服务通过 FastMCP 进行配置与暴露。
    • 典型运行命令(示例,实际环境请以根目录 README/入口脚本为准):
      • 启动带 http 传输的 MCP 服务:ra serve --http --port 8000 --modules search,browse,guide
      • 以 stdio 传输启动:ra serve
    • 测试与调试:
      • 使用 MCP Inspector 进行交互测试,验证工具、资源、提示模板的返回格式是否符合 MCP 的 JSON-RPC 语义。
      • 若需要本地调试日志,可开启 API 日志输出:ra serve --log
  • 服务器配置(MCP 客户端必需的配置示例) 说明:以下为 MCP 客户端在连接该服务器时所需的配置示例(JSON 格式,不是服务端源码)。该配置描述服务器名称、启动命令及参数等信息,客户端据此与服务器建立连接。请勿直接在客户端代码中作为脚本执行,仅用于连接参数示意。 JSON 示例: { "server_name": "ra-mcp", "command": "ra", "args": ["serve", "--http", "--port", "8000", "--host", "0.0.0.0", "--modules", "search,browse,guide"] } 注释:
    • server_name 表示 MCP 服务器的名称,用以区分不同的 MCP 服务实例。
    • command 为启动服务器所用的外部执行入口(示例中使用 ra 命令,实际部署中请根据环境将其替换为实际启动指令)。
    • args 为启动命令的参数列表,包含传输模式、端口、主机地址以及启用的模块列表等信息。
  • 基本使用方法
    • 客户端连接后,可以通过 MCP Inspector 或等效工具测试如下能力:
      • 搜索与检索:对 transcribed 文档执行关键词检索,获取文档元数据、页码与高亮片段。
      • 浏览:通过浏览工具按引用码查看指定页面的完整转录文本及相关链接。
      • 资源访问:获取文档的 IIIF 图像、ALTO XML 等资源的链接与索引信息。
    • 集成要点:
      • MCP 服务端负责暴露的工具、资源以及自定义提示模板,客户端应通过 JSON-RPC 调用工具进行功能扩展。
      • 如需在不同场景下切换模块,请在启动参数中调整 --modules 的值,或通过服务器端配置进行组合。
  • 重要说明
    • 项目当前处于开发阶段,API/接口可能发生变更,请在测试环境中评估后再进入生产使用。
    • 如需与 Claude/Claude Code、MCP Inspector 等工具对接,可参考 README 中给出的连接示例与健康检查流程。

服务器信息