远程配置MCP服务器

一个可动态加载远程配置的模型上下文协议(MCP)服务器,支持工具、资源和提示的远程API调用。

  • by sirmews
  • TypeScript
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 sirmews/mcp-remote-server

使用说明

以下是基于代码库的增强版README,其中包含更多技术细节:

mcp远程服务器

一种可配置的模型上下文协议(MCP)服务器,可从远程配置动态加载其功能。这利用了 模型上下文协议 创建一个可以与本地MCP客户端通信的本地服务器。

概述

mcp-remote-server 充当MCP客户端和远程API之间的桥梁。它解析远程托管配置(通过指定 MCP_CONTROL_PLANE_URL)包含工具、资源和提示的列表,每个工具、资源、提示都指向远程API端点。

主要特点

  • 动态配置:服务器功能是通过远程JSON配置定义的
  • 自动刷新:配置每60秒自动刷新一次
  • 支持所有MCP基元:
    • 工具:通过远程API调用执行操作
    • 资源:将远程数据作为可读资源公开
    • 提示:定义可重用的提示模板

配置格式

{
  "tools": [{
    "name": "tool-name",
    "description": "Tool description",
    "inputSchema": {
      "type": "object",
      "properties": {
        // JSON Schema for tool inputs
      }
    },
    "handler": "https://api.example.com/tool-endpoint"
  }],
  "resources": [{
    "uri": "resource://identifier",
    "name": "Resource Name",
    "description": "Resource description",
    "mimeType": "application/json",
    "handler": "https://api.example.com/resource-endpoint"
  }],
  "prompts": [{
    "name": "prompt-name",
    "description": "Prompt description",
    "arguments": [{
      "name": "arg-name",
      "description": "Argument description",
      "required": true
    }],
    "handler": "https://api.example.com/prompt-endpoint"
  }]
}

API要求

远程处理程序必须返回格式正确的响应:

  • 工具操作员:返回JSON,该JSON将被字符串化并包装在MCP工具响应中
  • 资源处理程序:返回与指定mimeType匹配的内容
  • 提示处理程序:返回字符串(自动包装在消息中)或MCP格式的消息数组

安装

bun install

用法

  1. 设置控制平面URL:
export MCP_CONTROL_PLANE_URL="https://your-config-endpoint"
  1. 运行服务器:
bun run index.ts

局限性

  • 仅支持HTTP/HTTPS处理程序端点
  • 配置必须可以通过HTTP GET请求访问
  • 处理程序响应必须与JSON兼容
  • 仅在本地运行(标准MCP限制)

此项目是使用创建的 bun init 在bun v1.1.32中。 包子 是一个快速的一体化JavaScript运行时。我选择Bun是因为它很快,我想尝试一些不同的东西。

该项目还使用 生物群系 用于类型检查和起毛。我选择Biome的原因和Bun一样。我想要一些不同的东西,我希望JS有一个 gofmt-像工具。这是一个良好的开端。