webmin-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WEBMIN_HOST | No | Hostname or IP of the Webmin server (legacy single-server). | |
| WEBMIN_PORT | No | Port of the Webmin server (legacy). | 10000 |
| WEBMIN_PASSWORD | No | Webmin password (legacy). | |
| WEBMIN_USERNAME | No | Webmin username (legacy). | |
| WEBMIN_SAFE_MODE | No | Enable safe mode globally (true/false). | true |
| WEBMIN_USE_HTTPS | No | Use HTTPS (true/false) (legacy). | true |
| WEBMIN_VERIFY_SSL | No | Verify SSL certificate (true/false) (legacy). | true |
| WEBMIN_CONFIG_FILE | No | Path to JSON config file for multi-server configuration. | |
| WEBMIN_SERVERS_JSON | No | Inline JSON string for multi-server configuration. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_webmin_serversA | List all configured Webmin servers with their aliases and connection info. Shows which server is the default. |
| test_server_connectionA | Test connectivity to a specific Webmin server. Returns version and hostname if successful. |
| get_webmin_versionA | Get the version of the connected Webmin server. Returns the version string and hostname. |
| get_system_infoA | Get comprehensive system information including OS, kernel, CPU, memory, disk usage, and update status. This is a good starting point for understanding system state. |
| list_servicesA | List all system services (systemd units or init scripts). Returns service names. Use get_service_status to check if a specific service is running. |
| get_service_statusA | Get the status of a specific system service. Returns whether the service is running or stopped. |
| list_usersA | List all system users. Returns both regular users (UID >= 1000) and system users separately, with details like home directory and shell. |
| get_disk_usageA | Get disk usage information for all mounted filesystems. Shows total, used, and free space, plus inode usage. |
| get_memory_usageA | Get memory usage information. Shows total, used, and free memory in KB, MB, and GB, plus buffer and cache usage. |
| list_cron_jobsA | List all scheduled cron jobs. Shows the schedule, command, user, and whether each job is active. |
| get_network_infoB | Get network configuration including all interfaces (with IP, MAC, speed), routing table, and default gateway. |
| restart_serviceB | Restart a system service. The service will be stopped and then started again. Some critical services (ssh, webmin) may be blocked in safe mode. |
| start_serviceB | Start a stopped system service. If the service is already running, this is a no-op. |
| stop_serviceA | Stop a running system service. Critical services (ssh, webmin, systemd services) are blocked to prevent system lockout. |
| enable_serviceA | Enable a service to start automatically at system boot. |
| disable_serviceA | Disable a service from starting automatically at system boot. Critical services are blocked to prevent boot failures. |
| create_cron_jobA | Create a new scheduled cron job. Specify the command to run and the schedule using cron syntax (minutes, hours, days, months, weekdays). Use '' for 'every' (e.g., '/5' for every 5 minutes). |
| edit_cron_jobA | Edit an existing cron job. Use list_cron_jobs to find the job index. Only specify the fields you want to change. |
| delete_cron_jobA | Delete a cron job. This is a dangerous operation and is blocked in safe mode. Use list_cron_jobs to find the job index. |
| list_groupsA | List all system groups. Returns both regular groups (GID >= 1000) and system groups separately, with member information. |
| create_userA | Create a new system user. This is a dangerous operation and is blocked in safe mode. |
| delete_userA | Delete a system user. This is a dangerous operation and is blocked in safe mode. Critical system users cannot be deleted. |
| modify_userA | Modify an existing system user. Only specify fields you want to change. |
| change_passwordA | Change a user's password. This is a dangerous operation and is blocked in safe mode. |
| get_package_infoA | Get detailed information about an installed package including version, description, maintainer, and install date. |
| list_available_updatesB | List all available package updates including security updates. Shows current and new versions for each package. |
| get_package_countA | Get the total count of installed packages on the system. |
| read_fileA | Read the contents of a file from the remote system. Can return content as a string or as an array of lines. |
| write_fileA | Write content to a file. This is a dangerous operation. In safe mode, only writes to /tmp and /var/tmp are allowed. System directories (/etc, /bin, /usr, etc.) are always blocked. |
| delete_fileA | Delete a file or empty directory. This is a dangerous operation. In safe mode, only deletes in /tmp and /var/tmp are allowed. System directories are always protected. |
| copy_fileB | Copy a file to a new location. In safe mode, destination must be in /tmp or /var/tmp. |
| rename_fileA | Rename or move a file. In safe mode, both source and destination must be in /tmp or /var/tmp. |
| create_directoryA | Create a new directory. In safe mode, only directories in /tmp or /var/tmp can be created. |
| list_processesA | List all running processes on the system. Shows PID, user, CPU usage, memory, and command for each process. |
| list_mountsA | List all mounted filesystems. Shows mount point, device, filesystem type, and mount options. |
| list_disksA | List all physical disks with SMART capability. Shows device path, model, serial number, capacity, and whether SMART is enabled. |
| get_disk_healthA | Get SMART health status for a specific disk. Returns overall health, temperature, power-on hours, SMART attributes, and any errors or warnings. |
| list_volume_groupsA | List all LVM volume groups. Shows name, total size, free space, physical volume count, and logical volume count for each VG. |
| list_logical_volumesB | List all LVM logical volumes. Shows name, size, volume group, device path, and mount point for each LV. |
| get_system_timeA | Get the current system time and timezone configuration. |
| list_runlevelsB | List system runlevels and their descriptions. |
| get_ssh_configB | Get SSH server (sshd) configuration settings including port, authentication methods, and security options. |
| list_webmin_logsA | List Webmin action/audit logs. Shows recent actions performed through Webmin including user, module, and action details. |
| list_backupsA | List Webmin configuration backups. Shows available backups that can be restored. |
| list_fail2ban_jailsB | List all Fail2ban jails and their status. Shows which jails are enabled and their current ban counts. |
| get_fail2ban_statusA | Get Fail2ban status for a specific jail or overall. Returns currently banned IPs and ban counts. |
| list_banned_ipsA | List all currently banned IP addresses from Fail2ban. |
| list_mysql_databasesA | List all MySQL databases. Separates user databases from system databases (information_schema, mysql, etc.). |
| list_mysql_usersA | List all MySQL users and their host permissions. |
| get_mysql_statusA | Get MySQL server status including version, uptime, connections, and query statistics. |
| list_webmin_usersA | List all Webmin user accounts (NOT system users). Shows usernames and which modules each user can access. |
| get_webmin_userB | Get detailed permissions for a specific Webmin user account. Shows which modules the user can access. |
| list_webmin_modulesB | List all available Webmin modules that can be assigned to users. |
| create_webmin_userA | Create a new Webmin user account. This is a dangerous operation and is blocked in safe mode. |
| modify_webmin_userA | Modify a Webmin user's permissions or password. This is a dangerous operation and is blocked in safe mode. Cannot demote the last superuser account. |
| delete_webmin_userA | Delete a Webmin user account. This is a dangerous operation and is blocked in safe mode. The last superuser account cannot be deleted regardless of safe mode. |
| list_quota_filesystemsA | List filesystems with disk quota support. Shows which filesystems have quotas enabled and their status. |
| list_user_quotasB | List all user quotas on a specific filesystem. Shows disk usage, soft/hard limits for blocks and files. |
| get_user_quotaB | Get quota limits and usage for a specific user on a filesystem. |
| get_group_quotaA | Get quota limits and usage for a specific group on a filesystem. |
| set_user_quotaA | Set disk quota limits for a user on a filesystem. This is a dangerous operation and is blocked in safe mode. Set limits to 0 for unlimited. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 61 tools
Each tool targets a specific resource and action, with clear distinctions between system users and Webmin users, file operations, cron jobs, services, etc. No two tools have overlapping purposes; even similar tools like get_disk_usage and list_mounts serve different informational needs.
Tool names follow a consistent verb_noun pattern throughout, using descriptive verbs like create, delete, list, get, modify, etc. The pattern is predictable, with verbs appropriately chosen for the action (e.g., list for collections, get for details).
With 61 tools, the set is overly large for a typical MCP server. Although the scope is broad (full server management via Webmin), the number exceeds what is considered manageable (25+), making the surface feel heavy and potentially overwhelming for agents.
The tool set covers most system administration tasks: user/group management, file operations, cron jobs, services, disk/memory/network monitoring, quotas, MySQL, Webmin configuration, etc. Minor gaps exist (e.g., no package install/remove, no firewall management), but core workflows are well-supported.