Manage standalone Cisco C-Series rack servers through the CIMC XML API.
cimc-mcp
MCP server for Cisco CIMC (Integrated Management Controller) — manage standalone C-Series rack servers through the XML API.
Features
16 tools covering full server lifecycle management:
| Tool | Description |
|---|---|
get_server_summary |
Power state, model, serial, CPU/memory counts, operability |
get_server_health |
Composite health: DIMMs, PSUs, fans, storage, temps, faults |
get_sensors |
Fan speeds, PSU readings, temperature data |
get_inventory |
CPUs, DIMMs, PCI cards, NICs, storage controllers |
get_faults |
Active faults with severity filtering |
power_control |
Power on/off/cycle/reset/shutdown (confirmation required) |
get_storage_summary |
RAID controllers, virtual drives, physical disks |
get_bios_settings |
All BIOS token values |
set_bios_setting |
Modify BIOS tokens (confirmation required, reboot to apply) |
get_network_adapters |
NICs, MAC addresses, port details |
get_firmware_versions |
CIMC, BIOS, storage controller, NIC firmware |
get_power_stats |
Input voltage, current, consumed power |
get_thermal_stats |
CPU/memory/ambient temps, fan speeds |
get_event_log |
System event log entries |
set_locator_led |
Chassis locator LED on/off |
sol_configure |
Serial over LAN enable/disable/baud rate |
Requirements
- Node.js 22+
- macOS with
/usr/bin/curl(uses system curl for network routing to BMC interfaces) - Network access to CIMC management interface
Setup
git clone https://github.com/schwarztim/cimc-mcp.git
cd cimc-mcp
npm install
npm run build
Environment Variables
cp .env.example .env
# Edit .env with your CIMC credentials
| Variable | Default | Description |
|---|---|---|
CIMC_HOST |
192.168.88.10 |
CIMC BMC IP address |
CIMC_USERNAME |
admin |
Login username |
CIMC_PASSWORD |
(required) | Login password |
CIMC_VERIFY_TLS |
false |
Verify TLS certificates |
CIMC_INTERFACE |
(none) | Local network interface to bind |
Usage
Claude Code
Add to ~/.claude/user-mcps.json:
{
"mcpServers": {
"cimc": {
"command": "node",
"args": ["/path/to/cimc-mcp/dist/index.js"],
"env": {
"CIMC_HOST": "192.168.88.10",
"CIMC_USERNAME": "admin",
"CIMC_PASSWORD": "your-password"
}
}
}
}
Standalone
CIMC_HOST=192.168.88.10 CIMC_USERNAME=admin CIMC_PASSWORD=changeme npm start
How It Works
All communication goes through the CIMC XML API — a single POST endpoint at https://{host}/nuova. The server:
- Authenticates via
aaaLoginto get a session cookie (600s TTL) - Caches and auto-refreshes the session before expiry
- Serializes all requests to avoid overloading the resource-constrained BMC
- Parses XML responses and normalizes single-item/array inconsistencies
macOS Network Note
CIMC BMCs are typically on isolated management networks reachable via a dedicated interface. On macOS, only system binaries (/usr/bin/curl) have the network entitlements to route across interfaces. This server uses system curl as its HTTP transport instead of Node.js https for this reason.
Compatibility
Tested on:
- Cisco UCS C220 M4 (CIMC 2.0(10l))
Should work with any standalone C-Series server running CIMC 2.x or later. UCS Manager-managed servers use a different API and are not supported.
Development
npm run dev # Run with tsx (hot reload)
npm test # Run tests
npm run build # Compile TypeScript
License
MIT
Tools (16)
get_server_summaryGet power state, model, serial, CPU/memory counts, and operability.get_server_healthGet composite health status for DIMMs, PSUs, fans, storage, temps, and faults.get_sensorsGet fan speeds, PSU readings, and temperature data.get_inventoryGet inventory of CPUs, DIMMs, PCI cards, NICs, and storage controllers.get_faultsGet active faults with severity filtering.power_controlPerform power on, off, cycle, reset, or shutdown actions.get_storage_summaryGet RAID controllers, virtual drives, and physical disks information.get_bios_settingsGet all BIOS token values.set_bios_settingModify BIOS tokens.get_network_adaptersGet NICs, MAC addresses, and port details.get_firmware_versionsGet CIMC, BIOS, storage controller, and NIC firmware versions.get_power_statsGet input voltage, current, and consumed power.get_thermal_statsGet CPU, memory, ambient temperatures, and fan speeds.get_event_logGet system event log entries.set_locator_ledToggle chassis locator LED on or off.sol_configureEnable, disable, or set baud rate for Serial over LAN.Environment Variables
CIMC_HOSTCIMC BMC IP addressCIMC_USERNAMELogin usernameCIMC_PASSWORDrequiredLogin passwordCIMC_VERIFY_TLSVerify TLS certificatesCIMC_INTERFACELocal network interface to bindConfiguration
{"mcpServers": {"cimc": {"command": "node", "args": ["/path/to/cimc-mcp/dist/index.js"], "env": {"CIMC_HOST": "192.168.88.10", "CIMC_USERNAME": "admin", "CIMC_PASSWORD": "your-password"}}}}