使用说明
物联网智能灯MCP服务器
Python/FastAPI MCP(模型上下文协议)服务器,使AI代理能够通过语音命令控制物理LED灯(ESP8266+WS2812B NeoPixel环+SD1306 OLED)。
建筑
Agora Convo AI Agent → MCP Server (this) → ESP8266 Device
(tool_call) (JSON-RPC 2.0) (HTTP REST)
工具
| 工具 | 说明 |
|---|---|
set_light |
打开/关闭灯,设置颜色和亮度 |
get_light_status |
查询当前灯光状态 |
set_color |
更改灯光颜色(按名称或十六进制) |
set_brightness |
调整亮度(0-100%) |
display_text |
在OLED显示屏上显示文本 |
快速开始
1.设置
cp .env.example .env
# Edit .env — set DEVICE_IP to your ESP8266 IP address
pip install -r requirements.txt
2.跑步
# With real hardware
python server.py
# Without hardware (mock mode)
MOCK_MODE=true python server.py
服务器启动时间 http://localhost:8000
3.测试
chmod +x test_server.sh
./test_server.sh
端点
| 端点 | 方法 | 描述 |
|---|---|---|
/mcp |
POST | HTTP传输——JSON-RPC 2.0 |
/sse |
GET | SSE传输——持久连接 |
/sse/message |
POST | 向SSE会话发送消息 |
/health |
GET | 服务器健康检查 |
/device/health |
GET | 检查ESP8266设备连接 |
使用Agora Convo AI
在应用程序的代理设置中→ LLM → MCP服务器:
- 名字:
iot-light-controller - 端点:
http://localhost:8000/sse(苏格兰和南方交易所)或http://localhost:8000/mcp(HTTP) - 运输:SSE(推荐)
- 启用:ON
支持的颜色
红色、绿色、蓝色、黄色、青色、品红色、白色、暖白色、橙色、紫色、粉色——或任何十六进制代码(#FF0000)
部署
Render.com
# Uses render.yaml — just connect repo and set DEVICE_IP
铁路
# Connect repo, set DEVICE_IP env var
备注:对于云部署,服务器必须连接到ESP8266。将ngrok/Cloudflare隧道用于本地设备,或设置
MOCK_MODE=true用于无硬件的演示。
发展
# Run with auto-reload
uvicorn server:app --reload --port 8000
# Mock mode (no hardware needed)
MOCK_MODE=true uvicorn server:app --reload --port 8000