MCP远程服务
一个可配置的MCP服务器,它从远程配置动态加载功能,以桥接MCP客户端与远程API,从而执行操作、访问资源和使用提示模板。
服务介绍
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 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要求
远程处理器必须返回适当格式化的响应:
- 工具处理器:返回将被字符串化并包装在MCP工具响应中的JSON
- 资源处理器:返回与指定mimeType匹配的内容
- 提示处理器:返回字符串(自动包装成消息)或MCP格式的消息数组
安装
bun install
使用方法
- 设置您的控制平面URL:
export MCP_CONTROL_PLANE_URL="https://your-config-endpoint"
- 运行服务器:
bun run index.ts
限制
- 仅支持HTTP/HTTPS处理器端点
- 配置必须可通过HTTP GET请求访问
- 处理器响应必须兼容JSON
- 仅限本地运行(标准MCP限制)
该项目使用bun v1.1.32中的bun init创建。Bun是一个快速的一体化JavaScript运行时。我选择Bun是因为它速度快,而且我想尝试一些不同的东西。
该项目还使用Biome进行类型检查和代码检查。我选择Biome的原因与选择Bun相同。我希望JS有一个类似gofmt的工具。这是一个好的开始。