Skip to main content
Glama
mcp-openmediavault

mcp-openmediavault

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

get_system_info

Hostname, version, CPU model, uptime, memory

get_system_stats

CPU usage, memory usage, load averages

get_cpu_temp

CPU temperature readings

get_network_interfaces

Network interfaces with IP, netmask, gateway, speed

get_system_log

Syslog entries

get_power_management

Scheduled shutdown, wake-on-LAN settings

Storage

Tool

Description

list_disks

Physical disks with model, vendor, size, serial, temperature, SMART status

list_filesystems

Filesystems with type, label, size, usage, mount status

get_mounted_filesystems

Currently mounted filesystems with usage stats

get_smart_info

SMART attributes for a disk

get_smart_extended_info

Extended SMART info including self-test results

get_smart_device_settings

SMART monitoring settings per disk

list_smart_jobs

Scheduled SMART self-test jobs

list_raid_devices

Software RAID (mdadm) devices

Shares

Tool

Description

list_shared_folders

Shared folders with filesystem references and privileges

get_shared_folder_privileges

User/group access privileges for a shared folder

list_smb_shares

SMB/CIFS (Samba/Windows) shares

get_smb_settings

Global SMB service settings

list_nfs_shares

NFS shares with client and export options

get_nfs_settings

Global NFS service settings

list_ftp_shares

FTP shares

get_ftp_settings

Global FTP service settings

Users & Groups

Tool

Description

list_users

Local user accounts with UID, GID, groups

get_user

Detailed info about a specific user

list_groups

Local groups with GID, comment, members

get_group

Detailed info about a specific group

enumerate_users

All system users including system accounts

enumerate_groups

All system groups

get_user_privileges

Shared folder privileges for a user

Services

Tool

Description

get_services_status

Status of all services (SMB, NFS, SSH, FTP, rsync, etc.)

list_cron_jobs

Scheduled cron jobs with command and schedule

get_ssh_settings

SSH service settings

list_rsync_jobs

Rsync backup/sync jobs

list_rsync_modules

Rsync daemon modules

get_rsync_settings

Global rsync settings

get_notification_settings

Email notification settings

get_updates

Available software updates

list_plugins

Installed OMV plugins

get_watchdog_settings

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 build

Configuration

The server is configured via environment variables:

Variable

Required

Default

Description

OMV_HOST

Yes

—

OMV server hostname or IP address

OMV_USERNAME

No

admin

OMV admin username

OMV_PASSWORD

Yes

—

OMV admin password

OMV_ALLOW_SELF_SIGNED

No

true

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:

  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

Available Tools

39 tools
enumerate_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_shared_folder_privilegesA

Get user and group access privileges for a specific shared folder

Inputs: uuid (required).

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_ftp_sharesA

List all FTP shares configured in OpenMediaVault

Inputs: no named parameters.

list_groupsB

List all local groups in OpenMediaVault with GID, comment, and member list

Inputs: limit.

list_nfs_sharesA

List all NFS (Network File System) shares configured in OpenMediaVault with client and export options

Inputs: no named parameters.

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_shared_foldersA

List all shared folders configured in OpenMediaVault with their filesystem references and privileges

Inputs: no named parameters.

list_smart_jobsA

List all scheduled SMART self-test jobs configured in OpenMediaVault

Inputs: no named parameters.

list_smb_sharesA

List all SMB/CIFS (Windows/Samba) network shares 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

    B3.2/5.0

    Scored across 39 tools

    Disambiguation4/5

    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.

    Naming Consistency3/5

    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.

    Tool Count4/5

    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.

    Completeness2/5

    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

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Provides 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.
      17
      ISC
    • A
      license
      A
      quality
      D
      maintenance
      Enables 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.).
      31
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      Exposes tools to manage and inspect an OpenMediaVault NAS, running on the NAS and communicating over SSH with any MCP-capable coding harness.
      48
      MIT