mcpField
A
Asuswrt Mcp Server

Asuswrt Mcp Server

本地服务
github.com/teefloo开发工具326 周前更新

关于 Asuswrt Mcp Server

Asuswrt Mcp Server 通过 SSH 提供 AsusWRT 和 AsusWRT-Merlin 路由器的监控与管理接口。它包含只读状态工具,以及要求确认并支持预览的受保护修改操作。

主要功能

  1. 01读取路由器健康、网络和客户端状态
  2. 02检查无线、服务、存储和安全状态
  3. 03监控 VPN 与管理设置
  4. 04通过安全限制修改允许的路由器设置
  5. 05预览修改并隐藏敏感数据

适用场景

  1. 01检查路由器健康状况和连接客户端
  2. 02查看无线网络和 VPN 配置
  3. 03管理 DHCP、访客 Wi-Fi 或端口转发
  4. 04预览受保护的路由器设置变更

MCP 相关

它通过 SSH 向 MCP 客户端提供路由器监控和受保护的管理工具。操作限于允许列表;修改需明确确认,并可预览。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"asuswrt": {
"command": "uvx",
"args": [
"asuswrt-mcp"
],
"env": {
"ASUSWRT_HOST": "<ASUSWRT_HOST>",
"ASUSWRT_SSH_USERNAME": "<ASUSWRT_SSH_USERNAME>",
"ASUSWRT_SSH_PASSWORD": "<ASUSWRT_SSH_PASSWORD>",
"ASUSWRT_SSH_KEY_FILE": "<ASUSWRT_SSH_KEY_FILE>",
"ASUSWRT_ALLOW_MUTATIONS": "<ASUSWRT_ALLOW_MUTATIONS>"
}
}
}
}
启动命令uvx asuswrt-mcp
需要配置的环境变量
ASUSWRT_HOSTRouter IP address (e.g., 192.168.1.1)
ASUSWRT_SSH_USERNAMESSH username for router authentication
ASUSWRT_SSH_PASSWORD密钥SSH password for router authentication
ASUSWRT_SSH_KEY_FILE密钥Path to SSH private key file (alternative to password)
ASUSWRT_ALLOW_MUTATIONSEnable mutation tools (default: false)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiasuswrt-mcp0.1.1

工具

47

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

AsusWRT MCP 服务

Python 3.11+ MIT License Project Status: Active

mcp-name: io.github.teefloo/asuswrt-mcp

通过 SSH 安全、可控地管理 AsusWRT 和 AsusWRT-Merlin 路由器的 Model Context Protocol(MCP)服务。

概览

此 MCP 服务为 AI 助手(如 Claude、Cursor 等)提供安全的接口,用于监控和管理 AsusWRT 路由器。它仅通过 SSH 使用允许列表中的操作,不会执行任意命令、修改固件或恢复出厂设置。

功能

只读监控(42 个工具)
类别工具
身份与运行状况路由器型号、固件版本、运行时间、负载、内存
网络LAN/WAN 详情、DNS 配置、IPv6 状态、路由表
客户端已连接客户端、DHCP 租约、ARP 邻居
无线网络无线电状态、SSID、访客网络、各频段的客户端数量
服务运行中的进程、开放端口、cron 作业
存储USB 设备、挂载、分区、文件系统用量
安全UPnP、DDNS、Samba 状态、conntrack 用量
VPNOpenVPN 服务端、WireGuard、VPN 客户端配置文件
管理Web 管理端口、SSH/telnet 访问设置
诊断SSH TCP/横幅/身份验证诊断、配置快照
修改工具(带安全防护)

所有修改工具都需要:

  • confirm: true 参数
  • ASUSWRT_ALLOW_MUTATIONS=true 环境变量
  • 支持使用 dry_run: true 预览更改
工具说明
asuswrt_restart_service重启允许列表中的服务(httpd、firewall、wireless、dnsmasq 等)
asuswrt_dhcp_server启用/禁用 DHCP 服务端
asuswrt_upnp启用/禁用 UPnP
asuswrt_radio启用/禁用 Wi-Fi 无线电频段
asuswrt_guest_wifi启用/禁用访客 Wi-Fi
asuswrt_guest_lan_access切换访客 Wi-Fi 的 LAN 访问权限
asuswrt_port_forwarding列出、添加、移除、启用/禁用端口转发规则
asuswrt_vpn_server启用/禁用 OpenVPN 服务端
asuswrt_parental_access列出、阻止、解除阻止、移除家长控制规则
asuswrt_parental_block_all切换全部阻止模式
asuswrt_dhcp_reservation列出、添加、移除 DHCP 静态预留
安全模型
  • 不执行任意 SSH 命令:仅通过 NVRAM 和服务调用执行允许列表中的命令
  • 不执行固件操作:不访问闪存、重置或引导加载程序
  • 隐去机密信息:工具响应绝不暴露密码和敏感数据
  • 支持试运行:每项修改都可在应用前预览
  • 需要确认:修改必须显式设置 confirm=True
  • 仅使用 SSH 传输:不暴露路由器的 Web API

前提条件

  • Python 3.11+
  • 已启用 SSH 访问的 AsusWRT 或 AsusWRT-Merlin 路由器
  • MCP 客户端与路由器之间的网络连接

安装

1. 克隆并设置
git clone https://github.com/Teeflo/asuswrt-mcp.git
cd asuswrt-mcp

# Create virtual environment
python -m venv .venv

# Activate (Linux/macOS)
source .venv/bin/activate

# Activate (Windows)
.venv\Scripts\activate

# Install dependencies
pip install -e .
2. 配置环境
# Copy example configuration
cp .env.example .env

# Edit with your router credentials
# Use your favorite editor:
notepad .env        # Windows
nano .env           # Linux/macOS
3. 配置 .env
# Required: Router connection
ASUSWRT_HOST=192.168.1.1
ASUSWRT_SSH_USERNAME=admin
ASUSWRT_SSH_PASSWORD=your_password

# Optional: SSH key authentication
# ASUSWRT_SSH_KEY_FILE=~/.ssh/id_rsa

# Optional: Enable mutations (disabled by default)
# ASUSWRT_ALLOW_MUTATIONS=true

# Optional: Connection settings
# ASUSWRT_SSH_PORT=22
# ASUSWRT_TIMEOUT_SECONDS=10

使用方法

运行 MCP 服务
# Standard stdio mode
python -m asuswrt_mcp.server

# Or use the entry point
asuswrt-mcp
在 Claude Desktop / Cursor 中配置

将以下内容添加到 claude_desktop_config.json:

{
  "mcpServers": {
    "asuswrt-mcp": {
      "command": "C:\\path\\to\\asuswrt-mcp\\.venv\\Scripts\\python.exe",
      "args": ["-m", "asuswrt_mcp.server"],
      "env": {
        "ASUSWRT_HOST": "192.168.1.1",
        "ASUSWRT_SSH_USERNAME": "admin",
        "ASUSWRT_SSH_PASSWORD": "your_password"
      }
    }
  }
}
使用 npx Inspector(开发)
npx @modelcontextprotocol/inspector python -m asuswrt_mcp.server

开发

运行测试
pip install -e ".[dev]"
pytest
运行实时路由器集成测试
ASUSWRT_TEST_ROUTER=1 pytest

项目结构

asuswrt-mcp/
├── src/asuswrt_mcp/
│   ├── server.py          # FastMCP entrypoint & tool definitions
│   ├── service.py         # Business logic & router operations
│   ├── config.py          # Settings management
│   ├── clients/
│   │   └── ssh.py         # SSH client wrapper
│   ├── nvram.py           # NVRAM parsing utilities
│   ├── ssh_parsers.py     # Output parsers for SSH commands
│   ├── security.py        # Mutation guards & redaction
│   ├── validators.py      # Input validation
│   ├── responses.py       # Tool response formatting
│   ├── errors.py          # Custom exceptions
│   └── serialization.py   # Safe serialization
├── tests/                 # Test suite (69 tests)
├── .env.example           # Example configuration
├── pyproject.toml         # Project metadata
└── README.md              # This file

许可证

MIT License - 详情请参见 LICENSE。

致谢

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。