omv-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OMV_SUDO | No | 1 prefixes every command with sudo, for non-root SSH users | 0 |
| OMV_SSH_KEY | No | Path to a private key. Leave empty to use your ssh-agent and ~/.ssh/config. | |
| OMV_TIMEOUT | No | Per-command timeout in seconds | 60 |
| OMV_READONLY | No | 1 refuses anything that does not look like a read method, and disables omv_shell | 0 |
| OMV_RPC_USER | No | The OMV user the RPC call runs as | admin |
| OMV_SSH_HOST | No | Hostname or IP of the NAS. Empty means run commands locally — use that if you run this server on the NAS. | |
| OMV_SSH_PORT | No | SSH port | 22 |
| OMV_SSH_USER | No | SSH user | root |
| OMV_ALLOW_SHELL | No | 0 removes the omv_shell tool entirely | 1 |
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| omv_callA | Call an OpenMediaVault RPC method. This is the main tool. Anything the web interface can do is available here. Some heavier methods run in the background and return {"filename": "..."} -- pass that value to omv_wait_for_task to collect the output. Examples: omv_call("System", "getInformation") omv_call("FileSystemMgmt", "enumerateMountedFilesystems", {"includeRoot": True}) omv_call("ShareMgmt", "enumerateSharedFolders") |
| omv_connection_infoA | Show how this server connects and whether that works. Useful as a first smoke test and when troubleshooting connectivity. |
| omv_list_methodsA | List every method of an RPC service. Call this before omv_call so you use the exact method name instead of guessing it. |
| omv_list_servicesA | List every available OpenMediaVault RPC service. This is the starting point: every action in the web interface belongs to one of these services (for example System, FileSystemMgmt, ShareMgmt, UserMgmt, Smart, Services). Installed plugins add their own services here. Note that some service names are lowercase (for example "kernel" and "omvextras") and omv-rpc is case sensitive, so use the name exactly as returned. |
| omv_shellA | Run an arbitrary shell command on the NAS. Intended for everything outside the RPC layer: reading logs (journalctl), package status, docker commands, disk details and so on. Prefer omv_call for anything OMV manages itself, so that OMV's own configuration database stays in sync with the system. |
| omv_wait_for_taskA | Collect the output of a background task started by omv_call. When omv_call returns something like {"filename": "..."}, the job is running asynchronously on the NAS. This tool polls until it finishes. |
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 6 tools
Each tool has a distinct role: connection check, async task polling, generic RPC call, method discovery, service discovery, and shell access. There is no overlap between them, and their purposes are clearly separable.
All tools share the 'omv_' prefix and use lowercase snake_case, which provides consistency. However, the naming is not strictly verb_noun: 'omv_call', 'omv_list_methods', and 'omv_list_services' are verb-first, while 'omv_connection_info' and 'omv_shell' are noun-first. This minor deviation is still readable and predictable.
Six tools is an appropriate size for this MCP server. The generic omv_call tool provides broad functionality, while the supporting tools (discovery, async handling, health check, shell) round out the surface without unnecessary bloat.
The tool set is highly complete: omv_call can invoke any RPC method, omv_list_methods and omv_list_services enable discovery, omv_wait_for_task handles asynchronous operations, omv_connection_info verifies connectivity, and omv_shell covers non-RPC needs. There are no obvious gaps in managing an OpenMediaVault system.