该项目是一个MCP(模型上下文协议)本地路由器,作为MCP服务器的聚合代理。它可以连接到多个上游MCP服务器,并将它们的功能聚合到一个接口中供下游客户端使用。
/sse和每个上游的/sse/{serverName}端点必须使用配置文件运行:
cargo run -- --config mcp-config.json --transport sse
当路由器以--transport sse运行时,它会暴露两种类型的端点:
/sse流式传输来自每个配置的上游服务器的聚合工具表面区域。/sse/{serverName}仅流式传输来自单个上游的工具。{serverName}部分必须与配置文件中的mcpServers键匹配(例如/sse/filesystem或/sse/workspace-search)。服务器名称键应该是URL安全的,因为它们直接用作路径段。
每个SSE连接都会发出一个初始的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": {}
}
}
}
说明:
/sse/{serverName}路径)# 构建项目
cargo build --release
# 运行
cargo run --release -- --config mcp-config.json --transport stdio