openwrt-mcp-server

openwrt-mcp-server

morninglight-el

开发者工具
访问服务器

README

openwrt-mcp-server

openwrt-mcp-server 是一个轻量级且可扩展的 MCP (模型上下文协议) 服务器,旨在运行在基于 OpenWrt 的嵌入式路由器和设备上。它使用 MQTT 和 HTTP 实现设备与外部 AI 系统之间的双向通信,并采用 JSON-RPC 2.0 作为消息格式。

该服务器旨在为 AI 代理提供一个安全且结构化的接口,以便:

  • 查询实时设备上下文(网络、Wi-Fi、系统指标)
  • 远程执行系统级命令
  • 支持实时命令响应和上下文流式传输

✨ 特性

  • 使用 Rust 构建,以实现高性能和安全性
  • 支持 MQTT (通过 rumqttc) 和 HTTP (通过 warp)
  • 兼容 JSON-RPC 2.0,便于 AI 模型集成
  • 模块化架构,便于未来扩展
  • 完整的 TOML 配置,所有字段都在代码中实际使用(见下文)
  • 安全的 HTTP API,采用基于令牌的身份验证(通过 x-api-token 标头)
  • 所有代码注释和文档均为英文,便于国际协作
  • 编译干净,无警告(所有配置字段均已使用)
  • 低内存占用,适合嵌入式 OpenWrt 目标

🌎 使用场景

  • AI 驱动的家庭网关监控和编排
  • 边缘管理的设备群上下文报告
  • 通过 AI 实现自动恢复和自我修复的网络策略
  • 与 LLM 和编排管道(例如,n8n、LangChain)集成

🛠️ 组件

  • 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"
  • 所有配置字段都已加载并在代码库中使用。
  • MQTT 使用 client_id、username、password 和 topic_prefix 进行连接和主题管理。
  • HTTP 服务器使用 enable、listen_addr、port 和 token 进行安全的 API 访问。

🚀 路线图

  • [x] 初始 MQTT + HTTP 双协议支持
  • [x] 完整的 TOML 配置,所有字段都在代码中使用
  • [x] JSON-RPC 2.0 命令和上下文模式(MQTT/HTTP 中的分发和响应逻辑)
  • [x] 安全的 HTTP API,采用基于令牌的身份验证
  • [x] 所有代码注释和文档均为英文
  • [x] 编译干净,无警告
  • [ ] 带有 UCI/UBUS/ifstatus 集成的上下文收集器
  • [ ] 设备能力自省 (device.describe)
  • [ ] 用于实时控制的 WebSocket 传输层
  • [ ] 命令允许列表和沙盒
  • [ ] 用于新命令模块的插件式可扩展性
  • [ ] 流式遥测指标通道(例如,/metrics
  • [ ] 用于测试/调试命令的 CLI 界面
  • [ ] 用于外部编排器的可选 gRPC 支持
  • [ ] 基于 JSON Schema 的输入/输出验证
  • [ ] OTA 更新界面(可选集成)
  • [ ] 用于低带宽 MQTT 的上下文增量压缩
  • [ ] 通过 syslog 进行持久日志和审计跟踪
  • [ ] 安全启动检测和系统完整性报告
  • [ ] 用于 LLM 兼容性的多语言上下文格式
  • [ ] 用于重复命令的调度程序支持

🏆 实现说明

该项目由 Cline 实现和重构,Cline 是由 OpenAI GPT-4 Turbo 模型提供支持的高级 AI 软件工程师。
所有代码、配置和文档改进(包括完整的配置使用、安全的 API 和干净的编译)均由 Cline 设计和交付(由 OpenAI GPT-4 Turbo 执行)。
如果您正在阅读此 README,您将见证由 GPT-4 Turbo 模型实现的 AI 驱动软件工程的强大功能和精确性。

推荐服务器

Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
MCP Package Docs Server

MCP Package Docs Server

促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。

精选
本地
TypeScript
Claude Code MCP

Claude Code MCP

一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。

精选
本地
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。

精选
本地
JavaScript
mermaid-mcp-server

mermaid-mcp-server

一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。

精选
JavaScript
Jira-Context-MCP

Jira-Context-MCP

MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

精选
TypeScript
Linear MCP Server

Linear MCP Server

一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

精选
JavaScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Curri MCP Server

Curri MCP Server

通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。

官方
本地
JavaScript