OME MCP Server logo

OME MCP Server

TrevorSquillario/ome-mcp
0 starsUpdated 2026-06-24Community

Is this your server?

Add your score badge to your README and get your server in front of 45k+ builders a month.

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

Enables AI agents to manage Dell PowerEdge servers via Dell OpenManage Enterprise (OME) REST API, providing tools for device inventory, power control, firmware updates, alert management, and compliance baselines.

README.md

OME MCP — Dell OpenManage Enterprise MCP Server

A Model Context Protocol (MCP) server that exposes Dell OpenManage Enterprise (OME) management capabilities to AI agents via a Streaming HTTP transport. No direct iDRAC connections are made — all data flows through OME's REST API.

---

Features

| Tool | Description | |------|-------------| | ome_list_devices | List all managed devices with OData filter + pagination | | ome_get_device | Full detail for one device by ID | | ome_get_device_inventory | Hardware inventory (CPU/RAM/NIC/HDD/PSU) | | ome_get_device_subsystem_health | Per-subsystem health status | | ome_get_device_network_adapters | NIC/port details | | ome_device_power_action | PowerOn/Off/Restart/Cycle via OME | | ome_list_groups | List device groups | | ome_get_group_devices | Devices in a specific group | | ome_list_alerts | Alerts with severity/status filter | | ome_acknowledge_alerts | Acknowledge one or more alerts | | ome_list_jobs | List jobs with filter | | ome_get_job | Job detail and status | | ome_run_job_now | Trigger an existing job immediately | | ome_get_job_execution_history | Job run history | | ome_list_discovery_jobs | Discovery configuration groups | | ome_create_discovery_job | Create & start a discovery scan | | ome_list_firmware_catalogs | Firmware update catalogs | | ome_list_firmware_baselines | Firmware compliance baselines | | ome_get_firmware_baseline_compliance | Per-component compliance report | | ome_list_templates | Configuration/deployment templates | | ome_get_template | Template details | | ome_list_config_baselines | Configuration compliance baselines | | ome_get_config_baseline_compliance | Per-device config compliance | | ome_get_system_info | OME version, license, health | | ome_list_active_sessions | Active OME API sessions | | ome_get_audit_logs | OME audit trail | | ome_get_warranty_info | Device warranty records | | ome_refresh_device_inventory | Trigger OME inventory refresh |

---

Architecture

AI Agent / MCP Client
        │
        │  HTTP POST /mcp  (Streaming HTTP transport)
        ▼
┌─────────────────────┐
│   ome_mcp_v5        │   Docker container (Ubuntu/Python 3.11)
│   FastMCP server    │
│   port 8000         │
└────────┬────────────┘
         │  HTTPS REST API calls
         ▼
┌─────────────────────┐
│  OME Appliance      │   https://192.168.1.145/api
│  (192.168.1.145)    │
└────────┬────────────┘
         │  OME manages iDRAC internally
         ▼
   Dell PowerEdge Servers

No connections are made directly to iDRAC — OME handles that internally.

---

Prerequisites

  • Docker Engine 24+ and Docker Compose v2 on an Ubuntu host
  • Network access from the host to https://192.168.1.145 (OME appliance)
  • OME admin credentials

---

Quick Start

1. Clone / copy project files

2. Configure credentials

cd ome-mcp
cp .env.example .env
nano .env          # Set OME_USER, OME_PASSWORD

Never commit .env to version control.

3. Start container

docker compose up -d

The MCP endpoint will be available at http://<host>:8000/mcp.

Service Based Install

Build the image

./service_control.sh build

Start the server

./service_control.sh start

The MCP endpoint will be available at http://<host>:8000/mcp.

Check status

./service_control.sh status
./service_control.sh logs 50

Auto-start with systemd (optional)

# Install systemd unit (auto-updates WorkingDirectory to current path)
sudo ./service_control.sh install-systemd

# Start now
sudo systemctl start ome_mcp_v5

# View logs
sudo journalctl -u ome_mcp_v5 -f

To remove the systemd unit:

sudo ./service_control.sh uninstall-systemd

---

TLS / SSL Toggle

| Scenario | Setting in .env | |----------|-------------------| | Lab / self-signed cert | OME_VERIFY_SSL=false | | Production (trusted CA) | OME_VERIFY_SSL=true | | Production (custom CA bundle) | OME_VERIFY_SSL=/path/to/ca-bundle.crt |

No rebuild is required — just change the env var and restart.

---

Connecting an MCP Client

Point any MCP-compatible client at:

http://<host_ip>:8000/mcp

Example with mcp CLI:

mcp call --url http://192.168.1.200:8000/mcp ome_list_devices '{"top":10}'

Example with Python SDK:

from mcp.client.streamable_http import streamablehttp_client
from mcp import ClientSession

async with streamablehttp_client("http://192.168.1.200:8000/mcp") as (r, w, _):
    async with ClientSession(r, w) as session:
        await session.initialize()
        result = await session.call_tool("ome_list_devices", {"top": 5})
        print(result.content)

---

Pagination

All list tools accept top (page size, default 50) and skip (offset) parameters. Use the returned next_skip value to fetch subsequent pages:

{"top": 25, "skip": 0}   // first page
{"top": 25, "skip": 25}  // second page

OData Filtering

Pass standard OData $filter expressions via the filter parameter:

"Model eq 'PowerEdge R640'"
"Severity eq 'Critical'"
"LastRunStatus/Name eq 'Failed'"
"StatusType eq 'New'"

---

Security Notes

  • Credentials are stored in .env (owner-read-only, not version-controlled).
  • The server runs as a non-root user (mcpuser, UID 1000) inside the container.
  • Credentials are never logged.
  • For production, set OME_VERIFY_SSL=true and use a valid TLS certificate on OME.
  • The MCP endpoint itself is plain HTTP on port 8000; place a reverse proxy (nginx/caddy)

with TLS in front of it if external exposure is required.

---

Troubleshooting

Container won't start: ``bash ./service_control.sh logs ``

Authentication errors:

  • Verify OME_USER / OME_PASSWORD in .env
  • Confirm OME is reachable: curl -k https://192.168.1.145/api/SessionService/Sessions

SSL errors:

  • Set OME_VERIFY_SSL=false for self-signed certs
  • Restart after changing: ./service_control.sh restart

Tools return empty results:

  • Devices may not be discovered yet — use ome_create_discovery_job
  • Check OME permissions for the API account

---

Adding New Tools

  1. Add a Pydantic Input model in ome_mcp_server.py
  2. Add a function decorated with @mcp.tool(name="ome_your_tool")
  3. Call _ome_get / _ome_post as appropriate
  4. Rebuild: ./service_control.sh rebuild && ./service_control.sh restart

---

License

MIT License — see LICENSE file.

---

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use AI & ML servers.