OpenWRT SSH MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OPENWRT_HOST | No | The IP address or hostname of the OpenWRT router | |
| OPENWRT_USER | No | SSH username for the OpenWRT router (typically 'root') | |
| OPENWRT_KEY_FILE | No | Path to the SSH private key file for authentication (e.g., C:\Users\YOUR_USER\.ssh\openwrt_router) | |
| OPENWRT_PASSWORD | No | SSH password for the OpenWRT router |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| openwrt_test_connectionB | Test SSH connection to the OpenWRT router |
| openwrt_execute_commandA | Execute a validated shell command on the OpenWRT router. Commands are validated against a security whitelist. Use this for commands not covered by other specialized tools. |
| openwrt_get_system_infoA | Get comprehensive system information including board details, uptime, memory usage, and CPU load |
| openwrt_restart_interfaceC | Restart a network interface (e.g., wan, lan, wlan0) |
| openwrt_get_wifi_statusB | Get WiFi status including connected clients and signal strength |
| openwrt_list_dhcp_leasesB | List all DHCP leases (connected devices with IP/MAC addresses) |
| openwrt_get_firewall_rulesB | Get current firewall rules (iptables) |
| openwrt_read_configA | Read a UCI configuration file. Allowed configs: network, wireless, dhcp, firewall, system |
| openwrt_thread_get_stateA | Get current OpenThread network state (disabled, detached, child, router, leader) |
| openwrt_thread_create_networkB | Create a new Thread network with specified parameters. This will initialize a new Thread network, configure it, and start it. Returns network credentials including network key and dataset. |
| openwrt_thread_get_datasetA | Get active Thread dataset (network credentials). Returns dataset in both human-readable and hex format for sharing. |
| openwrt_thread_get_infoA | Get comprehensive Thread network information including state, channel, PAN ID, network name, IP addresses, neighbors, and children. |
| openwrt_thread_enable_commissionerB | Enable Thread Commissioner to allow new devices to join the network. Devices can join using the provided passphrase. |
| openwrt_opkg_updateA | Update package lists from repositories (opkg update) |
| openwrt_opkg_installC | Install a package using opkg |
| openwrt_opkg_removeC | Remove a package using opkg |
| openwrt_opkg_list_installedB | List all installed packages on the router |
| openwrt_opkg_infoC | Get detailed information about a specific package |
| openwrt_opkg_list_availableB | List available packages from repositories (limited to 500 packages) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 19 tools
Every tool has a clearly distinct purpose targeting specific resources and actions in the OpenWRT domain. For example, opkg tools handle package management, Thread tools manage Thread networking, and system tools cover firewall, DHCP, WiFi, etc., with no overlapping functionality. The general execute_command tool is explicitly reserved for commands not covered by specialized tools, preventing confusion.
All tool names follow a consistent verb_noun pattern with the prefix 'openwrt_' (e.g., openwrt_get_firewall_rules, openwrt_opkg_install, openwrt_thread_create_network). This uniform naming convention makes the tool set predictable and easy to navigate, with no deviations in style or structure.
With 19 tools, the count is slightly high but reasonable for the comprehensive scope of OpenWRT router management, covering system info, networking, package management, and Thread networking. It avoids bloat by focusing on core operations, though it could be streamlined by merging some related tools without losing functionality.
The tool surface provides complete coverage for OpenWRT management, including CRUD operations for packages (install, remove, list), system monitoring (info, firewall, WiFi, DHCP), network configuration (restart interface, read config), and Thread networking lifecycle (create, enable, get info). No obvious gaps exist; agents can perform end-to-end tasks without dead ends.