home / mcp / redfish mcp server
Provides a Redfish-based MCP server for session management, resource access, and firmware upgrade workflows.
Configuration
View docs{
"mcpServers": {
"hankerbiao-redfish-mcp": {
"command": "uv",
"args": [
"run",
"python",
"-m",
"mcp_server"
]
}
}
}You manage firmware updates and sessioned access to Redfish-enabled hardware using a lightweight MCP server setup. This guide walks you through practical usage, installation steps, and the core configuration you’ll rely on to automate maintenance tasks.
You connect to a Redfish endpoint, authenticate via a session, and use the firmware service to upload images, trigger updates, poll tasks, and perform power cycles. The MCP server exposes resource services such as Systems and Firmware and provides a unified client interface to manage sessions, requests, and actions. Use the provided MCP client to upload firmware, start updates, monitor task status, and apply or revert BIOS/BMC configuration as needed.
Prerequisites: you need Python installed on your system. You will also use the MCP helper toolset to manage dependencies and run the server.
Step 1: Install the MCP runner and dependencies locally.
Step 2: Install runtime dependencies via the MCP management tool.
Step 3: Start the MCP server for Redfish client integration.
Step 4: Configure endpoints and begin interacting with the Redfish services through the MCP client.
Configure the endpoints that map to the Redfish services you will use. You will define session, firmware inventory, update actions, and targeted firmware entries under an endpoints configuration. The client will select the appropriate endpoint path based on the BMC type you specify.
Example structure for endpoint mapping (shown here for clarity):
{
"default": {
"SessionService": "/redfish/v1/SessionService/Sessions",
"FirmwareInventory": "/redfish/v1/UpdateService/FirmwareInventory",
"StartUpdate": "/redfish/v1/UpdateService/Actions/UpdateService.StartUpdate",
"UpdateService": "/redfish/v1/UpdateService",
"ActiveBIOSTarget": "/redfish/v1/UpdateService/FirmwareInventory/ActiveBIOS",
"ActiveBMCTarget": "/redfish/v1/UpdateService/FirmwareInventory/ActiveBMC"
}
}This guide’s practical workflow demonstrates uploading a firmware image, initiating a simple update, waiting for the update task to complete, and optionally triggering a power cycle. You can adapt these steps to your own firmware packages and target fields.
Note: The client can wait for a task to complete by polling the task URI you receive after starting an update.
If you encounter connection or authentication issues, verify your endpoint paths match the BMC type and ensure your SSL verification settings align with your environment. Review logs configured to show detailed request/response data and any error messages to pinpoint misconfigurations in the endpoint mapping or credentials.
Establish a session with the Redfish service to authenticate requests and obtain an authorization token.
Terminate the session and invalidate the authorization token.
Perform a GET request against a mapped Redfish endpoint through the MCP client.
Perform a POST request to trigger actions such as firmware updates and system configurations.
Remove resources such as uploaded firmware payloads or placeholder entries when cleaning up.
Apply partial updates to resources, for example changing target BIOS/BMC settings or update service properties.
List member resources under a given service, such as Systems or FirmwareInventory.
Fetch detailed information about a specific member entry.
Upload a firmware image to be used for a subsequent update operation.
Trigger a firmware update against a specified target and receive a task URI for monitoring.
Poll the provided task URI until the update task finishes and report the final status.
Initiate a Power Cycle operation on the target hardware if supported by the platform.