Get the FREE Ultimate OpenClaw Setup Guide →

bmc_mcp_server

BMC MCP Server for Redfish API operations

Installation
Run this command in your terminal to add the MCP server to Claude Code.
Run in terminal:
Command
claude mcp add --transport stdio dibaotian-bmc_mcp_server node /home/xilinx/Documents/arnic_eng/mcp/bmc-server/index.js \
  --env BMC_IP="BMC IP address" \
  --env BMC_PASSWORD="BMC password" \
  --env BMC_USERNAME="BMC username (default: USERID)"

How to use

This MCP server implements a Redfish-based Out-of-Band (BMC) management interface for servers. It exposes a set of MCP tools that can query and control the server, including power state queries, power on/off/restart operations, graceful shutdown/restart, and hardware monitoring such as PCIe devices, power supplies, temperatures, and fan status. The tools are designed to be invoked from a client (like Cline) or via manual MCP protocol interactions. You can either configure the server through environment variables or pass BMC connection details at tool invocation time. Example tools include get_power_state, power_on, power_off, power_cycle, graceful_shutdown, graceful_restart, get_pcie_devices, get_pcie_device_by_slot, get_boot_progress, get_power_supply_status, get_power_metrics, get_thermal_sensors, and get_fan_status. When using environment variables, you provide the BMC_IP, BMC_USERNAME, and BMC_PASSWORD in the MCP config. If you don’t set env vars, you can supply the BMC connection details in the tool call payload at runtime.

How to install

Prerequisites:

  • Node.js and npm installed on the host
  • Access to the MCP project repository

Step-by-step installation:

  1. Navigate to the MCP server directory: cd mcp/bmc-server

  2. Install dependencies: npm install

  3. Configure how to connect to the BMC:

    • Option A: Environment variables (recommended). Update the MCP config to include the bmc server with env vars for BMC_IP, BMC_USERNAME, and BMC_PASSWORD (see the provided example in the README).
    • Option B: Pass BMC connection details at runtime when invoking tools (payload with bmc_ip, username, password).
  4. Run the server locally for testing: node index.js

  5. Integrate with your MCP client (e.g., Cline) by referencing the configured mcpServers entry (here named "bmc").

Additional notes

Tips and considerations:

  • Default configuration disables SSL certificate validation (rejectUnauthorized: false) for testing. For production, enable certificate verification and use strong credentials.
  • The server supports both legacy and new API variants; some endpoints will automatically downgrade to a compatible version if needed.
  • When using get_pcie_device_by_slot, supported slot formats include numeric (e.g., "3"), full slot name (e.g., "slot_3"), and onboard devices (e.g., "ob_1").
  • If a requested PCIe device slot does not exist, the API will return an error message listing available devices.
  • The environment can be extended with additional variables if you host multiple BMCs; ensure network access and proper permissions.
  • The README mentions a number of hardware-specific APIs (PowerSubsystem, EnvironmentMetrics, ThermalSubsystem); actual availability may vary by server model and firmware version.

Related MCP Servers

Sponsor this space

Reach thousands of developers