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
Metadata
Release files for mccimc 2026.6.13.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mccimc-2026.6.13.1.tar.gz | 32.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mccimc-2026.6.13.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 69.7 kB
Release files / mccimc-2026.6.13.1.tar.gz
| Download URL | mccimc-2026.6.13.1.tar.gz |
|---|---|
| Size | 32.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f5718dd38720deb43e2f5296d0f431f3817c531c4d4c5519e4ba525cf2fe8975
|
|
BLAKE2b-256 checksum How to use checksums |
ca563ff4b3936906c4b57ab96380a7800ca906d78889edb4f361a84c7f48c766
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / mccimc-2026.6.13.1-py3-none-any.whl
| Download URL | mccimc-2026.6.13.1-py3-none-any.whl |
|---|---|
| Size | 37.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
67703ee3deb523019cb0c46b9bf6e17928db45c0d011721109fb0998191f4c80
|
|
BLAKE2b-256 checksum How to use checksums |
cf8f857a3e980f999be3fb48596badd19df318b15425d2b0c999511eb8ba997a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|