【技术文档摘要】
这是一个针对ESP32微控制器的模型上下文协议(MCP)实现,提供基于WebSocket的接口用于资源发现和监控。
创建于Claude 3.5 Sonet的提交日期(带有自动格式化等显而易见的修复)

flowchart TD
Start[启动应用程序] --> Setup[初始化]
Setup -->|初始化文件系统| InitFS[初始化LittleFS]
Setup -->|启动网络| StartNetwork[初始化网络管理器]
Setup -->|创建任务| CreateTasks[创建并分配任务]
subgraph 网络
StartNetwork --> APCheck[检查AP或连接模式]
APCheck -->|存在凭证| Connect[连接到WiFi]
APCheck -->|无凭证| StartAP[启动接入点]
Connect --> NetworkReady[网络就绪]
StartAP --> NetworkReady
end
subgraph MCP服务器
MCP[启动MCP服务器] --> HandleClient[处理客户端连接]
HandleClient --> HandleRequest[处理请求]
HandleRequest -->|WebSocket事件| WebSocket[处理WebSocket]
HandleRequest -->|HTTP端点| HTTP[处理HTTP请求]
end
subgraph 指标
self[启动指标系统] --> InitMetrics[初始化系统指标]
InitMetrics --> CollectMetrics[定期收集指标]
CollectMetrics --> SaveMetrics[将指标保存到文件系统]
end
subgraph 日志
self[启动uLogger] --> LogMetrics[记录指标数据]
LogMetrics --> CompactLogs[必要时压缩日志]
CompactLogs -->|轮转日志| LogRotation
end
CreateTasks -->|网络任务| NetworkTask[在内核上运行网络任务]
CreateTasks -->|MCP任务| MCPTask[在内核上运行MCP服务器任务]
NetworkTask --> 网络
MCPTask --> MCP服务器
MCP服务器 --> 指标
指标 --> 日志
git clone https://github.com/yourusername/esp32-mcp-server.git
cd esp32-mcp-server
pio pkg install
pio run -t uploadfs
pio run -t upload
使用WebSocket连接到端口9000上的MCP服务器:
const ws = new WebSocket('ws://YOUR_ESP32_IP:9000');
// 初始化连接
ws.send(JSON.stringify({
jsonrpc: "2.0",
method: "initialize",
id: 1
}));
// 列出可用资源
ws.send(JSON.stringify({
jsonrpc: "2.0",
method: "resources/list",
id: 2
}));
运行测试套件:
# 运行所有测试
pio test -e native
# 运行特定测试
pio test -e native -f test_request_queue
# 带覆盖率运行
pio test -e native --coverage
git checkout -b feature/amazing-feature)git commit -m '添加神奇功能')git push origin feature/amazing-feature)本项目采用MIT许可证 - 详情请参阅LICENSE文件。