项目简介

MCP SuperAssistant Proxy 是一个用于 Model Context Protocol (MCP) 服务器的代理工具。它允许您将多个基于 Stdio 或 SSE 的 MCP 服务器聚合起来,并通过一个单一的 SSE 接口暴露出去。这样,MCP 客户端(如 MCP SuperAssistant)就可以通过连接这一个代理,访问到所有配置在代理后面的 MCP 服务器提供的能力(工具、资源、Prompt 等)。

主要功能点

  • 统一接入点: 将分散的 MCP 后端整合成一个可访问的 SSE 接口。
  • 协议转换: 能够代理基于 Stdio 协议的 MCP 服务器,并将其通过 SSE 暴露。
  • 多源聚合: 同时连接并管理多个 Stdio 和 SSE 的 MCP 后端。
  • 能力聚合与路由: 自动发现所有后端服务器提供的工具、资源和 Prompt,并在代理层进行聚合。当客户端调用某个工具或访问某个资源时,代理会自动将请求路由到正确的后端服务器。
  • 命名空间管理: 为了区分不同后端服务器提供的同名能力,代理会自动为工具等名称添加服务器名称前缀(例如:'notion.get_page_content')。
  • 标准化通信: 使用 MCP 规范定义的 JSON-RPC over SSE 进行客户端通信。
  • 健康检查与心跳: 支持配置健康检查端点,并为 SSE 连接提供心跳机制。

安装步骤

最简单的安装和运行方式是使用 'npx',这通常只需要您安装了 Node.js。

  1. 确保您的系统已安装 Node.js (版本 16 或更高)。
  2. 在命令行中,您将直接使用 'npx' 命令来运行此代理。

服务器配置

MCP SuperAssistant Proxy 本身是作为 MCP 服务器运行的,MCP 客户端需要知道它的地址。而代理需要知道它要连接哪些后端 MCP 服务器。这些后端服务器的配置信息通过一个 JSON 文件提供给代理。

客户端连接到代理时,只需要知道代理的地址(通常是 'http://localhost:端口/sse')。客户端不需要知道后端 MCP 服务器的详细配置(如它们的 'command' 或 'url')。

以下是用于配置代理连接后端 MCP 服务器的 'config.json' 文件示例及其参数说明:

{
  "mcpServers": {
    "server-name-1": {
      // 配置一个基于 Stdio 的后端 MCP 服务器
      "command": "your_stdio_server_command", // 启动 Stdio 服务器的命令行指令
      "args": ["arg1", "arg2"],               // (可选) 传递给命令的参数列表
      "env": {                                // (可选) 为该子进程设置特定的环境变量
        "API_TOKEN": "your_token"
      }
    },
    "server-name-2": {
      // 配置一个基于 SSE 的后端 MCP 服务器
      "url": "https://your.sse.mcp.server.url" // SSE 后端服务器的 URL
    }
    // 您可以在这里添加更多后端服务器配置
  }
  // 其他可选配置项(端口、日志级别等)可以直接在命令行中指定,也可以放在这里
  // "port": 3006,
  // "logLevel": "info"
}
  • 'mcpServers': 一个 JSON 对象,键是您为后端服务器指定的唯一名称(例如 'notion', 'gmail' 等),值是该服务器的配置。
    • 对于 Stdio 服务器配置:
      • 'command': 启动该 Stdio MCP 服务器的命令行指令字符串。
      • 'args': (可选)一个字符串数组,包含传递给 'command' 的参数。
      • 'env': (可选)一个字符串键值对对象,用于为启动的子进程设置环境变量。
    • 对于 SSE 服务器配置:
      • 'url': 该 SSE MCP 服务器的完整 URL 字符串(必须以 'http://' 或 'https://' 开头)。

基本使用方法

  1. 创建一个如上所示的 'config.json' 文件,填入您要代理的后端 MCP 服务器信息。

  2. 打开终端,运行以下命令启动 MCP SuperAssistant Proxy:

    npx -y @srbhptl39/mcp-superassistant-proxy@latest --config path/to/your/config.json --port 3006

    (请将 'path/to/your/config.json' 替换为您实际的配置文件路径)

  3. 代理启动后,它将尝试连接配置文件中列出的所有后端 MCP 服务器。

  4. 您的 MCP 客户端(如 MCP SuperAssistant)现在可以连接到代理的 SSE 端点(默认是 'http://localhost:3006/sse')来访问所有聚合后的能力。

更多说明

  • 您可以在命令行中通过 '--port'、'--baseUrl'、'--ssePath'、'--messagePath'、'--logLevel' 等选项覆盖配置文件中的部分设置或使用默认值。
  • 使用 '--debug' 选项可以开启详细的调试日志。
  • 代理会尝试为来自不同后端的工具、资源、Prompt 名称添加后端服务器名前缀,以避免命名冲突,并帮助客户端区分来源。对于工具调用,客户端需要使用这个前缀名调用,代理会自动剥离前缀并使用原始名称路由到正确的后端。

信息

分类

AI与计算