Skip to main content

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:

  • Discoverycimc_list, cimc_ping
  • Info / inventorycimc_info, cimc_inventory, cimc_nics
  • Sensorscimc_sensors (temperature, power)
  • Powercimc_power_status, cimc_power (on/off/cycle/reset/soft-off/bmc-reset)
  • Virtual mediacimc_vmedia_list, cimc_vmedia_mount, cimc_vmedia_unmount
  • SoLcimc_sol_status, cimc_sol_enable, cimc_sol_disable
  • Conveniencecimc_locator_led (front-panel LED on/off)
  • KVMcimc_kvm_jnlp (fetch JNLP for the Java viewer)
  • Escape hatchescimc_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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mccimc-2026.6.13.tar.gz (31.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mccimc-2026.6.13-py3-none-any.whl (36.4 kB view details)

Uploaded Python 3

File details

Details for the file mccimc-2026.6.13.tar.gz.

File metadata

  • Download URL: mccimc-2026.6.13.tar.gz
  • Upload date:
  • Size: 31.8 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

Hashes for mccimc-2026.6.13.tar.gz
Algorithm Hash digest
SHA256 5a0c3552a3dcd3b55b9d670ac9f5bac1c2e1cc5d252c12e74da156333aede6b9
MD5 6ab1502a6842582d095aceb9e6ecb21b
BLAKE2b-256 9e8b9675492f06e15723705d9eef773f2b8f6966f1c7e653deb713326f115c00

See more details on using hashes here.

File details

Details for the file mccimc-2026.6.13-py3-none-any.whl.

File metadata

  • Download URL: mccimc-2026.6.13-py3-none-any.whl
  • Upload date:
  • Size: 36.4 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

Hashes for mccimc-2026.6.13-py3-none-any.whl
Algorithm Hash digest
SHA256 95127d9d875ea55b145983513642a8248e3f84a010186c1bd7024d2ccb2ce0ea
MD5 0ad18518ef65e2a2a38f3211a9ac8ca5
BLAKE2b-256 35614c8f5eee9617d6645719dd1eed5a3d0149defde1edc17d08a49585daa741

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page