使用说明内容(Markdown格式)

  • 项目简介
    • 本项目是在 ESP32 上实现的 MCP 服务器,使用 MQTT 5.0 作为传输层,通过 JSON-RPC 处理来自 MCP 客户端的请求,支持资源管理、工具注册与执行,以及资源读取等核心能力。
  • 主要功能点
    • MCP 服务器实现:完整处理 MCP 协议格式的请求与响应,基于 JSON-RPC 2.0 风格的消息封装与解析。
    • MQTT 5.0 传输:通过 ESP-IDF 的 MQTT 客户端实现与 MQTT 代理的通信,支持 TLS/SSL、认证、以及 Last Will 等特性。
    • 工具系统:支持注册工具、定义输入参数、执行回调,并将结果以 JSON-RPC 的方式返回。
    • 资源系统:支持资源注册、读取、以及内容返回,便于 LLM 访问外部数据。
    • 会话与识别:实现客户端初始化、客户端存在性与权限管理等会话相关逻辑。
    • JSON-RPC 协议实现:编码/解码、错误处理、结果响应、以及能力集合等。
  • 安装步骤
    • 环境要求:ESP-IDF 5.0 及以上,ESP32 系列芯片,MQTT 5.0 代理。
    • 将本组件添加到 ESP-IDF 项目中,并在 CMakeLists.txt 中添加依赖。
    • 配置 MQTT Broker 连接参数(如 broker URI、客户端 ID、用户名/密码、证书等)。
    • 编译并烧录到 ESP32 设备。
  • 服务器配置
    • MCP 客户端需要知道服务器的启动命令和参数,以便建立连接并与服务器通信。以下为基于仓库信息的准确示例字段说明(以 JSON 形式描述,供客户端配置参考;客户端实际开发请按需求实现读取与解析):
    • serverName(服务器名称): "ESP32 Demo Server"(与代码中的示例名称一致)
    • command(启动命令): "start_mcp_server"(表示启动 MCP 服务器的执行入口命令)
    • args(启动参数,按需传入): [ "broker_uri=mqtt://broker.emqx.io", "client_id=esp32-demo-server-client", "username=", "password=", "cert=" ]
    • 说明
      • broker_uri 对应仓库示例中使用的 MQTT Broker 地址,常见为公开测试代理或自建代理。
      • client_id 对应服务器实例的唯一识别标识,便于服务器在 MQTT 主题层级中区分。
      • username、password、cert 为可选项,若使用 TLS/SSL 或需要认证时提供。
  • 基本使用方法
    • 先确保 ESP32 开机并连接到配置的 MQTT Broker。
    • 启动 MCP 服务器后,服务器会在连接成功时订阅控制主题并向客户端广播 presence 信息。
    • MCP 客户端可通过初始化请求建立对该服务器的会话,并查询工具、资源等能力。
    • 使用工具时,客户端可调用 tools/list、tools/call 等方法,服务器会执行相应回调并返回结果。

信息

分类

桌面与硬件