Skip to main content
Glama

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 dev mode 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:

# Install development dependencies uv sync

Usage

The simplest way to configure the Redfish MCP server is using environment variables. The server will automatically connect on startup if these are provided:

export REDFISH_HOST="https://192.168.1.100" export REDFISH_USERNAME="admin" export REDFISH_PASSWORD="password123" export REDFISH_VERIFY_SSL="false" # Optional, defaults to false export REDFISH_TIMEOUT="30" # Optional, defaults to 30 seconds

MCP Client Configuration

Configure the server in your MCP client with environment variables:

Claude Desktop

Add to ~/.config/claude-desktop/claude_desktop_config.json:

{ "mcpServers": { "redfish": { "command": "uv", "args": ["run", "redfish-mcp-server"], "cwd": "/path/to/your/redfish-mcp-server", "env": { "REDFISH_HOST": "https://192.168.1.100", "REDFISH_USERNAME": "admin", "REDFISH_PASSWORD": "password123", "REDFISH_VERIFY_SSL": "false" } } } }

LM Studio

Add to your LM Studio configuration (mcp.json):

{ "mcpServers": { "redfish": { "command": "uv", "args": [ "--directory", "C:\\Users\\MyUser\\repos\\redfish-mcp-server", "run", "mcp", "run", "main.py" ], "env": { "REDFISH_HOST": "http://localhost:8000", "REDFISH_USERNAME": "admin", "REDFISH_PASSWORD": "password123" } } } }

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:

{ "mcpServers": { "redfish": { "command": "bash", "args": [ "-c", "REDFISH_HOST=http://localhost:8000 REDFISH_USERNAME=admin REDFISH_PASSWORD=password123 /home/carlosedp/.local/bin/uv --directory /home/carlosedp/repos/redfish-mcp-server run mcp run main.py" ] } } }

Manual Configuration

If you prefer not to use environment variables, you can use the tools to configure the connection:

  1. Use the to check current configuration status

  2. 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

  3. Use the available tools to interact with your Redfish-enabled hardware:

Available Tools

  • redfish_get_config_status - Check current configuration status and connection

  • redfish_configure - Configure connection to Redfish endpoint (if not using env vars)

  • redfish_get_system_info - Get system information and inventory

  • redfish_power_control - Control system power state

  • redfish_get_event_logs - Retrieve system event logs

  • redfish_get_health_status - Get system health and status

  • redfish_manage_users - Manage user accounts

  • redfish_get_sensors - Get sensor readings

  • redfish_clear_logs - Clear system event logs

Example Usage

# Check current configuration status await redfish_get_config_status({}) # If not configured via environment variables, configure manually await redfish_configure({ "host": "https://192.168.1.100", "username": "admin", "password": "password123", "verify_ssl": false }) # Get system information await redfish_get_system_info({}) # Power on the system await redfish_power_control({ "action": "On" }) # Check system health await redfish_get_health_status({})

Development

FastMCP Development Features

This server is built with FastMCP, providing enhanced development experience:

  • Development Mode: Use mcp dev for hot reloading during development

  • MCP 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

# Set environment variables for automatic configuration export REDFISH_HOST="https://192.168.1.100" export REDFISH_USERNAME="admin" export REDFISH_PASSWORD="password123" export REDFISH_VERIFY_SSL="false" # Run in development mode with the inspector uv run mcp dev main.py

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:

# Create a venv and install dependencies python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate` pip install -r requirements.txt # Run the mockup server python redfishMockupServer.py --short-form -D public-rackmount1`
-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/carlosedp/redfish-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server