Webmin MCP服务器
  ](https://hub.docker.com/r/gjenkins20/webmin-mcp-server) 
一 主控程序 (模型上下文协议)服务器,为Claude提供通过以下方式管理Linux系统的工具 Webmin的管理界面。
特性
- 多服务器支持 --使用用户友好的别名管理多个Webmin服务器
- 系统监控 --系统信息、内存、磁盘、网络和进程状态
- 服务管理 --启动、停止、重新启动、启用和禁用服务
- 用户和组管理 --创建、修改和删除系统用户和组
- 计划任务 --查看、创建、编辑和删除cron作业
- 包管理 --套餐信息和可用更新
- 文件操作 --读取、写入、复制、重命名和删除远程文件
- 存储 --SMART磁盘健康监控和LVM卷管理
- 安全 --Fail2ban监狱状态和被禁止的知识产权管理
- 数据库 --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_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"
]
}
}
}需求
- Python 3.11+
- 正在运行的Webmin实例(通常在端口10000上)
- 具有适当权限的Webmin凭据
Webmin服务器设置
MCP服务器使用Webmin的XML-RPC API。确保您的Webmin服务器已配置:
- 启用RPC访问:在Webmin->Webmin用户->(您的用户)->启用“可以接受RPC调用”
- 安装XML::分析器:必须安装Perl XML::Parser模块:
# Debian/Ubuntu
sudo apt install libxml-parser-perl
# RHEL/CentOS
sudo yum install perl-XML-Parser- 模块访问:授予用户访问所需模块的权限(系统状态、启动和关闭、用户和组、计划的Cron作业、网络配置)
配置
多服务器配置(推荐)
创建一个 webmin-servers.json 文件来管理多个Webmin服务器。看 webmin-servers.example.json 举一个完整的例子。
配置源(优先级顺序):
WEBMIN_CONFIG_FILEenv-var——JSON配置文件的路径WEBMIN_SERVERS_JSONenv-var--内联JSON字符串./webmin-servers.json--当前目录中的本地文件~/.config/webmin-mcp/servers.json--用户配置目录- 遗产
WEBMIN_*env-vars--单服务器(创建“默认”别名)
单服务器配置(旧版)
对于单台服务器,设置环境变量:
export WEBMIN_HOST="your-webmin-server.com"
export WEBMIN_PORT="10000"
export WEBMIN_USERNAME="admin"
export WEBMIN_PASSWORD="your-password"
export WEBMIN_USE_HTTPS="true"
export WEBMIN_VERIFY_SSL="true" # Set to false for self-signed certs或者创建一个 .env 文件(参见 .env.example).
使用多个服务器
通过多服务器配置,所有工具都接受可选 server 参数:
"Get system info from pi1" -> Uses pi1 (default)
"Check disk usage on web-server" -> Uses web-server
"List services on server: nas" -> Uses nas使用 list_webmin_servers 查看所有已配置的服务器及其别名。
可用工具
所有工具都接受可选 server 参数以针对特定的Webmin服务器。看 API完整参考 了解详细的参数和响应格式。
| 类别 | 工具 | 描述 |
|---|---|---|
| 服务器 | list_webmin_servers, test_server_connection, get_webmin_version | 管理和测试服务器连接 |
| 系统 | get_system_info, get_memory_usage, get_system_time, list_runlevels, list_processes | 系统监控和信息 |
| 服务 | list_services, get_service_status, start_service, stop_service, restart_service, enable_service, disable_service | 服务生命周期管理 |
| 用户和组 | list_users, list_groups, create_user, modify_user, delete_user, change_password | 用户和组管理 |
| 克龙 | list_cron_jobs, create_cron_job, edit_cron_job, delete_cron_job | 计划任务管理 |
| 网络 | get_network_info | 接口和路由详细信息 |
| 包裹 | get_package_info, list_available_updates, get_package_count | 套餐信息和更新 |
| 文件 | read_file, write_file, delete_file, copy_file, rename_file, create_directory | 远程文件操作 |
| 存储 | get_disk_usage, list_mounts, list_disks, get_disk_health, list_volume_groups, list_logical_volumes | 磁盘、装载、SMART和LVM管理 |
| 安全外壳协议 | get_ssh_config | SSH服务器配置 |
| 审计 | list_webmin_logs, list_backups | 操作日志和备份 |
| 安全 | list_fail2ban_jails, get_fail2ban_status, list_banned_ips | Fail2ban入侵防御 |
| 数据库 | list_mysql_databases, list_mysql_users, get_mysql_status | MySQL数据库管理 |
| Webmin ACL | list_webmin_users, get_webmin_user, list_webmin_modules, create_webmin_user, modify_webmin_user, delete_webmin_user | Webmin用户和权限管理 |
| 磁盘配额 | list_quota_filesystems, list_user_quotas, get_user_quota, get_group_quota, set_user_quota | 磁盘配额监控和管理 |
安全框架
该服务器包括一个分层安全系统,以防止意外损坏。
安全等级
| 级别 | 描述 | 安全模式 |
|---|---|---|
| 阅读 | 无系统更改 | 始终允许 |
| 安全 | 低风险变更 | 允许 |
| 适度 | 可逆更改 | 可能会阻止关键服务 |
| 危险 | 破坏性操作 | 已阻止 |
安全模式
安全模式为 默认启用.激活时:
- 危险操作被阻止(用户创建/删除、密码更改、cron删除)
- 关键服务(
ssh,webmin,systemd-*,dbus)无法停止 - 文件写入/删除仅限于
/tmp和/var/tmp - 关键系统用户和路径受到保护
在中按服务器配置 webmin-servers.json:
{
"servers": {
"production": { "safe_mode": true },
"development": { "safe_mode": false }
}
}或者通过环境在全球范围内: export WEBMIN_SAFE_MODE=false
码头工人
从Docker Hub拉取
docker pull gjenkins20/webmin-mcp-server本地建设
docker build -t webmin-mcp-server .独立运行
# With config file
docker run --rm -i \
-v /path/to/webmin-servers.json:/app/webmin-servers.json:ro \
gjenkins20/webmin-mcp-server
# With environment variables
docker run --rm -i \
-e WEBMIN_HOST=192.168.1.100 \
-e WEBMIN_USERNAME=admin \
-e WEBMIN_PASSWORD=your-password \
gjenkins20/webmin-mcp-server标记策略
| 标签 | 描述 |
|---|---|
latest | 最新构建自 main 分支机构 |
0.1.0 | 具体发布版本 |
0.1 | 次要版本的最新补丁 |
abc1234 | 具体承诺SHA |
发展
# Install with dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Lint and format
ruff check src tests
ruff format src tests
# Type check
mypy src看 贡献.md 为项目做出贡献的指导方针。
项目结构
webmin-mcp-server/
├── src/
│ ├── server.py # MCP server setup
│ ├── webmin_client.py # Webmin API client
│ ├── config.py # Configuration management
│ ├── models.py # Pydantic models
│ └── tools/ # MCP tool implementations
├── tests/ # Test suite
├── docs/
│ ├── api-reference.md # Full API documentation
│ └── webmin_api_map.md # Webmin API endpoint mapping
├── .github/workflows/ # CI/CD (Docker build & push)
├── Dockerfile
└── webmin-servers.example.json