Register with an MCP client
Claude Code (stdio, recommended)
Section titled “Claude Code (stdio, recommended)”Spawned per session, no daemon to manage:
claude mcp add idrac --scope user \ --env R740_LAB_PASS="$R740_LAB_PASS" \ -- uvx mcidrac --transport stdioPass one --env per password_env your registry references. The
server reads ~/.config/mcidrac/idracs.toml (or $MCIDRAC_CONFIG).
Long-running HTTP server
Section titled “Long-running HTTP server”For multiple clients or a server that outlives sessions:
mcidrac --transport http --host 127.0.0.1 --port 7903claude mcp add idrac --transport http http://127.0.0.1:7903/mcpBind beyond localhost only on a network you trust — the server holds BMC credentials and its tools control hardware. There is no auth layer on the HTTP transport; treat network reachability as authorization.
Development checkout
Section titled “Development checkout”To run from a git clone so local edits apply immediately:
claude mcp add idrac --scope user \ -- uv run --directory /path/to/mcidrac mcidrac --transport stdioOther MCP clients
Section titled “Other MCP clients”Anything speaking MCP works: point it at the uvx mcidrac --transport stdio command line, or the streamable-HTTP endpoint /mcp. The server
also exposes resources (idrac://... URIs, useful for cheap polling)
and six workflow prompts — see Resources & prompts.
Permission hygiene for LLM clients
Section titled “Permission hygiene for LLM clients”Destructive tools (idrac_power, idrac_bios_set, idrac_scp_import,
idrac_boot_to_iso, idrac_sel_clear, idrac_attributes_set) carry
the MCP destructiveHint annotation. In Claude Code, leave those on
ask-every-time; read-only tools are safe to allowlist wholesale. See
the safety model for what the server does
and doesn’t protect against.