ubuntu-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| UBUNTU_MCP_HOST_KEYS | No | Path to the host keys store file (default is '.host-keys.json' next to servers.json). | |
| UBUNTU_MCP_KEY_PASSPHRASE | No | Passphrase for the SSH private key, if the key has one and is not loaded in ssh-agent. | |
| UBUNTU_MCP_HOST_KEY_CHECKING | No | Host key verification policy: 'tofu' (default) trust-on-first-use, 'strict' refuse unknown hosts, 'off' accept any host key. | tofu |
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 |
|---|---|
| ubuntu_list_serversA | List all Ubuntu servers configured in the inventory (servers.json), with their connection details. Call this first to discover valid values for the 'server' parameter used by every other ubuntu_* tool. Args:
Returns: name, host, port, username and description for each configured server. Does not contact the servers, so a listed server is not necessarily reachable right now. |
| ubuntu_system_overviewA | Get a one-shot health overview of an Ubuntu server: hostname, OS release, kernel, uptime, load average, memory usage, disk usage, whether a reboot is required, and any failed systemd services. This is the best first call when asked "how is server X doing?" — it gathers everything in a single SSH round trip. Args:
Returns: the sections listed above; memory and disk are the raw 'free -h' / 'df -h' tables. |
| ubuntu_list_servicesA | List systemd services on an Ubuntu server, optionally filtered by state. Args:
Returns: unit name, active/sub state, and description per service, with pagination metadata (total, has_more, next_offset). Example: state='failed' answers "is anything broken on web-01?" |
| ubuntu_service_statusA | Show detailed status of one systemd service: the full 'systemctl status' output (state, recent log lines, PID, memory) plus whether it is enabled at boot. Args:
Returns: raw status text plus parsed active_state ('active'/'inactive'/'failed') and enabled state ('enabled'/'disabled'/'static'). Error handling: reports if the unit does not exist and suggests ubuntu_list_services to find the right name. |
| ubuntu_manage_serviceA | Start, stop, restart, reload, enable, or disable a systemd service. Runs via 'sudo -n', so the server must allow passwordless sudo for the configured user. Args:
Returns: confirmation plus the service's state after the action. Error handling: if sudo requires a password the error explains how to configure passwordless sudo. 'reload' fails for services that don't support it — use 'restart' instead. |
| ubuntu_check_updatesA | List pending apt package updates on an Ubuntu server, flag security updates, and report whether a reboot is required. Does NOT install anything. Args:
Returns: total pending updates, security update count, reboot-required flag, and per-package old → new versions. To actually install updates, use ubuntu_run_command with sudo, e.g. command='apt-get upgrade -y' sudo=true — after confirming with the user. |
| ubuntu_tail_logA | Read recent log lines from an Ubuntu server — either from the systemd journal (journalctl) or from a log file — optionally filtered to lines containing a search string. Args:
Returns: the matching log lines as plain text. Error handling: permission errors suggest use_sudo=true or adding the user to the 'adm'/'systemd-journal' groups. Examples:
|
| ubuntu_run_commandA | Run an arbitrary shell command on a configured Ubuntu server over SSH and return stdout, stderr, and the exit code. Prefer the specialized tools when they fit (ubuntu_system_overview, ubuntu_list_services, ubuntu_service_status, ubuntu_check_updates, ubuntu_tail_log) — they produce cleaner output. Use this tool for everything they don't cover. Args:
Returns: exit code plus stdout/stderr text, also available as structured content. Error handling:
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/PainInTheNic/MCP-Ubuntu'
If you have feedback or need assistance with the MCP directory API, please join our Discord server