bmc_mcp_server
BMC MCP Server for Redfish API operations
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:
-
Navigate to the MCP server directory: cd mcp/bmc-server
-
Install dependencies: npm install
-
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).
-
Run the server locally for testing: node index.js
-
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
zen
Selfhosted notes app. Single golang binary, notes stored as markdown within SQLite, full-text search, very low resource usage
MCP -Deepseek_R1
A Model Context Protocol (MCP) server implementation connecting Claude Desktop with DeepSeek's language models (R1/V3)
mcp-fhir
A Model Context Protocol implementation for FHIR
mcp
Inkdrop Model Context Protocol Server
mcp-appium-gestures
This is a Model Context Protocol (MCP) server providing resources and tools for Appium mobile gestures using Actions API..
dubco -npm
The (Unofficial) dubco-mcp-server enables AI assistants to manage Dub.co short links via the Model Context Protocol. It provides three MCP tools: create_link for generating new short URLs, update_link for modifying existing links, and delete_link for removing short links.