European Parliament MCP Server

使用说明

  • 项目简介
    • 该仓库实现了一个完整的 MCP 服务器,核心职责是以标准化的方式向 LLM 客户端提供上下文信息和功能。它托管资源、注册工具、定义提示模板,并通过 MCP 协议向客户端响应资源读取、工具调用和提示获取等请求。
  • 主要功能点
    • 完整的 MCP 实现:61 个工具、9 种资源、7 个提示模板,覆盖欧洲议会公开数据的各类场景。
    • 资源、工具、提示的标准化管理与渲染,便于 LLM 客户端调用外部功能、获取数据与上下文。
    • JSON-RPC 通信:服务器以标准的 MCP JSON-RPC 风格接收请求并返回响应,方便与 Claude Desktop、VS Code 等客户端对接。
    • 会话管理与能力声明:服务器维护会话状态,声明自身能力与边界,确保安全可控的上下文服务。
    • 多传输协议支持:包括 Stdio、SSE、WebSocket 等,适配不同的客户端接入方式。
    • 安全与合规:遵循 ISMS、GDPR、SLSA 等行业实践,具备输入校验、访问审计和供应链安全能力。
  • 安装步骤
    1. 克隆仓库并安装依赖:安装 Node.js 版本要求为 24+,执行 npm install。
    2. 开发与调试:运行 npm run dev 进入开发模式,支持自动重加载。
    3. 构建与部署:执行 npm run build 将 TypeScript 编译为可执行的 dist 产物。
    4. 测试:执行 npm test 运行单元与集成测试,确保 MCP 服务按预期工作。
  • 服务器配置(MCP 客户端需要的启动信息,JSON 格式,字段含义见下方注释) { "serverName": "European Parliament MCP Server", "command": "node", "args": ["dist/index.js"], "env": { "EP_API_KEY": "your-api-key-if-needed" } // 说明:serverName 用于标识服务器,command/args 指定启动 MCP 服务器的命令及参数,env 是可选的环境变量,用于客户端在连接时传入认证或配置信息。 } 注释:
    • serverName 表示对外辨识的 MCP 服务器名称,便于在客户端配置中区分多服务器。
    • command/args 给出启动服务器的具体命令和参数,客户端在启动时应按此信息执行以连接 MCP 服务器。
    • EP_API_KEY 等环境变量仅在需要时使用,若 EP 数据源或自定义 API 需要鉴权则填写。
  • 基本使用方法
    • 连接与使用
      1. 在 MCP 客户端(如 Claude Desktop、VS Code 等)中,按照以下服务器配置信息启动服务器(以 dist/index.js 为例):使用 node dist/index.js 启动服务器。
      2. 配置客户端连接该 MCP 服务器的启动命令与参数,确保服务器正在运行并可访问。
      3. 客户端即可通过 MCP 协议读取资源、调用工具、获取 Prompts,并接收 JSON-RPC 风格的响应。
    • 常用操作
      • 调用工具:在 MCP 客户端发起工具调用请求,包含工具名及参数,服务器将执行并返回结构化结果。
      • 读取资源:请求读取 ep://... 形式的资源数据。
      • 获取 Prompts:请求获取预定义的 Prompt 模板及其参数。
    • 注意事项
      • 如遇速率限制、网络异常等情况,客户端应实现重试或降级策略,服务器端默认具备速率限制和日志审计能力。
      • 示例与测试覆盖了从单元到端到端的多维场景,确保 MCP 服务器的健壮性与可维护性。
  • 任务与连接注意
    • 该服务器通过 TypeScript/Node.js 实现,具备清晰的模块结构(服务器入口、工具实现、资源处理、EP API 客户端等),可直接在本地开发环境中构建并运行,也可在生产环境下部署。
    • 客户端与服务器之间的交互遵循 MCP 规范,便于未来扩展和跨系统互操作。

服务器信息