MCP Hub
Back to servers

mcp-openmediavault

Enables AI assistants to monitor and manage OpenMediaVault NAS systems by providing access to storage, network shares, user accounts, and system services. It supports OMV 5 and 6 via the JSON-RPC API for comprehensive hardware and configuration oversight through natural language.

Updated
Feb 27, 2026

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

ToolDescription
get_system_infoHostname, version, CPU model, uptime, memory
get_system_statsCPU usage, memory usage, load averages
get_cpu_tempCPU temperature readings
get_network_interfacesNetwork interfaces with IP, netmask, gateway, speed
get_system_logSyslog entries
get_power_managementScheduled shutdown, wake-on-LAN settings

Storage

ToolDescription
list_disksPhysical disks with model, vendor, size, serial, temperature, SMART status
list_filesystemsFilesystems with type, label, size, usage, mount status
get_mounted_filesystemsCurrently mounted filesystems with usage stats
get_smart_infoSMART attributes for a disk
get_smart_extended_infoExtended SMART info including self-test results
get_smart_device_settingsSMART monitoring settings per disk
list_smart_jobsScheduled SMART self-test jobs
list_raid_devicesSoftware RAID (mdadm) devices

Shares

ToolDescription
list_shared_foldersShared folders with filesystem references and privileges
get_shared_folder_privilegesUser/group access privileges for a shared folder
list_smb_sharesSMB/CIFS (Samba/Windows) shares
get_smb_settingsGlobal SMB service settings
list_nfs_sharesNFS shares with client and export options
get_nfs_settingsGlobal NFS service settings
list_ftp_sharesFTP shares
get_ftp_settingsGlobal FTP service settings

Users & Groups

ToolDescription
list_usersLocal user accounts with UID, GID, groups
get_userDetailed info about a specific user
list_groupsLocal groups with GID, comment, members
get_groupDetailed info about a specific group
enumerate_usersAll system users including system accounts
enumerate_groupsAll system groups
get_user_privilegesShared folder privileges for a user

Services

ToolDescription
get_services_statusStatus of all services (SMB, NFS, SSH, FTP, rsync, etc.)
list_cron_jobsScheduled cron jobs with command and schedule
get_ssh_settingsSSH service settings
list_rsync_jobsRsync backup/sync jobs
list_rsync_modulesRsync daemon modules
get_rsync_settingsGlobal rsync settings
get_notification_settingsEmail notification settings
get_updatesAvailable software updates
list_pluginsInstalled OMV plugins
get_watchdog_settingsHardware watchdog timer settings

Installation

git clone git@github.com:fredriksknese/mcp-openmediavault.git
cd mcp-openmediavault
npm install
npm run build

Configuration

The server is configured via environment variables:

VariableRequiredDefaultDescription
OMV_HOSTYesOMV server hostname or IP address
OMV_USERNAMENoadminOMV admin username
OMV_PASSWORDYesOMV admin password
OMV_ALLOW_SELF_SIGNEDNotrueAccept 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:

  1. Login via POST /rpc.php with Session.login
  2. Extract the session cookie (PHPSESSID) from the Set-Cookie response header
  3. Send both the Cookie header and X-OPENMEDIAVAULT-SESSIONID header 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.js

Set 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 output

Architecture

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 admin account works)

License

SEE LICENSE IN LICENSE

Reviews

No reviews yet

Sign in to write a review