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
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to authenticate as an admin.