MCP server for Dell OpenManage Enterprise server management
Project description
clr-openmanage-mcp
MCP server for Dell OpenManage Enterprise (OME) — monitor and manage Dell servers through AI assistants like Claude.
Features
- 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
Installation
pip install clr-openmanage-mcp
# or
uvx clr-openmanage-mcp
Configuration
Preferred: 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_TRANSPORT |
Transport protocol (stdio or http) |
stdio |
OME_LOG_LEVEL |
Log level | INFO |
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"openmanage": {
"command": "uvx",
"args": ["clr-openmanage-mcp"]
}
}
}
Claude Code
Add via CLI:
claude mcp add openmanage -- uvx clr-openmanage-mcp
Or add to your .mcp.json:
{
"openmanage": {
"command": "uvx",
"args": ["clr-openmanage-mcp"]
}
}
VS Code
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.
HTTP Transport
To run as a standalone HTTP server:
clr-openmanage-mcp --transport http --host 0.0.0.0 --port 8000
Tools
System
| Tool | Description |
|---|---|
ome_version |
Get OME version, build info, and operation status |
Devices
| 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) | — |
Alerts
| 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 |
Warranties
| Tool | Description | Parameters |
|---|---|---|
ome_list_warranties |
List all warranty records | top? |
ome_warranties_expired |
List warranties past their end date | — |
Groups, Jobs, Policies & Firmware
| 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? |
Example Usage
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?"
Safety
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.
Technical Notes
- 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
Development
git clone https://github.com/clearminds/clr-openmanage-mcp.git
cd clr-openmanage-mcp
uv sync
uv run clr-openmanage-mcp
License
MIT — see LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file clr_openmanage_mcp-1.0.0.tar.gz.
File metadata
- Download URL: clr_openmanage_mcp-1.0.0.tar.gz
- Upload date:
- Size: 84.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
308e06cf5c8bfc51c262f56a4df20ed49c8b78eb089d319348e290f505771be8
|
|
| MD5 |
4e299b0794faa04e720cb5ac14e6d729
|
|
| BLAKE2b-256 |
cdb06db4d46ca3177ef6efa852794e90e4c0c2fcf779ff164118aef5fa9aa5b8
|
Provenance
The following attestation bundles were made for clr_openmanage_mcp-1.0.0.tar.gz:
Publisher:
publish.yml on clearminds/clr-openmanage-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
clr_openmanage_mcp-1.0.0.tar.gz -
Subject digest:
308e06cf5c8bfc51c262f56a4df20ed49c8b78eb089d319348e290f505771be8 - Sigstore transparency entry: 963348400
- Sigstore integration time:
-
Permalink:
clearminds/clr-openmanage-mcp@baaa5c4df59564c730229861173c68f053126dcf -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/clearminds
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@baaa5c4df59564c730229861173c68f053126dcf -
Trigger Event:
push
-
Statement type:
File details
Details for the file clr_openmanage_mcp-1.0.0-py3-none-any.whl.
File metadata
- Download URL: clr_openmanage_mcp-1.0.0-py3-none-any.whl
- Upload date:
- Size: 12.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
57e6760b518c6a4ed4fb92b482b74ceffb10d90e1f09936988069809ccfb0b3a
|
|
| MD5 |
025a1038ffee43f314cd9c6199e0b22e
|
|
| BLAKE2b-256 |
79f5d3506eef03d09615fd0f8e44493036ea0c15108fa1a7ba1d77971bb97120
|
Provenance
The following attestation bundles were made for clr_openmanage_mcp-1.0.0-py3-none-any.whl:
Publisher:
publish.yml on clearminds/clr-openmanage-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
clr_openmanage_mcp-1.0.0-py3-none-any.whl -
Subject digest:
57e6760b518c6a4ed4fb92b482b74ceffb10d90e1f09936988069809ccfb0b3a - Sigstore transparency entry: 963348477
- Sigstore integration time:
-
Permalink:
clearminds/clr-openmanage-mcp@baaa5c4df59564c730229861173c68f053126dcf -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/clearminds
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@baaa5c4df59564c730229861173c68f053126dcf -
Trigger Event:
push
-
Statement type: