Command Palette

Search for a command to run...

UnylyUnyly
Browse all

OpenWrt Controller

FreeNot checked

Enables management and control of OpenWrt devices via a simple API, including reboot, status checks, log reading, and LED control.

GitHubEmbed

About

Enables management and control of OpenWrt devices via a simple API, including reboot, status checks, log reading, and LED control.

README

This project provides a Model Context Protocol (MCP) server for managing OpenWrt devices. It allows you to interact with and control an OpenWrt router through a simple API.

The server utilizes fastmcp to expose OpenWrt functionalities as tools that can be called remotely.

1. Prerequisites

For the server to have full functionality, a custom LuCI RPC script must be placed on the target OpenWrt device.

Install sys.lua on OpenWrt

The sys.lua file in this repository extends the capabilities of the LuCI JSON-RPC interface. You must copy this file to your OpenWrt router for tools like system_status, network_status, and set_led_state to work.

  1. Copy the file to your OpenWrt device: Use scp or any other file transfer method to copy sys.lua to your router.

    scp sys.lua root@<your_openwrt_ip>:/usr/lib/lua/luci/sys.lua
    
  2. Verify Permissions: Ensure the file has the correct permissions.

    ssh root@<your_openwrt_ip> "chmod 644 /usr/lib/lua/luci/sys.lua"
    

2. Installation

You can install this package directly from PyPI.

pip install openwrt-mcp

3. Configuration

The server is configured through environment variables. You must set the following before running the server:

  • OPENWRT_HOST: The full URL of your OpenWrt device (e.g., http://192.168.1.1).
  • OPENWRT_PASSWORD: The login password for your OpenWrt device.
  • OPENWRT_USERNAME: (Optional) The login username. Defaults to root.

Example:

export OPENWRT_HOST="http://192.168.1.1"
export OPENWRT_PASSWORD="your_secret_password"

4. Usage

Once installed and configured, you can start the MCP server with the following configuration:

{
    "mcpServers":{
        "openwrt-mcp":{
            "command":"uvx",
            "args": [
                "openwrt-mcp"
            ],
            "env":{
                "OPENWRT_HOST":"192.168.0.1",
                "OPENWRT_PASSWORD":"root",
                "OPENWRT_USERNAME":"12345678"
            }
        }
    }
}

The server will start and listen for incoming connections via standard I/O.

Available Tools

The following tools are exposed by the MCP server:

  • reboot(): Reboots the OpenWrt device.
  • system_status(): Retrieves system and board information.
  • network_status(): Gets the status of all network interfaces.
  • read_log(): Reads the system log (logread).
  • set_led_state(state: str): Sets the state of the "Green" LED. state can be 'on' or 'off'.
  • summary_log(): Provides a structured prompt template for an AI to summarize the output of read_log().

from github.com/dbshadow/openwrt-mcp

Install OpenWrt Controller in Claude Desktop, Claude Code & Cursor

Recommended · one command, every IDE
unyly install openwrt-mcp-controller

Installs into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.

First time? Get the CLI: curl -fsSL https://unyly.org/install | sh

Or configure manually

Run in your terminal:

claude mcp add openwrt-mcp-controller -- uvx openwrt-mcp

FAQ

Is OpenWrt Controller MCP free?

Yes, OpenWrt Controller MCP is free — one-click install via Unyly at no cost.

Does OpenWrt Controller need an API key?

No, OpenWrt Controller runs without API keys or environment variables.

Is OpenWrt Controller hosted or self-hosted?

A hosted option is available: Unyly runs the server in the cloud, no local setup required.

How do I install OpenWrt Controller in Claude Desktop, Claude Code or Cursor?

Open OpenWrt Controller on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare OpenWrt Controller with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs