项目简介
MCP Pro 不是一个直接实现所有资源、工具和Prompt逻辑的MCP服务器,而是一个功能全面的管理平台和API网关。它允许您集中注册、管理、监控和代理多个独立的MCP服务器(下游服务器)。LLM客户端通过连接到MCP Pro网关,并指定目标下游服务器ID,来间接访问和利用下游MCP服务器提供的上下文和能力。这提供了一个统一、可管理、可扩展的AI后端架构。
主要功能点
- 集中式服务器管理: 在一个地方注册、启动、停止、更新和删除下游MCP服务器。支持Stdio、SSE、Streamable-HTTP和WebSocket等连接类型。
- MCP服务器市场 (Marketplace): 管理或未来发现、安装预配置的MCP服务器包。
- 流量监控与日志: 记录所有通过MCP Pro的请求和响应,提供使用、错误和性能分析。
- API密钥管理: 为访问MCP Pro网关提供安全的API密钥认证机制。
- 会话管理: 为LLM客户端和下游服务器之间的交互提供MCP会话管理。
- 通知转发: 将下游服务器发起的通知或其他消息实时转发给连接的LLM客户端(通过SSE)。
- Docker部署: 提供方便的容器化部署方案。
安装步骤
MCP Pro作为一个Node.js后端应用和一个Next.js前端应用构建,并依赖PostgreSQL数据库。最推荐的安装方式是使用Docker进行容器化部署。
- 准备环境: 确保您已安装Docker和Docker Compose。
- 获取代码: 克隆GitHub仓库。
- 配置: 参照项目文档 ('./docs/README.md') 设置环境变量(例如数据库连接)。
- 构建与启动: 使用Docker Compose命令构建并启动服务。通常涉及运行 'docker-compose up --build' 等命令。
更详细的本地开发或生产环境安装指南,请参考仓库中的官方文档 ('./docs/local_development_setup.md')。
服务器配置(MCP Pro网关的下游服务器配置)
MCP Pro管理的是下游MCP服务器。您需要在MCP Pro中注册和配置这些下游服务器,而不是在MCP客户端直接配置它们。配置信息通过MCP Pro的管理API或可能的Web界面进行:
- 名称 (name): 给下游MCP服务器一个友好的名称,方便识别。
- 类型 (serverType): 指定下游服务器的连接类型,例如 'stdio' (标准输入输出), 'sse' (Server-Sent Events), 'streamable-http' (可流式传输的HTTP), 'websocket'。
- 连接详情 (connectionDetails): 这是核心配置,取决于 'serverType':
- 对于 'http', 'sse', 'streamable-http', 'websocket' 类型: 提供下游服务器的 URL。
- 对于 'stdio' 类型: 提供启动下游服务器进程的 命令 (command) 及其 参数数组 (args)。还可以配置 工作目录 (workingDirectory) 和 环境变量 (env)。
- MCP选项 (mcpOptions): 额外的JSON对象,可以包含MCP相关的配置,如超时时间等。
- 标签 (tags): 字符串数组,用于分类和过滤服务器。
这些配置信息被存储在MCP Pro的数据库中,MCP Pro会根据这些信息来启动和管理下游服务器进程(对于Stdio)或建立/维护连接(对于HTTP/SSE/WebSocket)。LLM客户端无需关心这些具体的下游服务器连接细节。
基本使用方法
LLM客户端连接到MCP Pro网关的统一入口,通常是一个HTTP(S) endpoint。MCP Pro根据请求中的信息(特别是目标下游服务器的ID和会话ID)将MCP请求路由到相应的下游服务器,并将响应转发回来。
- 注册下游服务器: 使用MCP Pro的管理API注册您的MCP服务器实例,获取其在MCP Pro中的唯一ID。
- 获取API Key: 如果MCP Pro启用了API密钥认证,生成一个API密钥用于客户端认证。
- LLM客户端连接: 配置您的LLM客户端连接到MCP Pro网关的MCP Endpoint,例如 '/mcp/{serverId}'。客户端需要在请求中包含目标下游服务器的ID ('serverId'),并在第一次通信时(通常是通过'initialize'请求)建立MCP会话,获取或提供'Mcp-Session-Id',并在后续请求和SSE连接中复用该ID。客户端可能需要在请求头中包含API密钥进行认证。
- 发送MCP请求: 客户端向MCP Pro网关发送符合MCP JSON-RPC格式的请求(如 'tools/call', 'resources/read' 等)。
- 接收响应/通知: MCP Pro将下游服务器的响应或服务器发起的通知转发回客户端。对于服务器通知,通常会通过一个独立的SSE连接进行。
具体的客户端集成方式取决于您的LLM客户端实现和MCP协议版本要求,但核心是连接到MCP Pro网关并正确指定目标服务器ID和会话ID。
信息
分类
AI与计算