MCP本地路由器
这个项目是一个MCP(模型上下文协议)本地路由器,作为MCP服务器的聚合代理。它可以连接到多个上游MCP服务器,并将它们的功能整合到一个单一接口中,供下游客户端使用。
特点/功能
- 支持通过命令行参数指定配置文件
- 支持配置多个上游MCP服务器
- 支持stdio传输
- 支持将环境变量注入到stdio传输中
- 支持带有聚合的SSE传输
/sse并且每个上游(或每个上游源)/sse/{serverName}终端节点
用法
跑步
它必须使用配置文件来运行:
cargo run -- --config mcp-config.json --transport sseSSE 路由
当路由器运行时 --transport sse它暴露了两种类型的端点:
/sse从每个配置的上游服务器流式传输聚合的工具表面积数据。/sse/{serverName}它仅从单一上游源流式传输工具{serverName}段必须与来自(某处的)键匹配mcpServers在你的配置文件中(例如/sse/filesystem或者/sse/workspace-search)。
服务器名称键应为URL安全的,因为它们直接用作路径段。
每个SSE(Server-Sent Events,服务器发送事件)连接都会发出一个初始(消息/信号) endpoint 包含客户端应使用的HTTP路径的事件 POST 请求: 所有流式传输终端共享相同的 POST /message?sessionId=… 频道。
配置文件格式
配置文件采用JSON格式;示例如下:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/username/Desktop"
],
"env": {
"LINEAR_ACCESS_TOKEN": "your_personal_access_token"
}
},
"workspace-search": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-everything"
],
"env": {}
}
}
}描述:
- mcpServers:多个服务器配置的映射
- 每个键都是服务器的名称(用于记录日志和 /sse/{serverName} 路径 - 每个值都是一个对象,包含以下字段: - 命令:要执行的命令 - args:命令参数的数组 - env: 一个映射,用于注入环境变量
构建与安装
# Build the project
cargo build --release
# Run
cargo run --release -- --config mcp-config.json --transport stdio依赖项
- Rust 2021 版本
- Tokio 异步运行时
- 与MCP相关的库: rmcp 可以翻译为“远程管理控制协议”(Remote Management Control Protocol),但具体翻译可能因上下文和领域而异。在某些情况下,也可能直接保留原英文缩写,特别是在技术文档或专业领域中
