使用说明

项目简介

Channel 是一个 MCP 协议桥接工具,它自身并非一个完整的 MCP 服务器,而是一个连接器或转换器。它可以将现有的、基于标准输入输出 (Stdio) 的程序转换为可通过 SSE 协议访问的 MCP 服务,或者反过来,将一个 SSE MCP 服务桥接到标准输入输出,方便在不同环境中使用 MCP 协议。

简单来说,Channel 就像一个协议翻译器,让原本使用 Stdio 或 SSE 的程序能够以另一种协议接入 MCP 生态。

主要功能点

  • Stdio to SSE 桥接: 将任何可以通过命令行启动并使用标准输入输出进行通信的程序,转换为可以通过 SSE 协议访问的 MCP 服务。这使得传统的程序可以快速集成到 MCP 环境中。
  • SSE to Stdio 桥接: 连接到一个已有的 SSE MCP 服务器,并将该服务器的服务通过标准输入输出暴露出来。这允许在需要 Stdio 协议的场景中使用 SSE MCP 服务。
  • 基于 HTTP 的 SSE 服务: 内置 HTTP 服务器,提供标准的 SSE 协议端点,用于 MCP 客户端连接。
  • 简单的鉴权: 支持通过 API 密钥进行简单的请求鉴权,保护 MCP 服务接口。
  • CORS 支持: 允许跨域资源共享,方便在 Web 环境中使用。
  • 健康检查端点: 提供健康检查端点,用于监控服务状态。

注意: Channel 本身不提供资源管理、工具注册或 Prompt 模板定义等 MCP 服务器核心功能。它依赖于桥接的目标程序或远程 SSE 服务器来提供这些功能。

安装步骤

  1. 安装 Node.js 和 npm: 确保你的环境中已安装 Node.js 和 npm。
  2. 全局安装 Channel: 打开终端,运行以下命令全局安装 Channel:
    npm install -g @chasm-net/channel
    安装成功后,你可以在命令行中使用 'channel' 命令。

服务器配置

1. Stdio to SSE 模式 (将 Stdio 程序桥接为 SSE MCP 服务)

MCP 客户端需要如下配置信息来连接由 Channel 创建的 Stdio to SSE 服务:

{
  "serverName": "Channel-Stdio-SSE-Bridge",  // MCP 服务器名称,可自定义
  "command": "channel",                       // 启动 Channel 的命令
  "args": [                                  // 传递给 Channel 命令的参数
    "--stdio", "<your_stdio_command>",      //  * 必填:你要桥接的 Stdio 程序的启动命令,例如 "python my_script.py" 或 "node my_app.js"。请替换为你的实际命令。
    "--port", "8000",                         //  * 可选:指定 HTTP 服务器监听的端口,默认为 8000。
    "--ssePath", "/sse",                      //  * 可选:SSE 端点的路径,默认为 /sse。
    "--messagePath", "/message",              //  * 可选:POST 消息端点的路径,默认为 /message。
    // "--apiKey", "<your_api_key>"           //  * 可选:API 密钥,如果需要启用鉴权,请设置此项并替换为你的密钥。
    // "--cors"                                //  * 可选:启用 CORS 支持,如果你的 MCP 客户端是 Web 应用,可能需要启用。
    // "--healthEndpoint", "/healthz"          //  * 可选:健康检查端点路径,可以指定多个。
    // "--logLevel", "none"                    //  * 可选:日志级别,默认为 info,可选 none 关闭日志。
  ]
}

配置示例:

假设你要桥接一个名为 'my-stdio-app' 的 Stdio 应用程序,其启动命令是 'python my-stdio-app.py',你想使用端口 8088,则 MCP 客户端的 'command' 和 'args' 配置应为:

{
  "command": "channel",
  "args": [
    "--stdio", "python my-stdio-app.py",
    "--port", "8088"
  ]
}

2. SSE to Stdio 模式 (将 SSE MCP 服务桥接为 Stdio)

MCP 客户端需要如下配置信息来连接由 Channel 创建的 SSE to Stdio 服务:

{
  "serverName": "Channel-SSE-Stdio-Bridge",  // MCP 服务器名称,可自定义
  "command": "channel",                       // 启动 Channel 的命令
  "args": [                                  // 传递给 Channel 命令的参数
    "--sse", "<sse_server_url>",            //  * 必填:你要桥接的远程 SSE MCP 服务器的 URL,例如 "http://localhost:8000/sse"。请替换为实际的 SSE 服务器 URL。
    // "--apiKey", "<your_api_key>"           //  * 可选:API 密钥,如果远程 SSE 服务器需要鉴权,请设置此项并替换为你的密钥。
    // "--logLevel", "none"                    //  * 可选:日志级别,默认为 info,可选 none 关闭日志。
  ]
}

配置示例:

假设你要桥接一个运行在 'http://remote-mcp-server:9000/sse' 的远程 SSE MCP 服务器,则 MCP 客户端的 'command' 和 'args' 配置应为:

{
  "command": "channel",
  "args": [
    "--sse", "http://remote-mcp-server:9000/sse"
  ]
}

基本使用方法

  1. 根据需求选择模式: 确定你是需要将 Stdio 程序桥接为 SSE 服务,还是将 SSE 服务桥接为 Stdio。
  2. 配置 MCP 客户端: 在你的 MCP 客户端应用中,配置连接 MCP 服务器的信息。根据你选择的模式,使用上面提供的相应配置模板,并替换占位符为你实际的值。
  3. 启动 Channel 桥接器: 当 MCP 客户端尝试连接时,它会根据配置启动 'channel' 命令,Channel 桥接器将开始运行,并根据你的配置进行协议桥接。
  4. 与 MCP 服务交互: 你的 MCP 客户端现在可以通过 Channel 桥接器与底层的 Stdio 程序或远程 SSE MCP 服务器进行交互,就像直接连接到一个 MCP 服务器一样。

注意: Channel 桥接器本身不提供任何 MCP 功能实现,它只是一个协议转换和数据转发的通道。实际的 MCP 功能由你桥接的 Stdio 程序或远程 SSE 服务器提供。

信息

分类

开发者工具