Skip to main content
Glama
dshenaf

MCP MQTT Light Controller

by dshenaf

mcp-mqtt-light

一个基于 MCP 的 MQTT 智能灯控制示例项目,包含:

  • mqtt_light_controller.py:提供 MCP 工具(开关灯、调亮度),通过 MQTT 发布控制消息

  • mcp_pipe.py:把 MCP 的 stdio 与远端 WebSocket 端点进行双向转发,并支持按配置启动多个 MCP server

环境要求

  • Python 3.10+(建议)

安装

python -m pip install -r requirements.txt

配置

1) MCP Pipe 连接端点

mcp_pipe.py 通过环境变量 MCP_ENDPOINT 连接到 WebSocket 端点:

  • Linux/macOS:

export MCP_ENDPOINT="ws://localhost:8765"
  • Windows PowerShell:

$env:MCP_ENDPOINT = "ws://localhost:8765"

2) MQTT 连接参数(可选)

mqtt_light_controller.py 支持以下环境变量(也可在 .env 中设置):

  • MQTT_BROKER:MQTT Broker 地址(默认:b11f17c5.ala.cn-hangzhou.emqxsl.cn

  • MQTT_PORT:端口(默认:8883,TLS)

  • MQTT_CONTROL_TOPIC:控制主题(默认:smartlight/control

  • MQTT_STATUS_TOPIC:状态主题(默认:smartlight/status

  • MQTT_CLIENT_ID:客户端 ID(默认:mcp-light-controller

  • MQTT_USER / MQTT_PASSWORD:认证信息(默认空)

注意:当前 TLS 配置处于“忽略证书验证”的模式,适合本地/测试环境;生产环境建议启用证书校验。

运行

使用配置启动 MCP Server(推荐)

仓库内置 mcp_config.json 示例配置。

启动所有启用的 server:

python mcp_pipe.py

只启动某一个 server(配置名或脚本路径均可):

python mcp_pipe.py mqtt-light-controller

或:

python mcp_pipe.py mqtt_light_controller.py

直接启动 mqtt_light_controller(调试用)

python mqtt_light_controller.py

该进程会启动 MCP stdio server,并在首次运行时连接 MQTT Broker。

只想验证 MQTT 订阅能否收到消息(不启动 MCP stdio):

python mqtt_light_controller.py --mqtt-only

提供的工具

mqtt_light_controller.py 暴露的 MCP 工具:

  • control_light(light_state: str)on/off

  • adjust_brightness(brightness: int):亮度 0-100

测试

本项目使用标准库 unittest 做基础测试:

python -m unittest discover -s tests -v

也可以做一次基础语法/导入检查:

python -m compileall .
-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dshenaf/mcp-mqtt-light'

If you have feedback or need assistance with the MCP directory API, please join our Discord server