MCP server for Cisco UCS CIMC (3.x/4.x firmware) — multi-CIMC registry over HTTP
Project description
mccimc
MCP server for Cisco UCS C-series CIMC management. Drive multiple CIMCs from one HTTP-served MCP endpoint, configurable as a list of known boxes.
What it does
Exposes the CIMC XML API as 20-ish typed MCP tools:
- Discovery —
cimc_list,cimc_ping - Info / inventory —
cimc_info,cimc_inventory,cimc_nics - Sensors —
cimc_sensors(temperature, power) - Power —
cimc_power_status,cimc_power(on/off/cycle/reset/soft-off/bmc-reset) - Virtual media —
cimc_vmedia_list,cimc_vmedia_mount,cimc_vmedia_unmount - SoL —
cimc_sol_status,cimc_sol_enable,cimc_sol_disable - Convenience —
cimc_locator_led(front-panel LED on/off) - KVM —
cimc_kvm_jnlp(fetch JNLP for the Java viewer) - Escape hatches —
cimc_get_mo,cimc_get_children,cimc_modify_mofor things no specific tool covers
Install
uvx mccimc # one-shot run
# or
uv tool install mccimc # persistent install
Configure
Create ~/.config/mccimc/cimcs.toml:
[[cimcs]]
name = "cimc01"
host = "cimc01.example.net"
password_env = "CIMC01_PASS"
cert_path = "~/cimc-certs/cimc01.pem"
description = "Lab box"
Then export the password env vars:
export CIMC01_PASS='...'
See cimcs.example.toml for the full schema.
Run
mccimc # HTTP on 127.0.0.1:7902/mcp
mccimc --transport stdio # for local Claude Code embedding
mccimc --host 0.0.0.0 --port 8080 # LAN-accessible
mccimc --check # validate config and exit
Connect
Add to your Claude Code MCP config:
claude mcp add cimc --transport http http://127.0.0.1:7902/mcp
Or for stdio (no need to start mccimc separately):
claude mcp add cimc --scope user -- uvx mccimc --transport stdio
Example session (LLM-driven)
> Which CIMCs do I have?
[cimc_list] → [{"name": "cimc01", ...}, {"name": "cimc02", ...}]
> Is cimc01 powered on?
[cimc_power_status cimc="cimc01"] → {"operPower": "on", "adminPower": "policy"}
> What's it drawing?
[cimc_sensors cimc="cimc01"] → {"power": {"consumedPower": "144", ...}}
> Mount the installer
[cimc_vmedia_mount cimc="cimc01" url="http://198.51.100.10/install.iso" name="install"]
CIMC firmware compatibility
Tested against CIMC 3.0(4s) (UCSC-C220-M3S). The MO schema is largely stable across 3.x and 4.x C-series firmware — most tools should work unchanged. M5/M6 (4.x firmware) adds more sensors and exposes per-port NIC link state; tools that read these will just have more data.
Known firmware quirks documented in tool docstrings:
commVMediaMap.adminActionenum only acceptssave-unmapped-volume(somount_vmediaomitsadminAction,unmount_vmediausesstatus="deleted")- WWW vMedia URLs must omit explicit ports on 3.0(4s) (use port 80 or 443
implicitly, not
:8888). - Java KVM tokens are session-scoped —
cimc_kvm_jnlpdeliberately leaves the XML session open.
Author
Ryan Malloy ryan@supported.systems
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mccimc-2026.6.13.1.tar.gz.
File metadata
- Download URL: mccimc-2026.6.13.1.tar.gz
- Upload date:
- Size: 32.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"EndeavourOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f5718dd38720deb43e2f5296d0f431f3817c531c4d4c5519e4ba525cf2fe8975
|
|
| MD5 |
f8a934cacd940bd379cbb6c5dffe7d67
|
|
| BLAKE2b-256 |
ca563ff4b3936906c4b57ab96380a7800ca906d78889edb4f361a84c7f48c766
|
File details
Details for the file mccimc-2026.6.13.1-py3-none-any.whl.
File metadata
- Download URL: mccimc-2026.6.13.1-py3-none-any.whl
- Upload date:
- Size: 37.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"EndeavourOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
67703ee3deb523019cb0c46b9bf6e17928db45c0d011721109fb0998191f4c80
|
|
| MD5 |
9c7325be203b10f58df67b5712ee22d1
|
|
| BLAKE2b-256 |
cf8f857a3e980f999be3fb48596badd19df318b15425d2b0c999511eb8ba997a
|