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.1.tar.gz (32.5 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.1-py3-none-any.whl (37.2 kB view details)

Uploaded Python 3

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

Hashes for mccimc-2026.6.13.1.tar.gz
Algorithm Hash digest
SHA256 f5718dd38720deb43e2f5296d0f431f3817c531c4d4c5519e4ba525cf2fe8975
MD5 f8a934cacd940bd379cbb6c5dffe7d67
BLAKE2b-256 ca563ff4b3936906c4b57ab96380a7800ca906d78889edb4f361a84c7f48c766

See more details on using hashes here.

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

Hashes for mccimc-2026.6.13.1-py3-none-any.whl
Algorithm Hash digest
SHA256 67703ee3deb523019cb0c46b9bf6e17928db45c0d011721109fb0998191f4c80
MD5 9c7325be203b10f58df67b5712ee22d1
BLAKE2b-256 cf8f857a3e980f999be3fb48596badd19df318b15425d2b0c999511eb8ba997a

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