返回市场
MCP本地路由服务器

MCP本地路由服务器

作者:kaichen14 星标更新:2025-09-24

项目介绍

MCP本地路由器

该项目是一个MCP(模型上下文协议)本地路由器,作为MCP服务器的聚合代理。它可以连接到多个上游MCP服务器,并将它们的功能聚合到一个接口中供下游客户端使用。

功能

  • 支持通过命令行参数指定配置文件
  • 支持配置多个上游MCP服务器
  • 支持stdio传输
  • 支持向stdio传输注入环境变量
  • 支持SSE传输,具有聚合的/sse和每个上游的/sse/{serverName}端点

使用方法

运行

必须使用配置文件运行:

cargo run -- --config mcp-config.json --transport sse

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": {}
    }
  }
}

说明:

  • mcpServers:多个服务器配置的映射
    • 每个键是服务器的名称(用于日志记录和/sse/{serverName}路径)
    • 每个值是一个包含以下字段的对象:
      • command:要执行的命令
    • args:命令参数数组
    • env:要注入的环境变量映射

构建和安装

# 构建项目
cargo build --release

# 运行
cargo run --release -- --config mcp-config.json --transport stdio

依赖项

  • Rust 2021版
  • tokio异步运行时
  • 与MCP相关的库:rmcp