Uses Pydantic models for type-safe, structured responses and automatic JSON schema generation from type hints when interacting with Redfish endpoints.
Redfish MCP Server
A Model Context Protocol (MCP) server that enables AI agents and LLMs to control Redfish-enabled hardware and simulators through a secure API. Built with FastMCP for enhanced development experience and structured output.
Features
This MCP server provides tools for:
Power Operations: Control system power states (On, Off, Restart, etc.)
System Inventory: Get detailed hardware information and specifications
Event Logs: Retrieve and manage system event logs (System, Security, Manager)
Health Monitoring: Monitor system health, status, and sensor readings
User Account Management: Manage BMC user accounts and permissions
Sensor Monitoring: Read temperature, fan, power, and voltage sensors
Configuration Management: Check connection status and auto-configure from environment
Architecture
FastMCP Framework: Built with FastMCP for better development experience
Structured Output: Uses Pydantic models for type-safe, structured responses
Environment Configuration: Auto-configures from environment variables
Secure Authentication: Username/password authentication with configurable SSL
Development Tools: Compatible with
mcp devmode and MCP inspector
Security
All communications with Redfish endpoints are authenticated using username/password credentials. SSL verification can be configured (disabled by default for self-signed certificates common in BMCs).
Installation
This project uses uv for dependency management:
Usage
Environment Variable Configuration (Recommended)
The simplest way to configure the Redfish MCP server is using environment variables. The server will automatically connect on startup if these are provided:
MCP Client Configuration
Configure the server in your MCP client with environment variables:
Claude Desktop
Add to ~/.config/claude-desktop/claude_desktop_config.json:
LM Studio
Add to your LM Studio configuration (mcp.json):
If developing under Windows with WSL2 where the server is running in WSL, you may need to set the REDFISH_HOST to the WSL IP address or use localhost if accessing from Windows:
Manual Configuration
If you prefer not to use environment variables, you can use the tools to configure the connection:
Use the to check current configuration status
Use the to set up connection parameters manually:
Host URL (e.g.,
https://192.168.1.100)Username and password for BMC authentication
SSL verification settings
Use the available tools to interact with your Redfish-enabled hardware:
Available Tools
redfish_get_config_status- Check current configuration status and connectionredfish_configure- Configure connection to Redfish endpoint (if not using env vars)redfish_get_system_info- Get system information and inventoryredfish_power_control- Control system power stateredfish_get_event_logs- Retrieve system event logsredfish_get_health_status- Get system health and statusredfish_manage_users- Manage user accountsredfish_get_sensors- Get sensor readingsredfish_clear_logs- Clear system event logs
Example Usage
Development
FastMCP Development Features
This server is built with FastMCP, providing enhanced development experience:
Development Mode: Use
mcp devfor hot reloading during developmentMCP Inspector: Compatible with MCP inspector for debugging and testing
Structured Output: All responses use Pydantic models for type safety
Auto-generated Schemas: Tools automatically generate JSON schemas from type hints
Running the Server for Development
The server requires a Redfish hardware or simulator to connect to. Ensure the Redfish endpoint is accessible and the credentials are correct.
You can use Redfish-Mockup-Server for testing with simulated Redfish endpoints. Get the mockup data from the DMTF Redfish Mockup bundle.
Unpack them, install dependencies and run the mockup server: