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 MCPdestructiveHintannotations 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_listand 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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| mcidrac-2026.8.10.1.tar.gz | 51.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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.