iStoreOS MCP Server
Version: 0.1.0
Author: beck-8
Date: April 02, 2026
License: MIT License
概览
MCP server for iStoreOS/OpenWRT router monitoring (read-only). Connects via SSH or HTTP/ubus API. Configure connection parameters via environment variables such as ISTOREOS_HOST, ISTOREOS_SSH_PASSWORD, ISTOREOS_SSH_KEY, ISTOREOS_HTTP_PASSWORD.
iStoreOS/OpenWRT 路由器只读监控 MCP 服务器。
通过 SSH 或 HTTP/ubus API 连接路由器,为 AI 助手提供路由器状态数据的读取能力。可对接 Claude Desktop、Claude Code、小龙虾等 MCP 客户端,实现在手机 / 电脑上通过自然语言查看路由器状态、分析日志、排查网络问题。
功能特性
- 31 个只读工具,覆盖系统、网络、日志、服务、常见插件
- 双连接模式:SSH(全功能)+ HTTP/ubus API
- 插件感知:自动检测 OpenClash、Passwall、AdGuardHome、Samba、DDNS、FRP 等常见插件状态
- 安全设计:只读操作,不修改路由器配置;输入参数经过校验和转义
- 兼容性好:支持 iStoreOS、OpenWRT 21.02+ 及其他基于 OpenWRT 的系统
快速开始
安装
git clone https://github.com/beck-8/istoreos-mcp.git
cd istoreos-mcp
pip install -e .
配置
通过环境变量配置连接参数:
| 变量 | 默认值 | 说明 |
|---|---|---|
ISTOREOS_HOST |
192.168.1.1 |
路由器 IP 地址 |
ISTOREOS_CONNECTION_TYPE |
ssh |
连接方式:ssh 或 http |
ISTOREOS_SSH_PORT |
22 |
SSH 端口 |
ISTOREOS_SSH_USER |
root |
SSH 用户名 |
ISTOREOS_SSH_PASSWORD |
- | SSH 密码 |
ISTOREOS_SSH_KEY |
- | SSH 私钥文件路径 |
ISTOREOS_HTTP_PORT |
80 |
HTTP 端口 |
ISTOREOS_HTTP_PASSWORD |
- | rpcd/LuCI 密码 |
使用示例
在 claude_desktop_config.json 中添加:
{
"mcpServers": {
"istoreos": {
"command": "istoreos-mcp",
"env": {
"ISTOREOS_HOST": "192.168.1.1",
"ISTOREOS_CONNECTION_TYPE": "ssh",
"ISTOREOS_SSH_PASSWORD": "your-password"
}
}
}
}
直接运行:
export ISTOREOS_HOST=192.168.1.1
export ISTOREOS_SSH_PASSWORD=your-password
istoreos-mcp
连接方式说明
SSH (推荐)
所有 31 个工具均可用。OpenWRT 默认开启 SSH,无需额外配置。
支持密码和私钥两种认证方式:
# 密码认证
export ISTOREOS_SSH_PASSWORD=your-password
# 私钥认证
export ISTOREOS_SSH_KEY=~/.ssh/id_rsa
HTTP/ubus
通过 rpcd JSON-RPC 接口连接。仅以下工具可用:
get_system_infoget_network_interfacesget_wan_statusget_wifi_status
其他依赖 shell 命令的工具会返回提示信息,建议改用 SSH 连接。
可用工具 (31 个)
系统状态 (6)
| 工具 | 说明 |
|---|---|
get_system_info |
固件版本、板型、内核、架构 |
get_cpu_usage |
CPU 使用率、负载均值、核心数 |
get_memory_usage |
内存总量 / 已用 / 可用 / 缓存 |
get_storage_usage |
磁盘 / 闪存各分区使用率 |
get_system_uptime |
系统运行时间 |
get_cpu_temperature |
CPU/SoC 温度 |
网络信息 (6)
| 工具 | 说明 |
|---|---|
get_network_interfaces |
所有网络接口状态和流量计数 |
get_wan_status |
WAN 接口:IP、网关、DNS、连接类型 |
get_connected_devices |
已连接设备列表 (ARP + DHCP 合并) |
get_dhcp_leases |
DHCP 租约:MAC、IP、主机名、过期时间 |
get_dns_config |
DNS 上游服务器、域名配置 |
get_wifi_status |
WiFi 状态:SSID、信道、已连客户端 |
日志与流量 (5)
| 工具 | 说明 |
|---|---|
get_system_log |
系统日志,支持 lines 参数限制行数 |
get_kernel_log |
内核日志 (dmesg) |
get_traffic_stats |
各接口 rx/tx 字节、包数、错误、丢包 |
get_active_connections |
活跃连接追踪 (conntrack),支持 limit 参数 |
get_firewall_rules |
防火墙规则 (nftables/iptables) |
服务与系统管理 (8)
| 工具 | 说明 |
|---|---|
get_installed_packages |
已安装软件包,支持 filter_str 过滤 |
get_service_status |
所有 init.d 服务的启用 / 运行状态 |
get_docker_status |
Docker 版本、容器列表、磁盘占用 |
get_block_devices |
块设备、挂载点、文件系统、RAID 状态 |
get_process_list |
运行中进程 (PID / 用户 / 内存 / CPU) |
get_port_forwards |
端口转发 / NAT redirect 规则 |
get_crontab |
定时任务列表 |
get_istoreos_mode |
iStoreOS 专属:固件版本、iStore 插件、overlay 空间 |
常见插件状态 (6)
| 工具 | 说明 |
|---|---|
get_openclash_status |
OpenClash:运行状态、代理模式、实时流量、连接数、日志 |
get_passwall_status |
Passwall/Passwall2:代理模式、DNS 模式、节点列表 |
get_adguardhome_status |
AdGuardHome:查询总数 / 拦截数 / 拦截率、热门域名 Top10 |
get_samba_status |
Samba:共享目录列表、已连接客户端 |
get_ddns_status |
DDNS:配置的服务、域名、更新状态 |
get_frp_status |
FRP:frpc/frps 运行状态、服务器配置、代理隧道 |
项目结构
src/istoreos_mcp/
├── server.py # MCP 服务入口,注册所有工具
├── config.py # 环境变量配置
├── connection/
│ ├── base.py # 连接抽象接口
│ ├── ssh.py # SSH 连接 (asyncssh)
│ ├── http.py # HTTP/ubus JSON-RPC 连接 (httpx)
│ └── factory.py # 连接工厂
└── tools/
├── system.py # 系统状态工具
├── network.py # 网络信息工具
├── logs.py # 日志与流量工具
├── services.py # 服务管理工具
└── plugins.py # 常见插件状态工具
兼容性
| 系统 | 支持状态 |
|---|---|
| iStoreOS (所有版本) | 完全支持 |
| OpenWRT 21.02+ | 完全支持 |
| OpenWRT 19.07 | 基本支持 (部分 nftables 工具不可用) |
| 其他基于 OpenWRT 的系统 | 基本支持 |
License
English
A read-only MCP server for monitoring iStoreOS/OpenWRT routers.
Connects to your router via SSH or HTTP/ubus API, providing 31 read-only tools for AI assistants to query system status, network info, logs, traffic, services, and common plugin status (OpenClash, Passwall, AdGuardHome, Samba, DDNS, FRP).
Quick Start
pip install -e .
export ISTOREOS_HOST=192.168.1.1
export ISTOREOS_SSH_PASSWORD=your-password
istoreos-mcp
Compatibility
- iStoreOS (all versions)
- OpenWRT 21.02+
- Other OpenWRT-based distributions