MCP server for Dell OpenManage Enterprise (OME) — monitor and manage Dell servers through AI assistants like Claude.
- Device management — list devices, view details, health summary
- Alert management — list, filter, acknowledge alerts (single or bulk)
- Warranty tracking — list warranties, find expired ones
- Firmware compliance — check firmware baselines
- Job monitoring — view OME jobs and their status
- Group & policy management — list device groups and alert policies
- OData pagination — automatic multi-page result fetching
- Session-based auth — secure X-Auth-Token sessions, auto-created and cleaned up
pip install clr-openmanage-mcp
# or
uvx clr-openmanage-mcpPreferred: Configuration file at ~/.config/openmanage/credentials.json (chmod 600):
{
"host": "ome.example.com",
"username": "admin",
"password": "your-password"
}Alternative: Environment variables are also supported:
| Variable | Description | Example |
|---|---|---|
OME_HOST |
OME server hostname or IP | ome.example.com |
OME_USERNAME |
OME admin username | admin |
OME_PASSWORD |
OME admin password | secretpass |
Optional:
| Variable | Description | Default |
|---|---|---|
OME_READ_ONLY |
Run in read-only mode | false |
OME_TRANSPORT |
Transport protocol (stdio or http) |
stdio |
OME_LOG_LEVEL |
Log level | INFO |
Add to your claude_desktop_config.json:
{
"mcpServers": {
"openmanage": {
"command": "uvx",
"args": ["clr-openmanage-mcp"]
}
}
}Add via CLI:
claude mcp add openmanage -- uvx clr-openmanage-mcpOr add to your .mcp.json:
{
"openmanage": {
"command": "uvx",
"args": ["clr-openmanage-mcp"]
}
}Add to your VS Code settings or .vscode/mcp.json:
{
"mcp": {
"servers": {
"openmanage": {
"command": "uvx",
"args": ["clr-openmanage-mcp"]
}
}
}
}Note: Configuration is read from ~/.config/openmanage/credentials.json or environment variables. No need to specify credentials in MCP config files.
To run as a standalone HTTP server:
clr-openmanage-mcp --transport http --host 0.0.0.0 --port 8000| Tool | Description |
|---|---|
ome_version |
Get OME version, build info, and operation status |
| Tool | Description | Parameters |
|---|---|---|
ome_list_devices |
List all managed devices | top? |
ome_get_device |
Get full detail for a single device | device_id |
ome_device_health |
Aggregate device health summary (count by status) | — |
| Tool | Description | Parameters |
|---|---|---|
ome_list_alerts |
List alerts with optional filters | severity?, category?, status?, top? |
ome_get_alert |
Get full detail for a single alert | alert_id |
ome_alert_count |
Alert count aggregated by severity | — |
ome_alert_ack |
Acknowledge one or more alerts by ID | alert_ids |
ome_alert_ack_all |
Acknowledge all unacknowledged alerts matching filters | severity?, category? |
Alert filter values:
| Parameter | Accepted values |
|---|---|
severity |
critical, warning, info, normal |
status |
unack, ack |
category |
e.g. Warranty, System Health |
| Tool | Description | Parameters |
|---|---|---|
ome_list_warranties |
List all warranty records | top? |
ome_warranties_expired |
List warranties past their end date | — |
| Tool | Description | Parameters |
|---|---|---|
ome_list_groups |
List device groups | top? |
ome_list_jobs |
List jobs (sorted by most recent) | top? |
ome_list_policies |
List alert policies | top? |
ome_list_firmware |
List firmware compliance baselines | top? |
Once connected, you can ask your AI assistant things like:
- "Show me all devices in OpenManage"
- "Are there any critical alerts?"
- "Which server warranties have expired?"
- "Acknowledge all warranty alerts"
- "Show me recent jobs"
- "What's the firmware compliance status?"
All tools are read-only except ome_alert_ack and ome_alert_ack_all, which are non-destructive write operations — they mark alerts as acknowledged but do not modify device configuration.
- SSL: Self-signed certificate verification is disabled (common for OME appliances)
- Auth: Session-based with X-Auth-Token, auto-created on startup and cleaned up on shutdown
- Pagination: Automatically follows OData
@odata.nextLinkto fetch all pages (unlesstopis set) - Jobs API: OME Jobs API doesn't support
$orderby, so results are sorted client-side byLastRun - Warranty dates: OME doesn't support date comparison in OData
$filterfor warranty endpoints, so expired warranty filtering is done client-side
git clone https://github.com/clearminds/clr-openmanage-mcp.git
cd clr-openmanage-mcp
uv sync
uv run clr-openmanage-mcpMIT — see LICENSE for details.