article
README
🚀 MCP 服务器代理
MCP 服务器代理是一个强大的代理服务器,它能够连接到多个 MCP 服务器,并为各类工具提供统一的访问接口,极大地提升了工具与多个服务器交互的便利性。
🚀 快速开始
MCP 服务器代理可让你轻松连接多个 MCP 服务器。以下是使用前的准备步骤和基本操作示例。
✨ 主要特性
- 可同时连接到多个 MCP 服务器,实现多服务器并行管理。
- 支持多个配置文件,方便根据不同场景灵活切换配置。
- 工具名称带有服务器名称的前缀,清晰区分不同服务器的工具。
- 可在“stdio”或“SSE”模式下运行,满足多样化的使用需求。
- 基于配置文件进行管理,操作简单且易于维护。
📦 安装指南
使用以下命令进行安装:
npm install
💻 使用示例
基础用法
命令行选项
服务器可以通过以下命令行选项启动:
# 使用默认设置启动
node dist/server.js
# 使用特定配置文件启动
node dist/server.js --profile developer
# 或者
node dist/server.js -p developer
# 在 SSE 模式下启动
node dist/server.js --mode sse
# 或者
node dist/server.js -m sse
# 在 SSE 模式下使用自定义端口和主机
node dist/server.js --mode sse --port 8080 --host 0.0.0.0
# 组合选项
node dist/server.js --profile developer --mode sse --port 8080
可用选项:
-p, --profile <name>: 指定要使用的配置文件名称(默认为 "default")-m, --mode <mode>: 在“stdio”或“sse”模式之间选择(默认为 "stdio")--port <number>: 设置 SSE 模式的端口(默认为 3000)--host <host>: 设置 SSE 模式的主机(默认为 "localhost")
获取帮助:
node dist/server.js --help
工具命名规则
工具名称会带有其服务器名称的前缀。例如:
- 来自“filesystem”服务器的工具“read_file”变为“filesystem_read_file”
- 来自“kubernetes”服务器的工具“get_pods”变为“kubernetes_get_pods”
SSE 模式端点
在 SSE 模式下,服务器暴露以下端点:
GET /sse: 建立 SSE 连接POST /messages: 处理工具请求(需要提供sessionId查询参数)
示例 SSE 客户端用法:
const eventSource = new EventSource("http://localhost:3000/sse");
eventSource.onmessage = (event) => {
console.log("接收:", event.data);
};
高级用法
在开发和使用过程中,可根据实际需求灵活组合命令行选项,以实现更复杂的功能。例如,在开发模式下使用特定配置文件和 SSE 模式:
# 在开发模式下运行(SSE 模式并使用 developer 配置文件)
npm run dev:sse:developer
📚 详细文档
配置
为每个配置文件创建名为 config.<profile>.json 的文件,例如:
// config.developer.json
{
"mcpServers": {
"kubernetes": {
"command": "npx",
"args": ["mcp-server-kubernetes"]
}
}
}
// config.personal.json
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/mirilale/Desktop"
]
}
}
}
错误处理
服务器提供详细的错误信息,包括:
- 配置文件加载错误
- 服务器连接失败
- 工具未找到错误
- 服务器断开连接错误
所有错误消息都会包含当前配置文件名称以提供更好的上下文。
开发
# 安装依赖项
npm install
# 构建项目
npm run build
# 在开发模式下运行(stdio 模式)
npm run dev:stdio:developer
# 或者
npm run dev:sse:developer
# 使用 mpc 检查工具
npm run inspect
📄 许可证
本项目采用 MIT 许可证。
微信扫一扫