项目简介
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。
- 确保您的系统已安装 Node.js (版本 16 或更高)。
- 在命令行中,您将直接使用 '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://' 开头)。
- 对于 Stdio 服务器配置:
基本使用方法
-
创建一个如上所示的 'config.json' 文件,填入您要代理的后端 MCP 服务器信息。
-
打开终端,运行以下命令启动 MCP SuperAssistant Proxy:
npx -y @srbhptl39/mcp-superassistant-proxy@latest --config path/to/your/config.json --port 3006(请将 'path/to/your/config.json' 替换为您实际的配置文件路径)
-
代理启动后,它将尝试连接配置文件中列出的所有后端 MCP 服务器。
-
您的 MCP 客户端(如 MCP SuperAssistant)现在可以连接到代理的 SSE 端点(默认是 'http://localhost:3006/sse')来访问所有聚合后的能力。
更多说明
- 您可以在命令行中通过 '--port'、'--baseUrl'、'--ssePath'、'--messagePath'、'--logLevel' 等选项覆盖配置文件中的部分设置或使用默认值。
- 使用 '--debug' 选项可以开启详细的调试日志。
- 代理会尝试为来自不同后端的工具、资源、Prompt 名称添加后端服务器名前缀,以避免命名冲突,并帮助客户端区分来源。对于工具调用,客户端需要使用这个前缀名调用,代理会自动剥离前缀并使用原始名称路由到正确的后端。
信息
分类
AI与计算