使用说明

项目简介

Nchan MCP Transport 是一个基于 Nginx, Nchan 和 FastAPI 构建的 MCP (Model Context Protocol) 服务器实现。它旨在为 AI 开发者提供一个高性能、可扩展的后端服务,用于构建与 Claude 等 LLM 智能体集成的实时应用。该项目利用 Nginx 和 Nchan 的优势,提供 WebSocket 和 SSE 双协议支持,确保低延迟和高并发的通信,并无缝集成了 OpenAPI,方便快速将现有 API 转换为 MCP 工具。

主要功能点

  • 双协议支持: 同时支持 WebSocket 和 Server-Sent Events (SSE) 协议,并能自动检测客户端使用的协议。
  • 高性能: 基于 Nginx 和 Nchan 构建,能够处理高并发连接和实现低延迟的消息推送。
  • MCP 协议兼容: 完全实现了 Model Context Protocol 协议,确保与 MCP 客户端的兼容性。
  • OpenAPI 集成: 支持从 OpenAPI 规范自动生成 MCP 工具,简化工具注册流程。
  • 工具和资源管理: 提供 Python 装饰器,方便开发者注册和管理 MCP 工具和资源。
  • 异步执行: 支持异步任务执行,并通过推送通知实时更新任务进度。
  • Docker 部署: 提供 Docker Compose 部署方案,方便快速部署和运行。

安装步骤

  1. 安装 Python SDK:
    pip install httmcp
    如果需要使用命令行工具 (httmcp CLI),请安装包含 'cli' 扩展的 SDK:
    pip install httmcp[cli]

服务器配置

MCP 客户端需要配置 MCP 服务器的连接信息才能正常工作。以下是一个典型的服务器配置示例(JSON 格式),假设你的 Nchan MCP Transport 服务器运行在 'http://your-server-address:8000',并且 Nchan publish server 地址为 'http://nchan:80'。

{
  "server name": "my-mcp-server",  // MCP 服务器的名称,这个名称需要与你实际启动的服务器实例名称一致
  "command": "httmcp",              // 启动 MCP 服务器的命令,确保 'httmcp' 命令在 MCP 客户端可访问的环境变量 PATH 中
  "args": [                        // 启动命令的参数列表
    "-f", "openapi.json",          // (可选) OpenAPI 规范文件路径或 URL。如果你的 MCP 服务器需要集成 OpenAPI 功能,请提供 OpenAPI 规范文件。如果不需要,可以省略此参数。
    "-p", "http://nchan:80",       // (必需) Nchan publish server 的 URL 地址。请替换为你的 Nchan 服务器实际地址。
    "-n", "my-mcp-server"          // (必需) MCP 服务器名称,需要与 "server name" 字段的值保持一致。
  ]
}

配置说明:

  • '"server name"': 为你的 MCP 服务器指定一个名称,用于在客户端标识和管理不同的服务器连接。
  • '"command"': 指定启动 MCP 服务器的命令。这里假设 'httmcp' 命令已经安装并且可以在客户端环境中直接执行。如果 'httmcp' 命令不在 PATH 环境变量中,你需要提供 'httmcp' 命令的完整路径。
  • '"args"': 一个字符串数组,包含了传递给 'httmcp' 命令的参数。
    • '"-f openapi.json"': (可选) 如果你的服务器需要基于 OpenAPI 规范提供工具,使用 '-f' 参数指定 OpenAPI 规范文件的路径或 URL。请将 'openapi.json' 替换为你的实际文件路径或 URL。如果不需要 OpenAPI 集成,可以移除此参数。
    • '"-p http://nchan:80"': (必需) 使用 '-p' 参数指定 Nchan publish server 的地址。务必替换 'http://nchan:80' 为你实际部署的 Nchan 服务器地址。Nchan publish server 是 MCP 服务器推送实时消息到客户端的关键组件。
    • '"-n my-mcp-server"': (必需) 使用 '-n' 参数设置 MCP 服务器的名称,这个名称应该与 '"server name"' 字段的值一致。

请根据你的实际部署环境和需求,调整上述配置信息。 例如,如果你的 OpenAPI 规范文件名为 'my_openapi_spec.yaml' 并且 Nchan 服务器运行在 'http://nchan.example.com:8080',则 'args' 部分可能需要修改为:

"args": [
  "-f", "my_openapi_spec.yaml",
  "-p", "http://nchan.example.com:8080",
  "-n", "my-mcp-server"
]

基本使用方法

  1. 准备环境: 确保你已安装 Docker 和 Docker Compose,用于快速启动 Nchan MCP Transport 服务器。
  2. 克隆仓库: 从 GitHub 克隆 'nchan-mcp-transport' 仓库到本地。
    git clone https://github.com/ConechoAI/nchan-mcp-transport.git
    cd nchan-mcp-transport
  3. 启动服务器: 使用 Docker Compose 启动 Nchan MCP Transport 服务器及其依赖的 Nginx 和 Nchan 服务。
    docker-compose up -d
  4. 定义工具和资源: 修改 'python/examples/app.py' 文件,根据你的需求定义 MCP 工具和资源。你可以使用 '@server.tool()' 装饰器注册工具函数,使用 '@server.resource()' 装饰器注册资源。
  5. 查看 API 文档: 服务器启动后,你可以访问 'http://your-server-address:8000/docs' (请将 'your-server-address' 替换为你的服务器地址) 查看自动生成的 FastAPI API 文档,了解可用的 MCP 接口。
  6. 配置 MCP 客户端: 在你的 MCP 客户端应用中,根据上述 “服务器配置” 部分的说明,配置连接到你的 Nchan MCP Transport 服务器所需的信息。
  7. 与 MCP 服务器交互: 使用 MCP 客户端发送请求到你的 Nchan MCP Transport 服务器,例如调用已注册的工具或访问托管的资源,开始构建你的实时 LLM 应用。

信息

分类

网页与API