用途
Webmin MCP Server 是一个 MCP(Model Context Protocol)服务器,为 Claude 提供通过 Webmin 管理界面操作 Linux 系统的工具。它借助 Webmin 的 XML-RPC API 实现对远程 Linux 服务器的集中管理,使 Claude 能够以自然语言方式执行系统管理任务。
主要能力
- 多服务器支持:通过用户友好的别名管理多个 Webmin 服务器。
- 系统监控:系统信息、内存、磁盘、网络和进程状态。
- 服务管理:启动、停止、重启、启用和禁用服务。
- 用户与组管理:创建、修改和删除系统用户与组。
- 计划任务:查看、创建、编辑和删除 cron 任务。
- 包管理:包信息与可用更新。
- 文件操作:读取、写入、复制、重命名和删除远程文件。
- 存储:SMART 磁盘健康监控和 LVM 卷管理。
- 安全:Fail2ban jail 状态与被封禁 IP 管理。
- 数据库:MySQL 数据库、用户和服务器状态。
- Webmin ACL:管理 Webmin 用户账户和模块权限。
- 磁盘配额:监控并设置用户和组的磁盘配额限制。
- 审计与备份:Webmin 操作日志、SSH 配置和配置备份。
- 安全框架:带安全模式的分级安全系统,防止危险操作。
使用方式
安装(二选一)
从源码安装:
git clone https://github.com/gjenkins20/webmin-mcp-server.git
cd webmin-mcp-server
pip install -e .
使用 Docker:
docker pull gjenkins20/webmin-mcp-server
配置
创建 webmin-servers.json:
{
"default_server": "my-server",
"servers": {
"my-server": {
"host": "192.168.1.100",
"port": 10000,
"username": "admin",
"password": "your-password",
"use_https": true,
"verify_ssl": false,
"safe_mode": true
}
}
}
添加到 Claude Desktop(claude_desktop_config.json)
从源码:
{
"mcpServers": {
"webmin": {
"command": "python",
"args": ["-m", "src.server"],
"cwd": "/path/to/webmin-mcp-server",
"env": {
"WEBMIN_CONFIG_FILE": "/path/to/webmin-servers.json"
}
}
}
}
使用 Docker:
{
"mcpServers": {
"webmin": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-v", "/path/to/webmin-servers.json:/app/webmin-servers.json:ro",
"gjenkins20/webmin-mcp-server"
]
}
}
}
前提条件
- 运行中的 Webmin 实例(通常监听 10000 端口)。
- 具有适当权限的 Webmin 凭据。
Webmin 服务器设置
MCP 服务器使用 Webmin 的 XML-RPC API,需确保 Webmin 服务器已配置:
- 服务账户预配:Webmin 2.650+(推荐)在 Webmin -> Webmin Users 中创建专用的 RPC/API-only 账户,该账户类型专为此类自动化设计,完全禁止浏览器/模块访问,且不受下文双因素限制影响。较旧版本的 Webmin:在 Webmin -> Webmin Users ->(你的用户)中启用 "Can accept RPC calls"。
- 双因素认证注意事项:Webmin 2.640+ 会拒绝启用了 2FA 的账户的 RPC Basic-Auth 请求,RPC 调用会以通用 401/403 失败。如果在 Webmin 用户上启用了 2FA,请为此 MCP 服务器使用专用的 RPC/API-only 账户,而非已注册 2FA 的账户。
- 安装 XML::Parser:必须安装 Perl XML::Parser 模块:
# Debian/Ubuntu
sudo apt install libxml-parser-perl
# RHEL/CentOS
sudo yum install perl-XML-Parser
- 模块访问:授予用户访问所需模块的权限(System Status、Bootup and Shutdown、Users and Groups、Scheduled Cron Jobs、Network Configuration)。
- RPC 超时(可选):对于读写大文件的工具,Webmin 2.620+ 有配置选项可提高默认 RPC 超时(Webmin Configuration -> Advanced Options)。如果大文件操作出现超时,可增大该值。
多服务器配置(推荐)
创建 webmin-servers.json 文件以管理多个 Webmin 服务器。完整示例见 webmin-servers.example.json。
配置来源(优先级顺序):
WEBMIN_CONFIG_FILE环境变量——JSON 配置文件路径WEBMIN_SERVERS_JSON环境变量——内联 JSON 字符串./webmin-servers.json——当前目录下的本地文件~/.config/webmin-mcp/servers.json——用户配置目录- 遗留
WEBMIN_*环境变量——单服务器(创建 "default" 别名)
单服务器配置(遗留)
对于单个服务器,设置环境变量,或创建 .env 文件(参见 .env.example)。
使用多服务器
在多服务器配置下,所有工具都接受可选的 server 参数。使用 list_webmin_servers 查看所有已配置服务器及其别名。
可用工具
所有工具都接受可选的 server 参数以指定目标 Webmin 服务器。详细参数和响应格式见完整 API 参考。
安全框架
服务器包含分级安全系统以防止意外损坏。安全模式默认启用。启用时:
- 危险操作被阻止(用户创建/删除、密码更改、cron 删除)
- 关键服务(
ssh、webmin、systemd-*、dbus)无法停止 - 文件写入/删除限制在
/tmp和/var/tmp - 关键系统用户和路径受到保护
可在 webmin-servers.json 中按服务器配置,或通过环境变量全局设置:export WEBMIN_SAFE_MODE=false。
适用场景
适用于通过 Claude 自动化管理 Linux 服务器的场景,包括批量系统监控、服务运维、用户与权限管理、数据库与备份维护、安全审计等。适合具备 Webmin 环境且希望通过 MCP 集成 AI 助手的运维人员。
限制
- 需要运行中的 Webmin 实例及具备适当权限的凭据。
- 必须安装 Perl XML::Parser 模块。
- 启用 2FA 的 Webmin 账户无法用于 RPC Basic-Auth,需使用专用的 RPC/API-only 账户。
- 大文件操作可能受 RPC 超时限制。
- 安全模式默认阻止危险操作和关键服务停止。