Skip to main content

mcidrac

MCP server for Dell iDRAC9 (14G+ PowerEdge) over Redfish. Manage a fleet of iDRACs from Claude or any MCP client: power, health, inventory, SEL, virtual media, boot-to-ISO, BIOS/iDRAC attributes, SCP backup/restore, and virtual console access.

Sibling of mccimc (the Cisco CIMC equivalent) — same registry model, same conventions.

Install

uvx mcidrac --check          # run from PyPI, validate config
uv tool install mcidrac      # or install persistently

Configure

Create ~/.config/mcidrac/idracs.toml (or ./mcidrac.toml, or point $MCIDRAC_CONFIG at a file):

[[idracs]]
name = "r740-lab"
host = "192.0.2.10"
user = "root"
password_env = "R740_LAB_PASS"       # or password = "..." literally
# cert_path = "~/certs/idrac-ca.pem" # optional pinned TLS; default skips verify
description = "R740 lab box, rack 2 U12"

Verify with mcidrac --check.

Run

mcidrac                                  # HTTP on 127.0.0.1:7903/mcp
mcidrac --transport stdio                # stdio for embedded use
mcidrac --transport http --port 7903 --host 0.0.0.0

Register with Claude Code:

# stdio (spawned per session, simplest)
claude mcp add idrac --scope user --env R740_LAB_PASS=... -- uvx mcidrac --transport stdio

# or long-running HTTP
claude mcp add idrac --transport http http://127.0.0.1:7903/mcp

Surface

24 tools (idrac_*): list/ping/info/health, raw idrac_get escape hatch, power control + locator LED, inventory/sensors/firmware, SEL + Lifecycle logs, virtual media + boot override + one-shot idrac_boot_to_iso, BIOS + Dell attribute get/set, job queue, SCP export/import, and idrac_console (HTML5 console URL with one-shot temp credentials).

Resources: bundled reference docs (idrac://docs/redfish-map, firmware-quirks, operations-cookbook, jobs-and-tasks), the registry, and live per-box snapshots (idrac://{name}/info, /sensors, /sel, /vmedia, /jobs).

Prompts: health_check (fleet sweep), identify_box, prepare_install (ISO → console), diagnose_wedged, firmware_audit, backup_config.

Integration testing without hardware

Dell publishes real Redfish captures of iDRAC9 and iDRAC10 systems (dell/iDRAC-Redfish-Scripting, "iDRAC Redfish Mockup Clients"). scripts/mockup-up.sh serves them with DMTF's Redfish-Mockup-Server over HTTPS in Docker, so the whole stack — TLS, token sessions, Dell OEM paths — gets exercised against genuine iDRAC responses:

scripts/mockup-up.sh              # start the iDRAC9 R660xs capture
scripts/mockup-up.sh all          # plus three iDRAC10 firmware lines + 2 configs
MCIDRAC_CONFIG=.mockup/idracs.toml python3 scripts/shakedown.py
scripts/mockup-up.sh down         # tear down

The shakedown runs the 15-tool read ladder against every configured box over MCP stdio.

Static mockups can't simulate writes, so scripts/simdrac.py is a behavioral simulator: it serves the R660xs capture for reads and overlays a live state machine with the Dell write semantics — token sessions with 401 enforcement, a power state machine ("already on" errors), vMedia insert/eject state, DellAttributes read-only rejections via top-level ExtendedInfo, BIOS PATCH → JID job lifecycle (Scheduled→Running→Completed), the SCP export task-morph, and SEL clear.

python3 scripts/write-shakedown.py   # self-contained: boots simdrac,
                                     # runs all destructive tools, asserts outcomes

Real hardware remains the final gate (a simulator can only encode the semantics we know about), but every tool and every guardrail now has an executable test.

Compatibility

Targets iDRAC9 (PowerEdge 14G+: R(x)40 / R(x)50 / R(x)60 era). Pure Redfish — no racadm, no WS-Man, no vendor SDK; the only dependency is FastMCP. iDRAC8 partially works for reads on recent firmware but is not a target. Known firmware-version quirks (virtual-media path moves, $expand support, GetKVMSession availability) are handled in code and documented in idrac://docs/firmware-quirks.

Safety notes

  • Destructive tools (idrac_power, idrac_bios_set, idrac_scp_import, idrac_boot_to_iso, idrac_sel_clear, idrac_attributes_set) carry MCP destructiveHint annotations so clients can gate them.
  • Failed logins count toward iDRAC's IP-block lockout; the server uses token sessions with guaranteed logout and never retries auth in a loop.
  • Passwords never leave the server process — idrac_list and the registry resource return summaries only.

License

MIT

Metadata

Release files for mcidrac 2026.8.10.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcidrac 2026.8.10.1
File Size Uploaded Provenance
mcidrac-2026.8.10.1.tar.gz 51.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for mcidrac 2026.8.10.1
File Interpreter ABI Platform
mcidrac-2026.8.10.1-py3-none-any.whl Python 3 none any Details

Total release size: 104.0 kB

Release files / mcidrac-2026.8.10.1.tar.gz

Download URL mcidrac-2026.8.10.1.tar.gz
Size 51.9 kB
Tags Source
SHA-256 checksum
How to use checksums
52ed918899be8a4105f12d222765aa6e3bf4760780688f2a8a63fd3effc06309
BLAKE2b-256 checksum
How to use checksums
05547051b379a1acc49efbfef2904f1390dc42bb28963da67d0bf2a742608704
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"EndeavourOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / mcidrac-2026.8.10.1-py3-none-any.whl

Download URL mcidrac-2026.8.10.1-py3-none-any.whl
Size 52.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a8f934dff699d3366e71f6110f479253d5a8625ea8958860df6489be3e234c8a
BLAKE2b-256 checksum
How to use checksums
1b1184a91e6dd6b4eaeaee0249622c451112f05bc4321bce5a0df5737daef495
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"EndeavourOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for mcidrac 2026.8.10.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

2026.8.10.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page