Provides management capabilities for standalone Cisco C-Series rack servers via the Integrated Management Controller (CIMC) XML API, including power control, health monitoring, BIOS configuration, and hardware inventory retrieval.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@cimc-mcpCheck the server health and list any active faults"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 |
| Power state, model, serial, CPU/memory counts, operability |
| Composite health: DIMMs, PSUs, fans, storage, temps, faults |
| Fan speeds, PSU readings, temperature data |
| CPUs, DIMMs, PCI cards, NICs, storage controllers |
| Active faults with severity filtering |
| Power on/off/cycle/reset/shutdown (confirmation required) |
| RAID controllers, virtual drives, physical disks |
| All BIOS token values |
| Modify BIOS tokens (confirmation required, reboot to apply) |
| NICs, MAC addresses, port details |
| CIMC, BIOS, storage controller, NIC firmware |
| Input voltage, current, consumed power |
| CPU/memory/ambient temps, fan speeds |
| System event log entries |
| Chassis locator LED on/off |
| 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 buildEnvironment Variables
cp .env.example .env
# Edit .env with your CIMC credentialsVariable | Default | Description |
|
| CIMC BMC IP address |
|
| Login username |
| (required) | Login password |
|
| Verify TLS certificates |
| (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 startHow 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 TypeScriptLicense
MIT