Skip to main content
Glama
carlosedp

Redfish MCP Server

by carlosedp

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