使用说明
项目简介
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 服务器来提供这些功能。
安装步骤
- 安装 Node.js 和 npm: 确保你的环境中已安装 Node.js 和 npm。
- 全局安装 Channel: 打开终端,运行以下命令全局安装 Channel:
安装成功后,你可以在命令行中使用 'channel' 命令。npm install -g @chasm-net/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" ] }
基本使用方法
- 根据需求选择模式: 确定你是需要将 Stdio 程序桥接为 SSE 服务,还是将 SSE 服务桥接为 Stdio。
- 配置 MCP 客户端: 在你的 MCP 客户端应用中,配置连接 MCP 服务器的信息。根据你选择的模式,使用上面提供的相应配置模板,并替换占位符为你实际的值。
- 启动 Channel 桥接器: 当 MCP 客户端尝试连接时,它会根据配置启动 'channel' 命令,Channel 桥接器将开始运行,并根据你的配置进行协议桥接。
- 与 MCP 服务交互: 你的 MCP 客户端现在可以通过 Channel 桥接器与底层的 Stdio 程序或远程 SSE MCP 服务器进行交互,就像直接连接到一个 MCP 服务器一样。
注意: Channel 桥接器本身不提供任何 MCP 功能实现,它只是一个协议转换和数据转发的通道。实际的 MCP 功能由你桥接的 Stdio 程序或远程 SSE 服务器提供。
信息
分类
开发者工具