Skip to main content

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_mo for 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.adminAction enum only accepts save-unmapped-volume (so mount_vmedia omits adminAction, unmount_vmedia uses status="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_jnlp deliberately 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)

Source distribution for mccimc 2026.6.13.1
File Size Uploaded
mccimc-2026.6.13.1.tar.gz 32.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mccimc 2026.6.13.1
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

2026.6.13.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page