项目简介
Remote Server 是一个基于 Model Context Protocol (MCP) 的服务器实现,它不直接定义工具、资源或 Prompt,而是通过一个远程托管的 JSON 配置文件来动态加载这些能力。这使得服务器的功能可以灵活配置和更新,无需修改服务器代码。Remote Server 充当 MCP 客户端和远程 API 之间的桥梁,当 MCP 客户端请求工具、资源或 Prompt 时,Remote Server 会调用预先配置的远程 API 端点来处理请求并返回结果。
主要功能点
- 动态配置: 服务器的能力(工具、资源、Prompt)通过远程 JSON 配置文件定义,配置文件的地址通过环境变量 'MCP_CONTROL_PLANE_URL' 或启动参数指定。
- 自动刷新: 服务器定期(每 60 秒)自动刷新远程配置,保持能力与最新配置同步。
- 支持 MCP 核心功能: 完整支持 MCP 协议的工具 (Tools)、资源 (Resources) 和 Prompt 模板 (Prompts) 三大核心功能。
- 工具 (Tools): 允许 LLM 调用外部功能,工具的定义(名称、描述、输入参数)和执行逻辑都配置在远程配置文件中,实际执行通过调用远程 API 完成。
- 资源 (Resources): 允许 LLM 访问外部数据,资源的定义(URI、名称、描述、MIME 类型)和数据获取方式都配置在远程配置文件中,实际数据读取通过调用远程 API 完成。
- Prompt 模板 (Prompts): 支持可定制的 LLM 交互模式,Prompt 模板的定义(名称、描述、参数)和渲染逻辑都配置在远程配置文件中,实际渲染通过调用远程 API 完成。
- 基于标准 MCP SDK: 使用官方 ModelContextProtocol SDK 构建,保证了与 MCP 协议的兼容性。
安装步骤
- 安装 Bun: Remote Server 使用 Bun 运行时环境,如果尚未安装,请先安装 Bun。请参考 Bun 官网 获取安装指南。
- 安装依赖: 克隆仓库代码后,在项目根目录下运行以下命令安装项目依赖:
bun install
服务器配置
MCP 客户端需要配置 Remote Server 的启动命令 (command) 及其参数 (args) 才能连接。以下是 Remote Server 的 MCP 客户端配置信息示例 (JSON 格式):
{ "serverName": "remote-server", // MCP 服务器名称,客户端随意配置 "command": "bun", // 启动命令,这里使用 bun 运行时 "args": [ // 启动参数 "run", // bun run 命令 "index.ts", // 入口文件 "<control_plane_url>" // [必填] 远程配置文件的 URL,需要替换为实际的 URL,也可以省略此参数,通过环境变量 MCP_CONTROL_PLANE_URL 指定 ] }
参数说明:
- 'control_plane_url': [必填] 远程配置文件的 URL,Remote Server 将从这个 URL 获取工具、资源和 Prompt 的定义。配置文件需要符合 README.md 中描述的 JSON 格式。
- 指定方式1 (推荐): 将 '<control_plane_url>' 替换为实际的 URL,作为 'args' 中的第三个参数传递给 Remote Server。
- 指定方式2: 省略 'args' 中的第三个参数,然后在 MCP 客户端启动 Remote Server 的环境中设置环境变量 'MCP_CONTROL_PLANE_URL',值为远程配置文件的 URL。
基本使用方法
- 配置远程 JSON 文件: 准备一个符合 README.md 中 'Configuration Format' 描述的 JSON 配置文件,并将其托管在一个可以通过 HTTP/HTTPS GET 请求访问的 URL 上。配置文件中定义工具、资源和 Prompt,以及它们对应的远程 API 端点。
- 配置 MCP 客户端: 在 MCP 客户端中,按照 "服务器配置" 中的示例配置 Remote Server 的启动命令和参数,并将 '<control_plane_url>' 替换为你的远程配置文件的 URL,或者设置环境变量 'MCP_CONTROL_PLANE_URL'。
- 启动 Remote Server: MCP 客户端启动后,会自动启动 Remote Server 并与之建立连接。Remote Server 会定期从远程配置文件加载和刷新配置。
- 在 MCP 客户端中使用: 在 MCP 客户端中,你可以像使用本地 MCP 服务器一样使用 Remote Server 提供的工具、资源和 Prompt。客户端发送 MCP 请求,Remote Server 会根据远程配置调用相应的远程 API,并将结果返回给客户端。
注意:
- Remote Server 依赖远程配置文件的可用性和稳定性。请确保远程配置文件可以正常访问,并且配置的远程 API 端点能够正确处理请求。
- Remote Server 仅支持 HTTP/HTTPS 协议的远程 API 端点。
- Handler API (远程 API 端点) 需要返回 JSON 兼容的响应数据。工具和 Prompt 的 handler 需要返回 JSON 格式的数据,资源的 handler 需要返回符合 'mimeType' 定义格式的数据。
信息
分类
网页与API