openwrt-mcp-server 是一个轻量级且可扩展的 MCP(模型上下文协议)服务器,专为在基于 OpenWrt 的嵌入式路由器和设备上运行而设计。它借助 MQTT 和 HTTP 实现设备与外部 AI 系统之间的双向通信,采用 JSON-RPC 2.0 作为消息格式。
此服务器旨在为 AI 代理提供一个安全且结构化的接口,用于:
rumqttc)和 HTTP(通过 warp)。x-api-token 标头)。context/collector.rs:从 OpenWrt 收集运行时状态(ubus、uci、ifstatus)。mqtt/handler.rs:处理 MQTT 连接、身份验证、主题订阅(使用所有配置字段),并调度/响应 JSON-RPC 命令。http/routes.rs:提供用于状态和命令输入的 RESTful API,所有端点均需基于令牌的身份验证。executor/command.rs:执行经过验证的系统级指令。config/mod.rs:加载并验证完整的 .toml 配置,包括所有 MQTT/HTTP 字段。遵循 JSON-RPC 2.0。有关完整消息模式,请参阅 REQUIREMENTS.md。
cargo build --release
推荐进行 OpenWrt(musl)交叉编译以进行部署。
示例 config.toml(所有字段均为必需且会被使用):
[mqtt]
broker = "mqtts://iot.example.com:8883"
client_id = "openwrt-one"
username = "mcp-user"
password = "mcp-pass"
topic_prefix = "mcp/device/openwrt-one"
[http]
enable = true
listen_addr = "0.0.0.0"
port = 8080
token = "your-api-token"
device.describe)。/metrics)。