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 等行业实践,具备输入校验、访问审计和供应链安全能力。
- 安装步骤
- 克隆仓库并安装依赖:安装 Node.js 版本要求为 24+,执行 npm install。
- 开发与调试:运行 npm run dev 进入开发模式,支持自动重加载。
- 构建与部署:执行 npm run build 将 TypeScript 编译为可执行的 dist 产物。
- 测试:执行 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 需要鉴权则填写。
- 基本使用方法
- 连接与使用
- 在 MCP 客户端(如 Claude Desktop、VS Code 等)中,按照以下服务器配置信息启动服务器(以 dist/index.js 为例):使用 node dist/index.js 启动服务器。
- 配置客户端连接该 MCP 服务器的启动命令与参数,确保服务器正在运行并可访问。
- 客户端即可通过 MCP 协议读取资源、调用工具、获取 Prompts,并接收 JSON-RPC 风格的响应。
- 常用操作
- 调用工具:在 MCP 客户端发起工具调用请求,包含工具名及参数,服务器将执行并返回结构化结果。
- 读取资源:请求读取 ep://... 形式的资源数据。
- 获取 Prompts:请求获取预定义的 Prompt 模板及其参数。
- 注意事项
- 如遇速率限制、网络异常等情况,客户端应实现重试或降级策略,服务器端默认具备速率限制和日志审计能力。
- 示例与测试覆盖了从单元到端到端的多维场景,确保 MCP 服务器的健壮性与可维护性。
- 连接与使用
- 任务与连接注意
- 该服务器通过 TypeScript/Node.js 实现,具备清晰的模块结构(服务器入口、工具实现、资源处理、EP API 客户端等),可直接在本地开发环境中构建并运行,也可在生产环境下部署。
- 客户端与服务器之间的交互遵循 MCP 规范,便于未来扩展和跨系统互操作。