使用说明

项目简介

本项目是为 Model Context Protocol (MCP) 服务器和客户端设计的 NATS 传输层实现。它允许开发者使用 NATS.io 消息系统作为 MCP 应用的通信骨干,从而构建分布式、高可用、可伸缩的 MCP 服务。

主要功能点

  • NATS 传输支持: 为 MCP 服务器和客户端提供基于 NATS 消息队列的传输机制。
  • 微服务 API 集成: 利用 NATS 微服务 API 实现服务发现、监控和统计。
  • 分布式部署: 支持 MCP 服务器的分布式部署和负载均衡。
  • 异步回调: 支持异步回调机制,处理耗时操作并提供进度报告。
  • 易于集成: 通过简单的 pip 安装即可集成到现有的 MCP 服务器和客户端。
  • Docker 部署示例: 提供 Docker Compose 示例,方便快速部署和测试。

安装步骤

  1. 确保已安装 Python 3.8 或更高版本。
  2. 安装 'mcp-nats-transport' 包:
    pip install mcp-nats-transport
    注意: 本项目依赖 'mcp' Python SDK,通常会自动安装。如果未安装,请手动安装 'pip install mcp-sdk'

服务器配置

MCP 客户端需要配置连接 MCP 服务器的信息才能进行通信。对于本仓库实现的 MCP NATS 服务器,客户端需要配置 NATS 服务器的连接参数。以下是一个 JSON 格式的配置示例,展示了客户端需要配置的关键信息:

{
  "server name": "mcp-nats-server",
  "command": "python",
  "args": [
    "-m",
    "examples.simple_example"  // 启动服务器的命令,这里以simple_example.py为例,实际部署时请根据您的服务器脚本调整
  ],
  "nats": {  // NATS 连接配置
    "url": "nats://localhost:4222",  // NATS 服务器地址,默认为本地
    "service_name": "mcp.service", // MCP 服务名称,客户端和服务端需保持一致
    "client_id": "your-client-id"   // 客户端ID,可自定义,用于标识客户端
  }
}

参数注释:

  • 'server name': 自定义服务器名称,用于在客户端配置中标识不同的MCP服务器。
  • 'command': 启动 MCP 服务器的命令,通常为 'python' 或 'node' 等解释器。
  • 'args': 启动命令的参数列表,关键参数包括:
    • '-m examples.simple_example' (示例): 指定运行的服务器脚本或模块。请根据实际情况修改为您的服务器启动脚本路径
    • 其他服务器脚本可能需要的参数。
  • 'nats': NATS 连接配置信息,客户端通过这些信息连接到 NATS 服务器,进而与 MCP 服务器通信。
    • 'url': NATS 服务器的连接地址。如果 NATS 服务器部署在非本地,请修改为实际的 NATS 服务器地址(例如 'nats://your-nats-server:4222')。
    • 'service_name': MCP 服务名称。客户端和服务端必须配置相同的 'service_name',以便客户端能正确发现和调用服务端提供的服务。
    • 'client_id': 客户端的唯一标识符。可以自定义,用于在 NATS 服务中区分不同的客户端连接。

注意: 实际部署时,您需要根据您的 MCP 服务器实现脚本 (例如 'server.py') 和 NATS 服务器的部署位置,修改 'args' 和 'nats.url' 等配置参数。 上述 'args' 中的示例脚本 'examples.simple_example.py' 仅为演示目的,实际应用中需要替换为您自己的服务器启动脚本。

基本使用方法

  1. 启动 NATS 服务器: 如果本地没有 NATS 服务器,可以使用 Docker 快速启动:

    docker run -p 4222:4222 -p 8222:8222 nats:latest --jetstream
  2. 启动 MCP NATS 服务器: 使用仓库提供的示例或您自己的 MCP 服务器代码,配置 'NatsServerParameters' 并通过 'nats_server' 上下文管理器启动服务器。例如,运行 'examples/simple_example.py' 中的 'run_server' 函数。

  3. 配置 MCP 客户端: 在 MCP 客户端应用中,配置上述 JSON 格式的服务器连接信息,并确保客户端使用了 'mcp-nats-transport' 提供的 'nats_client' 上下文管理器来建立连接。

  4. 客户端调用服务: 客户端通过 MCP 客户端 SDK 的接口(如 'client.call_tool')调用服务器端注册的工具或 Prompt。 底层通信将通过 NATS 消息队列进行。

示例代码参考: 仓库的 'examples' 目录下提供了 'simple_example.py', 'callback_example.py', 'distributed_example.py' 等示例代码,可以参考学习如何使用 NATS 传输层构建 MCP 应用。

信息

分类

桌面与硬件