Mirastack Redfish MCP Server
DMTF Redfish-compliant BMC management with tiered, dry-run write protection.
Data last scanned today · Reviewed today
Overview
Mirastack Redfish MCP Server provides an interface for interacting with out-of-band management controllers including iDRAC, iLO, XCC, and OpenBMC. It leverages the DMTF Redfish-Publications metadata schema to expose BMC diagnostics and hardware controls to your AI assistant. The server prioritizes operational safety by defaulting to a read-only state. Any potential mutations are constrained by tiered registration and require explicit dry-run confirmations before execution. This structure is designed to isolate powerful BMC operations from autonomous agent workflows.
Our verdict
This server carries a high risk level with a security score of 33/100. The primary concerns involve it being a community-maintained project rather than an official vendor release, compounded by a limited contributor base and a lack of editorial review. While the implementation of dry-run mechanisms and read-only defaults provides a layer of safety, users should exercise significant caution when connecting this tool to critical infrastructure environments.
- Zero direct dependencies minimize the software supply-chain surface.
- Features built-in dry-run confirmation for all mutation attempts.
- Uses schema metadata pinned to official DMTF Redfish releases.
- Supports stdio and streamable-http transports via the Python SDK.
- Currently maintained by a single contributor with low bus-factor.
- Authentication and read-only mode logic remain unreviewed.
- Not an official product of the hardware vendors.
- Extremely limited community adoption with only one GitHub star.
Tools
| Tool | Description | Risk |
|---|---|---|
| service_info | Returns details about the Redfish service root and capabilities. | low |
| set_power_state | Sets the power state of the target BMC system. | high |
| set_boot_override | Configures the boot override settings for the target system. | high |
| reset_manager | Resets the BMC manager. | high |
| cancel_task | Cancels a specific Redfish task. | high |
| set_bios_attributes | Updates BIOS attributes for the target system. | medium |
| eject_virtual_media | Ejects virtual media from the target system. | medium |
| redfish_patch | Performs a Redfish PATCH operation on a resource. | medium |
| redfish_post | Performs a Redfish POST operation on a resource. | medium |
| redfish_delete | Performs a Redfish DELETE operation on a resource. | high |
Compatibility
| Client | Local | Docker | Remote | Read-only |
|---|---|---|---|---|
| ChatGPT | ||||
| Claude Desktop | ||||
| Cursor | ||||
| VS Code | ||||
| Windsurf |
Frequently asked questions
›Is the server read-only by default?
Yes, mutating tools are not registered unless you explicitly enable write mode, and all mutations are performed as a dry-run until confirmed.
›How can I configure access for multiple BMC endpoints?
You can provide a JSON or YAML file path via the MIRASTACK_REDFISH_ENDPOINTS environment variable containing a map of endpoint configurations.
›Does the server support discovery without credentials?
Yes, the server can start without endpoint credentials to allow for MCP scanner validation and metadata indexing, though BMC-connected tools will return configuration errors.
›Can I reduce the number of tools available to the model?
Yes, you can use the MIRASTACK_REDFISH_TOOL_PROFILE environment variable to set a profile like 'core' for a smaller tool surface, or explicitly define toolsets with MIRASTACK_REDFISH_TOOLSETS.
›How do I secure the streamable-http transport?
Binding the server to 0.0.0.0 exposes BMC control to any reachable host, so you should bind to loopback unless the listener is behind an authenticating proxy on a trusted network.
›What authentication and Redfish behaviors are supported?
The server supports session-based authentication, ETag and If-Match headers for integrity, 202 task polling, and registry-backed error rendering.
Alternatives
Changelog
Badge
Maintain this server? Add the live badge to your README.