Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"openwrt-mcp-server": {
"command": "<see-readme>",
"args": []
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
openwrt-mcp-server is a lightweight and extensible MCP (Model Context Protocol) server designed to run on OpenWrt-based embedded routers and devices. It enables two-way communication between the device and external AI systems using MQTT and HTTP, with JSON-RPC 2.0 as the message format.
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in devops / cloud
MCP server for using the GitLab API
MCP Server for GCP environment for interacting with various Observability APIs.
⚡ A Simple / Speedy / Secure Link Shortener with Analytics, 100% run on Cloudflare.
MCP server for Datto SaaS Protection — M365/GWS backups, restores, seats.
MCP Security Weekly
Get CVE alerts and security updates for Openwrt Mcp Server and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
openwrt-mcp-server is a Rust-based MCP-style bridge for OpenWrt and Linux edge devices. Today it exposes a single-device JSON-RPC control surface over HTTP and MQTT. The long-term direction is to let the Rust server also run outside OpenWrt as a standalone fleet MCP service that can manage many OpenWrt devices through EdgePulse and other device adapters.
Current deployment modes:
warp.rumqttc.x-api-token header.ubus, with Linux fallback data from /proc, /sys, and ip -j.device.describe capability introspection for transports, commands, command risk metadata, and context collectors.schema/.src/context/collector.rs: Collects device context.src/context/registry.rs: Declares built-in context collectors and extension metadata.src/executor/command.rs: Dispatches allowlisted commands.src/executor/registry.rs: Declares command names, required args, and risk levels.src/http/routes.rs: Exposes authenticated HTTP JSON-RPC endpoints.src/mqtt/handler.rs: Handles MQTT subscription, dispatch, and response publishing.src/config/mod.rs: Loads and validates config.toml.src/logging.rs: Emits compact JSON log records.src/model/types.rs: Defines shared request/result/context types.schema/: Contains JSON Schema files for documented payload shapes.docs/edgepulse-integration-roadmap.md: Describes EdgePulse, fleet, RBAC, and multi-tenant plans.cargo build --release
cargo test
For OpenWrt deployment, cross-compile with the OpenWrt SDK or a musl target appropriate for the device.
Example config.toml:
[mqtt]
broker = "mqtt://localhost:1883"
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"
Validation currently rejects:
mqtt.broker, mqtt.client_id, or mqtt.topic_prefix.+ or #.http.listen_addr.http.port = 0.http.token when HTTP is enabled.All HTTP endpoints require:
x-api-token: <configured token>
Get current context:
curl -H 'x-api-token: change-me' \
http://127.0.0.1:8080/api/context
Describe server capabilities:
curl -H 'x-api-token: change-me' \
http://127.0.0.1:8080/api/describe
Execute an allowlisted command:
curl -H 'x-api-token: change-me' \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","method":"device.executeCommand","params":{"command":"get_context"},"id":"cmd-1"}' \
http://127.0.0.1:8080/api/cmd
Supported built-in commands are declared in src/executor/registry.rs.
Command topic:
{topic_prefix}/cmd
Response topic:
{topic_prefix}/resp
Example capability request:
{
"jsonrpc": "2.0",
"method": "device.describe",
"params": {},
"id": "describe-1"
}
Example command request:
{
"jsonrpc": "2.0",
"method": "device.executeCommand",
"params": {
"command": "restart_interface",
"args": {
"interface": "wan"
}
},
"id": "c
... [View full README on GitHub](https://github.com/morninglight-el/openwrt-mcp-server#readme)