ESP32 MCP Server 使用说明
项目简介
ESP32MCPServer 是一个在 ESP32 微控制器上运行的 MCP (Model Context Protocol) 服务器实现。它旨在为大型语言模型 (LLM) 客户端提供一个轻量级、低功耗的上下文数据服务后端。通过 WebSocket 协议,ESP32MCPServer 允许客户端发现、访问和订阅设备上的资源,为物联网 (IoT) 应用场景中的 LLM 交互提供基础支持。
请注意: 仓库的 README 标记状态为 "Not Compiling",可能需要用户自行解决编译问题后才能正常使用。
主要功能点
- MCP 协议实现 (v0.1.0): 实现了基础的 Model Context Protocol,支持客户端以标准化的方式与服务器交互。
- WebSocket 服务器: 使用 WebSocket 协议进行双向通信,提供实时数据推送和命令接收能力。
- 资源发现与监控: 支持客户端查询和订阅服务器管理的资源,获取最新的资源状态和数据。
- WiFi 配置: 通过简单的 Web 界面进行 WiFi 网络配置,方便设备接入网络。
- 异步处理: 采用异步处理机制,确保服务器在高并发请求下的稳定性和响应速度。
- 集成测试: 包含全面的测试套件,用于验证服务器功能的正确性和稳定性。
安装步骤
- 克隆仓库:
git clone https://github.com/navado/ESP32MCPServer.git cd ESP32MCPServer - 安装依赖:
这个命令会使用 PlatformIO 安装项目所需的库依赖。pio pkg install - 构建并上传文件系统:
此步骤将文件系统镜像上传到 ESP32,其中可能包含 Web 配置页面等静态资源。pio run -t uploadfs - 构建并上传固件:
此命令编译项目代码并将固件上传到 ESP32 开发板。pio run -t upload
服务器配置
MCP 客户端需要配置连接 MCP 服务器的信息。对于 ESP32MCPServer,你需要配置 WebSocket 连接地址。以下是一个 MCP 客户端配置示例 (JSON 格式):
{ "server name": "ESP32MCPServer", "command": "ws://YOUR_ESP32_IP:9000", // MCP 服务器的 WebSocket 连接地址,请将 YOUR_ESP32_IP 替换为 ESP32 的实际 IP 地址 "args": {} // WebSocket 连接通常不需要额外的启动参数,此处为空 }
配置参数说明:
- server name: MCP 服务器的名称,可以自定义,用于客户端识别。
- command: 连接 MCP 服务器的命令,对于 WebSocket 服务器,这里是 WebSocket 的 URL 地址,端口默认为 9000。请务必将 'YOUR_ESP32_IP' 替换为你的 ESP32 设备在网络中分配到的 IP 地址。 你可以在 ESP32 连接 WiFi 后,通过串口监视器或者网络状态页面获取 ESP32 的 IP 地址。
- args: 启动参数,WebSocket 连接通常不需要参数,所以配置为空 JSON 对象 '{}'。
基本使用方法
- 首次配置 WiFi:
- 上电启动 ESP32 后,它会创建一个名为 'ESP32_XXXXXX' 的 WiFi 接入点 (AP)。
- 使用电脑或手机连接到该 WiFi 网络。
- 打开浏览器,访问地址 'http://192.168.4.1',进入 WiFi 配置页面。
- 在配置页面中填写你的 WiFi 网络名称 (SSID) 和密码,保存后 ESP32 会尝试连接到你的 WiFi 网络。
- 连接 MCP 服务器:
- 待 ESP32 连接到 WiFi 网络后,获取其在网络中的 IP 地址。
- 在 MCP 客户端中,根据 "服务器配置" 章节的说明,配置 MCP 服务器的连接信息,主要是将 'command' 字段设置为 'ws://ESP32_IP:9000',并将 'ESP32_IP' 替换为实际的 IP 地址。
- 启动 MCP 客户端,客户端会尝试通过 WebSocket 连接到 ESP32MCPServer。
- 使用 MCP 功能:
- 成功连接后,客户端可以发送 MCP 请求与服务器交互,例如:
- 发送 'initialize' 请求进行初始化。
- 发送 'resources/list' 请求获取可用资源列表。
- 发送 'resources/read' 请求读取指定资源的数据。
- 发送 'resources/subscribe' 请求订阅资源更新通知。
- 具体请求格式和资源 URI 需要参考 MCP 协议文档以及 ESP32MCPServer 具体实现的资源定义。
- 成功连接后,客户端可以发送 MCP 请求与服务器交互,例如:
请注意: 由于仓库状态为 "Not Compiling",实际使用中可能遇到编译错误或其他问题,需要具备一定的 ESP32 开发和调试能力。
信息
分类
桌面与硬件