- Home
- MCP servers
- Redfish
Redfish
- python
0
GitHub Stars
python
Language
6 months ago
First Indexed
3 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
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.
How to use
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.
How to install
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.
Configuration and usage notes
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"
}
}
Examples of common tasks
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.
Troubleshooting and tips
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.
Available tools
login
Establish a session with the Redfish service to authenticate requests and obtain an authorization token.
logout
Terminate the session and invalidate the authorization token.
get
Perform a GET request against a mapped Redfish endpoint through the MCP client.
post
Perform a POST request to trigger actions such as firmware updates and system configurations.
delete
Remove resources such as uploaded firmware payloads or placeholder entries when cleaning up.
patch
Apply partial updates to resources, for example changing target BIOS/BMC settings or update service properties.
get_members
List member resources under a given service, such as Systems or FirmwareInventory.
get_member_details
Fetch detailed information about a specific member entry.
upload_image
Upload a firmware image to be used for a subsequent update operation.
simple_update
Trigger a firmware update against a specified target and receive a task URI for monitoring.
wait_for_task_completion
Poll the provided task URI until the update task finishes and report the final status.
power_cycle
Initiate a Power Cycle operation on the target hardware if supported by the platform.