The mockup lab — six iDRACs, zero hardware
Dell publishes real Redfish captures of iDRAC-managed servers — complete resource trees dumped from live machines. mcidrac’s test harness serves them with DMTF’s Redfish-Mockup-Server over HTTPS, so you can learn the whole tool surface (and we can test it) against genuine iDRAC data with no PowerEdge in sight.
You need Docker, Python 3.11+ with uv, and a clone of the mcidrac repository.
1. Start the fleet
Section titled “1. Start the fleet”cd mcidracscripts/mockup-up.sh allFirst run downloads the captures (~70 MB). You get six BMCs on localhost, each a real machine’s data:
| Name | Hardware | Generation | Firmware |
|---|---|---|---|
r660xs |
PowerEdge R660xs | iDRAC9, 16G | 7.20.10.05 |
r770 |
PowerEdge R770 | iDRAC10, 17G | 1.10.17.00 |
r7725 |
PowerEdge R7725 | iDRAC10, 17G | 1.20.70.50 |
xe9712 |
PowerEdge XE9712 | iDRAC10, 17G | 1.30.07.10 |
basic |
basic config | iDRAC9, 15G | 7.10.30.00 |
gpu-dpu |
GPU/DPU config | iDRAC9, 16G | 7.10.50.00 |
The script writes a ready-made registry at .mockup/idracs.toml.
2. Point mcidrac at it
Section titled “2. Point mcidrac at it”MCIDRAC_CONFIG=.mockup/idracs.toml uv run mcidrac --checkSix iDRACs configured. Now explore — everything in the read surface
works: idrac_info shows real service tags, idrac_inventory lists the
R660xs’s actual DIMMs and drives, idrac_sel pages through its real
event log, and idrac_firmware reports what was genuinely installed.
3. Run the shakedown
Section titled “3. Run the shakedown”MCIDRAC_CONFIG=.mockup/idracs.toml python3 scripts/shakedown.pyThis drives the 15-tool read ladder against all six boxes over MCP stdio — 90 tool calls across two iDRAC generations. It’s the same sweep that caught a real iDRAC10 incompatibility during development (see Firmware quirks).
4. Test the write paths
Section titled “4. Test the write paths”Static mockups can’t change state, so the repo includes simdrac — a behavioral simulator that serves the R660xs capture for reads and implements Dell’s write semantics live: a power state machine, virtual media insert/eject, BIOS jobs that walk Scheduled → Running → Completed, read-only attribute rejections, and the SCP export task quirk.
python3 scripts/write-shakedown.pyTwenty destructive-tool steps run with outcome assertions — including the guardrails: double-mounts rejected, wrong-box SCP imports refused, powering off an already-off box returns an honest error.
5. Tear down
Section titled “5. Tear down”scripts/mockup-up.sh downWhat you’ve learned
Section titled “What you’ve learned”You’ve now driven every mcidrac tool against real iDRAC data. When a physical PowerEdge shows up, the only new things are a registry entry with real credentials — and consequences.