mcp-openmediavault
Provides full access to OpenMediaVault NAS storage management, including system statistics, disk and filesystem monitoring, RAID management, shared folder configuration (SMB, NFS, FTP), and user/group administration.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-openmediavault Check the health of my disks and show current storage usage."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-openmediavault
A Model Context Protocol (MCP) server for OpenMediaVault (OMV), providing AI assistants with full access to NAS storage, shares, users, and system management through the OMV JSON-RPC API.
Compatible with OMV 5 and OMV 6.
Features
33 tools across five categories:
System
Tool | Description |
| Hostname, version, CPU model, uptime, memory |
| CPU usage, memory usage, load averages |
| CPU temperature readings |
| Network interfaces with IP, netmask, gateway, speed |
| Syslog entries |
| Scheduled shutdown, wake-on-LAN settings |
Storage
Tool | Description |
| Physical disks with model, vendor, size, serial, temperature, SMART status |
| Filesystems with type, label, size, usage, mount status |
| Currently mounted filesystems with usage stats |
| SMART attributes for a disk |
| Extended SMART info including self-test results |
| SMART monitoring settings per disk |
| Scheduled SMART self-test jobs |
| Software RAID (mdadm) devices |
Shares
Tool | Description |
| Shared folders with filesystem references and privileges |
| User/group access privileges for a shared folder |
| SMB/CIFS (Samba/Windows) shares |
| Global SMB service settings |
| NFS shares with client and export options |
| Global NFS service settings |
| FTP shares |
| Global FTP service settings |
Users & Groups
Tool | Description |
| Local user accounts with UID, GID, groups |
| Detailed info about a specific user |
| Local groups with GID, comment, members |
| Detailed info about a specific group |
| All system users including system accounts |
| All system groups |
| Shared folder privileges for a user |
Services
Tool | Description |
| Status of all services (SMB, NFS, SSH, FTP, rsync, etc.) |
| Scheduled cron jobs with command and schedule |
| SSH service settings |
| Rsync backup/sync jobs |
| Rsync daemon modules |
| Global rsync settings |
| Email notification settings |
| Available software updates |
| Installed OMV plugins |
| Hardware watchdog timer settings |
Related MCP server: iStoreOS MCP Server
Installation
git clone git@github.com:fredriksknese/mcp-openmediavault.git
cd mcp-openmediavault
npm install
npm run buildConfiguration
The server is configured via environment variables:
Variable | Required | Default | Description |
| Yes | — | OMV server hostname or IP address |
| No |
| OMV admin username |
| Yes | — | OMV admin password |
| No |
| Accept self-signed SSL certificates |
OMV 5 / OMV 6 Compatibility
The server connects to the JSON-RPC endpoint at https://{host}/rpc.php, which is the standard endpoint for both OMV 5 and OMV 6.
Session management follows the OMV protocol:
Login via
POST /rpc.phpwithSession.loginExtract the session cookie (
PHPSESSID) from theSet-Cookieresponse headerSend both the
Cookieheader andX-OPENMEDIAVAULT-SESSIONIDheader on all subsequent requests
If the session expires (HTTP 401), the client automatically re-authenticates and retries.
Usage with Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"openmediavault": {
"command": "node",
"args": ["/absolute/path/to/mcp-openmediavault/dist/index.js"],
"env": {
"OMV_HOST": "192.168.1.100",
"OMV_USERNAME": "admin",
"OMV_PASSWORD": "your-password"
}
}
}
}Usage with Claude Code
claude mcp add openmediavault -- node /absolute/path/to/mcp-openmediavault/dist/index.jsSet environment variables before running, or configure them in your MCP settings.
Example Prompts
Once connected, you can ask your AI assistant things like:
"What is the current disk usage and which filesystems are mounted?"
"Show me the SMART health status for all disks"
"List all SMB shares and their enabled status"
"What services are currently running on the NAS?"
"Show me all users and their group memberships"
"Are there any software updates available for OMV?"
"What cron jobs are scheduled and when do they run?"
"Show me the NFS export configuration"
"What is the CPU temperature and system load?"
Development
npm run dev # Run with tsx (auto-reloads)
npm run build # Compile TypeScript to dist/
npm start # Run compiled outputArchitecture
src/
├── index.ts # Entry point — creates MCP server + STDIO transport
├── omv-client.ts # JSON-RPC client with session management and auto-retry
└── tools/
├── system.ts # System info, stats, network interfaces (6 tools)
├── storage.ts # Disks, filesystems, SMART, RAID (8 tools)
├── shares.ts # Shared folders, SMB, NFS, FTP (8 tools)
├── users.ts # Users and groups (7 tools)
└── services.ts # Services status, cron, SSH, rsync, plugins (10 tools)Requirements
Node.js 18+
OpenMediaVault 5 or 6 with admin credentials
Admin account with API access (the default
adminaccount works)
License
SEE LICENSE IN LICENSE
Available Tools
39 toolsenumerate_groupsC
Enumerate all system groups including system groups
Inputs: no named parameters.
enumerate_usersA
Enumerate all system users including system accounts (broader than list_users which may only show OMV-managed accounts)
Inputs: no named parameters.
get_cpu_tempA
Get CPU temperature readings from OpenMediaVault
Inputs: no named parameters.
get_ftp_settingsA
Get global FTP service settings including port, max connections, and enabled status
Inputs: no named parameters.
get_groupB
Get detailed information about a specific group
Inputs: name (required).
get_mounted_filesystemsA
Get all currently mounted filesystems with their usage statistics
Inputs: no named parameters.
get_network_interfacesB
List all network interfaces on the OpenMediaVault system with IP, netmask, gateway, and speed
Inputs: enumerate.
get_nfs_settingsA
Get global NFS service settings and enabled status
Inputs: no named parameters.
get_notification_settingsA
Get email notification settings configured in OpenMediaVault
Inputs: no named parameters.
get_power_managementA
Get power management settings (scheduled shutdown, wake-on-LAN, etc.)
Inputs: no named parameters.
get_rsync_settingsA
Get global rsync daemon settings
Inputs: no named parameters.
get_services_statusA
Get the status of all OpenMediaVault services (SMB, NFS, SSH, FTP, rsync, etc.) showing which are enabled and running
Inputs: no named parameters.
get_smart_device_settingsC
Get SMART monitoring settings for a specific disk
Inputs: devicefile (required).
get_smart_extended_infoA
Get extended SMART information for a specific disk including self-test results
Inputs: devicefile (required).
get_smart_infoB
Get SMART attributes for a specific disk device to assess disk health
Inputs: devicefile (required).
get_smb_settingsA
Get global SMB/CIFS service settings including workgroup, description, and enabled status
Inputs: no named parameters.
get_ssh_settingsA
Get SSH service settings including port, password authentication, and enabled status
Inputs: no named parameters.
get_system_infoA
Get OpenMediaVault system information including hostname, version, CPU model, uptime, and memory
Inputs: no named parameters.
get_system_logB
Retrieve system log entries from OpenMediaVault (syslog)
Inputs: limit.
get_system_statsB
Get OpenMediaVault system statistics including CPU usage, memory usage, and load averages
Inputs: no named parameters.
get_updatesB
Check for available software updates in OpenMediaVault
Inputs: no named parameters.
get_userB
Get detailed information about a specific user account
Inputs: name (required).
get_user_privilegesA
Get all shared folder privileges assigned to a specific user
Inputs: name (required).
get_watchdog_settingsA
Get hardware watchdog timer settings for system health monitoring
Inputs: no named parameters.
list_cron_jobsB
List all scheduled cron jobs configured in OpenMediaVault with command, schedule expression, and enabled status
Inputs: no named parameters.
list_disksA
List all physical disks detected by OpenMediaVault including model, vendor, size, serial number, temperature, and SMART status
Inputs: no named parameters.
list_filesystemsA
List all filesystems on the OpenMediaVault system including type, label, size, usage, and mount status
Inputs: no named parameters.
list_groupsB
List all local groups in OpenMediaVault with GID, comment, and member list
Inputs: limit.
list_pluginsA
List all installed OpenMediaVault plugins
Inputs: no named parameters.
list_raid_devicesA
List all software RAID (mdadm) devices configured in OpenMediaVault
Inputs: no named parameters.
list_rsync_jobsA
List all rsync backup/sync jobs configured in OpenMediaVault
Inputs: no named parameters.
list_rsync_modulesA
List rsync daemon modules (server-side rsync shares) configured in OpenMediaVault
Inputs: no named parameters.
list_smart_jobsA
List all scheduled SMART self-test jobs configured in OpenMediaVault
Inputs: no named parameters.
list_usersB
List all local user accounts in OpenMediaVault with UID, GID, groups, and account details
Inputs: limit.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 39 tools
Most tools target distinct resources (disks, users, shares, services), but some overlap exists between 'enumerate_' and 'list_' variants (e.g., enumerate_groups vs list_groups). Descriptions clarify differences, so ambiguity is minor.
Tool names mix 'get_', 'list_', and 'enumerate_' prefixes with no strict pattern. For example, 'get_system_info' uses 'get' while 'list_disks' uses 'list'. Some tools use 'get_xxx_settings' vs 'get_xxx_info'. The pattern is inconsistent but still readable.
39 tools is slightly high for a single server, but the domain of NAS management involves many read-only queries. Each tool serves a specific sub-resource, so the count is justified, though it could be reduced by combining some settings endpoints.
The server only provides read operations; there are no create, update, or delete tools for any resource. This is a major gap for management tasks like adding users, configuring shares, or enabling services. The surface is severely incomplete for its apparent purpose.
Maintenance
Related MCP Connectors
- DNS-DATA RemoteDeprecatedcom.dns-data
Connect AI assistants to authorized Windows and macOS devices for files, commands, and management.
Manage Vozora VPS servers, SSH keys, firewalls, DNS and usage from an AI agent.
Manage VeriTeknik servers, DNS, backups and support tickets from your AI assistant.
Reach your own computers from any AI app: files, search, commands, approvals and outage alerts.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides read-only server monitoring and diagnostic tools for AI assistants to manage Linux and Unraid systems via SSH. It enables natural language interactions for container management, storage health checks, and system log analysis while keeping credentials secure.17ISC
- AlicenseAqualityDmaintenanceEnables AI assistants to read-only monitor iStoreOS/OpenWRT routers via SSH or HTTP/ubus API, providing 31 tools for system status, network info, logs, and plugin status (OpenClash, Passwall, AdGuardHome, etc.).31MIT
- AlicenseBqualityDmaintenanceExposes tools to manage and inspect an OpenMediaVault NAS, running on the NAS and communicating over SSH with any MCP-capable coding harness.48MIT
- FlicenseNot gradedqualityCmaintenanceLets an LLM client monitor devices, services, disk usage, and uptime in a home network and home lab.-