SuperAPI AI 工具集

webmin-mcp-server

Webmin MCP Server 是一个基于 Model Context Protocol(MCP)的服务器,通过 Webmin 的 XML-RPC API 为 Claude 提供管理 Linux 系统的工具。它支持多服务器管理(带别名)、系统监控、服务启停、用户与组管理、计划任务、包管理、文件操作、存储与 LVM、Fail2ban 安全、MySQL 数据库、Webmin ACL、磁盘配额以及审计与备份等功能。该服务器内置分级安全框架,默认启用安全模式,可阻止危险操作并限制关键服务与文件路径。

访问官网

工具介绍

用途

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。 配置来源(优先级顺序):

  1. WEBMIN_CONFIG_FILE 环境变量——JSON 配置文件路径
  2. WEBMIN_SERVERS_JSON 环境变量——内联 JSON 字符串
  3. ./webmin-servers.json——当前目录下的本地文件
  4. ~/.config/webmin-mcp/servers.json——用户配置目录
  5. 遗留 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 超时限制。
  • 安全模式默认阻止危险操作和关键服务停止。