Skip to main content
Glama

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

Related MCP server: cipp-mcp

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:

  1. Authenticates via aaaLogin to get a session cookie (600s TTL)

  2. Caches and auto-refreshes the session before expiry

  3. Serializes all requests to avoid overloading the resource-constrained BMC

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

Available Tools

16 tools
get_bios_settingsA

Get all current BIOS token values. Returns token names, class names, and current values needed for set_bios_setting.

Inputs: no named parameters.

get_event_logC

Get system event log (SEL) entries from the CIMC. Shows hardware events, errors, and status changes.

Inputs: limit.

get_faultsB

List all active faults with severity, description, cause, and timestamps. Optionally filter by severity level.

Inputs: severity.

get_firmware_versionsB

List all component firmware versions: CIMC, BIOS, storage controllers, network adapters, etc.

Inputs: no named parameters.

get_inventoryA

Complete hardware inventory: CPUs, DIMMs, PCI cards, network adapters, and storage controllers. Answers 'What hardware is in this server?'

Inputs: no named parameters.

get_network_adaptersB

List all network adapters (NICs) with model, vendor, MAC addresses, and port details.

Inputs: no named parameters.

get_power_statsB

Detailed power consumption statistics: input voltage, current, consumed power, and power budget.

Inputs: no named parameters.

get_sensorsB

Get all sensor readings: fans, power supplies, and temperature data from the CIMC-managed server.

Inputs: no named parameters.

get_server_healthA

Composite health check: server status, active faults, DIMM/PSU/fan/storage status, and power consumption. Answers 'Is the server healthy?'

Inputs: no named parameters.

get_server_summaryA

Get overall server status including power state, model, serial number, CPU/memory counts, and operability. Single composite view of the CIMC-managed server.

Inputs: no named parameters.

get_storage_summaryB

Storage subsystem overview: RAID controllers, virtual drives (arrays), and physical disks with health and status.

Inputs: no named parameters.

get_thermal_statsB

Detailed thermal readings: CPU temperatures, memory temperatures, ambient, and fan speeds for all zones.

Inputs: no named parameters.

power_controlA

Control server power: on, off, graceful shutdown, power cycle, hard reset, or BMC reset. WARNING: 'off' and 'reset' are immediate and can cause data loss.

Inputs: action (required), confirm (required).

set_bios_settingA

Modify a BIOS token value. Use get_bios_settings first to discover available tokens, class names, and attribute names. Requires server reboot to take effect.

Inputs: tokenDn (required), className (required), attributeName (required), value (required), +1 more.

set_locator_ledA

Turn the server locator LED on or off. Used to physically identify a server in a rack.

Inputs: state (required).

sol_configureB

Enable, disable, or configure Serial over LAN (SOL). SOL provides remote console access to the server.

Inputs: enabled (required), baudRate.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 16 tools

    Disambiguation5/5

    Every tool has a clearly distinct purpose targeting specific aspects of CIMC server management, such as BIOS settings, event logs, faults, firmware, inventory, power, sensors, health, storage, thermal, power control, and LED/SOL configuration. There is no overlap or ambiguity between tools; each serves a unique function within the monitoring and control domain.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern using snake_case, with verbs like 'get', 'set', 'power_control', and 'sol_configure' clearly indicating actions. This uniformity makes the tool set predictable and easy to navigate, enhancing usability for agents.

    Tool Count5/5

    With 16 tools, the server provides comprehensive coverage for CIMC server management, including monitoring, diagnostics, and control operations. Each tool is well-scoped and necessary for tasks like health checks, inventory, power management, and configuration, avoiding redundancy while ensuring complete functionality.

    Completeness5/5

    The tool set offers complete coverage for CIMC server management, including CRUD-like operations (e.g., get_bios_settings and set_bios_setting), lifecycle control (power_control), and comprehensive monitoring across hardware, firmware, sensors, and logs. There are no obvious gaps; agents can perform all essential tasks from status checks to configuration changes.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers