Ubuntu SSH MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ssh_connectB | Connect to an Ubuntu server via SSH. Stores the connection under an alias for subsequent commands. |
| ssh_disconnectC | Disconnect from a server. |
| ssh_list_connectionsA | List all active SSH connections. |
| ssh_execB | Run any shell command on a connected server (as the SSH user). |
| ssh_sudoC | Run a command with sudo on a connected server. Requires the user to have sudo rights. |
| system_infoC | Get a comprehensive system overview: OS, CPU, RAM, disk, uptime, load. |
| list_processesC | List top processes by CPU or memory usage. |
| check_disk_usageB | Show disk usage for a specific directory or all mounts. |
| apt_updateC | Run apt update and show available upgrades. |
| apt_upgradeB | Upgrade all packages (apt upgrade). Use apt_update first. |
| apt_installC | Install one or more packages. |
| apt_removeC | Remove one or more packages. |
| service_statusC | Check the status of a systemd service. |
| service_controlC | Start, stop, restart, reload, enable, or disable a systemd service. |
| list_servicesC | List all systemd services and their states. |
| view_logsA | View systemd journal logs for a service or the whole system. |
| tail_log_fileC | Read the last N lines of any log file. |
| read_fileC | Read the contents of a remote file. |
| write_fileC | Write content to a remote file (overwrites). Use with caution. |
| list_directoryC | List files in a remote directory. |
| security_auditB | Run a comprehensive security audit: open ports, users, SSH config, sudo rights, SUID files, failed logins. |
| check_updates_securityC | List security-only updates available via apt. |
| ufw_statusC | Show UFW firewall status and rules. |
| ufw_ruleC | Add or delete a UFW firewall rule. |
| ufw_enable_disableC | Enable or disable the UFW firewall. |
| harden_sshA | Apply SSH hardening best practices via a drop-in file: disable root login, disable password auth, set MaxAuthTries. IMPORTANT: ensure you have key-based auth working before running this. |
| user_listB | List system users. |
| user_createC | Create a new system user. |
| user_deleteC | Delete a system user. |
| add_authorized_keyC | Add an SSH public key to a user's authorized_keys. |
| fail2ban_statusC | Show fail2ban jail status and banned IPs. |
| fail2ban_unbanC | Unban an IP address from a fail2ban jail. |
| cron_listC | List cron jobs for a user or all users. |
| network_infoC | Show network interfaces, routing table, and active connections. |
| ping_from_serverC | Ping a host from the remote server. |
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 35 tools
Each tool has a clear and distinct purpose. For example, apt_install and apt_remove are separate, ssh_exec and ssh_sudo are differentiated by privilege, and tail_log_file vs view_logs target different log sources. No two tools overlap significantly.
All tool names use snake_case and follow a consistent verb_noun or domain_action pattern (e.g., apt_install, list_directory, ufw_status). Even tools like fail2ban_status and harden_ssh fit this pattern. There is no mixing of conventions.
With 35 tools, the server covers a broad range of Ubuntu administration tasks. While slightly on the high side, each tool serves a specific function, and the count is reasonable for the comprehensive scope intended. A few tools like ssh_exec and ssh_sudo could be combined, but they are distinct enough to justify separation.
The tool set provides complete coverage for common server administration tasks: connection management, package management, file operations, user management, service control, firewall configuration, security hardening, and monitoring. There are no obvious gaps that would prevent an agent from performing typical administrative workflows.