返回市场
远程服务器

远程服务器

作者:sirmews5 星标更新:2025-01-16

项目介绍

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

mcp-remote-server

一个可配置的模型上下文协议(MCP)服务器,能够从远程配置动态加载其功能。该服务器利用ModelContextProtocol创建一个本地服务器,可以与您的本地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模式
      }
    },
    "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版本下创建。Bun是一个快速的一体化JavaScript运行时。我选择Bun是因为它速度快,并且我想尝试一些不同的东西。

此项目还使用Biome进行类型检查和代码格式化。我选择Biome的原因与Bun相同。我希望JavaScript有一个类似gofmt的工具。这是一个好的开始。