智能灯光控制服务器

一个基于Python/FastAPI的MCP服务器,通过语音命令控制物理LED灯(ESP8266 + WS2812B NeoPixel环 + SSD1306 OLED)的AI代理工具。

  • by bhupendra1011
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 bhupendra1011/iot_mcp_server

使用说明

物联网智能灯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