项目简介

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 协议的兼容性。

安装步骤

  1. 安装 Bun: Remote Server 使用 Bun 运行时环境,如果尚未安装,请先安装 Bun。请参考 Bun 官网 获取安装指南。
  2. 安装依赖: 克隆仓库代码后,在项目根目录下运行以下命令安装项目依赖:
    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。

基本使用方法

  1. 配置远程 JSON 文件: 准备一个符合 README.md 中 'Configuration Format' 描述的 JSON 配置文件,并将其托管在一个可以通过 HTTP/HTTPS GET 请求访问的 URL 上。配置文件中定义工具、资源和 Prompt,以及它们对应的远程 API 端点。
  2. 配置 MCP 客户端: 在 MCP 客户端中,按照 "服务器配置" 中的示例配置 Remote Server 的启动命令和参数,并将 '<control_plane_url>' 替换为你的远程配置文件的 URL,或者设置环境变量 'MCP_CONTROL_PLANE_URL'。
  3. 启动 Remote Server: MCP 客户端启动后,会自动启动 Remote Server 并与之建立连接。Remote Server 会定期从远程配置文件加载和刷新配置。
  4. 在 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