github analyzed 599eab2

Showdown76py/BeaconMCP

github

Remote MCP server for Proxmox VE clusters and BMC-managed hardware.

maintainer
Showdown76py
license
NOASSERTION
first seen
2026-06-11
last seen
2026-06-11
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 39 tools
transport stdio · streamable-http · http counts 39 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • bmc_get_event_log

    BMC event log (default 50, max 200).

  • bmc_health_status

    Temperatures, fans, power supplies, disks, memory.

  • bmc_list_devices

    List configured BMCs (id, type). Call first to discover valid device_id values.

  • bmc_power_off

    ACPI shutdown (or force=true to cut power).

  • bmc_power_on

    Power on.

  • bmc_power_reset

    Hard reset.

  • bmc_power_status

    Current physical power state.

  • bmc_server_info

    Server model, serial, firmware.

  • proxmox_backup_create

    Trigger a new backup of a VM or container.

  • proxmox_backup_list

    List available vzdump backup archives on a storage pool.

  • proxmox_backup_restore

    Restore a VM or container from a backup archive.

  • proxmox_delete_transfer

    Delete a file from the staging directory by basename.

  • proxmox_download_file

    Stream a file ≤ server.transfers_max_mb from a VM (SFTP) or CT (pct pull + SFTP) into the staging dir. Verifies SHA-256 by default.

  • proxmox_get_logs

    System or task logs.

  • proxmox_get_tasks

    Recent task history.

  • proxmox_list_nodes

    List cluster nodes and their status.

  • proxmox_list_transfers

    List files currently in the staging directory.

  • proxmox_list_vms

    List every VM and container across the cluster.

  • proxmox_network_config

    Network configuration per node.

  • proxmox_node_status

    CPU, memory, disk, uptime of a single node.

  • proxmox_read_file

    Safely read a file from a VM (via QEMU Guest Agent).

  • proxmox_run

    Command inside a QEMU VM via QEMU Guest Agent. Sync by default; pass wait=False to start async, or exec_id= to poll an existing session. For LXC containers, use ssh_run on the node with pct exec <vmid

  • proxmox_snapshot_create

    Create a new snapshot.

  • proxmox_snapshot_delete

    Delete an existing snapshot.

  • proxmox_snapshot_list

    List all snapshots for a VM or container.

  • proxmox_snapshot_rollback

    Rollback a VM/CT to a previous snapshot.

  • proxmox_storage_status

    Storage pool status.

  • proxmox_upload_file

    Stream a file ≤ server.transfers_max_mb (default 500 MB) from the staging dir into a VM (SFTP) or CT (SFTP + pct push). Verifies SHA-256 by default.

  • proxmox_vm_clone

    Clone an existing one.

  • proxmox_vm_config

    Read or update configuration.

  • proxmox_vm_create

    Provision a new VM or container.

  • proxmox_vm_migrate

    Migrate across nodes.

  • proxmox_vm_restart

    Restart.

  • proxmox_vm_start

    Start a VM or container.

  • proxmox_vm_status

    Detailed state of a VM or container.

  • proxmox_vm_stop

    Stop (clean or forced).

  • proxmox_write_file

    Safely write a file to a VM (via QEMU Guest Agent).

  • ssh_list_sessions

    List active and recent SSH sessions.

  • ssh_run

    Command on a host via SSH. host accepts node names, VMIDs, hostnames, or IPs. Sync by default; pass wait=False to start async, or exec_id= to poll.

skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 599eab2 · analyzer v18 · 4h ago

skills & prompt files 1

code evidence vHEAD · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

filesystem 8

  • fs Showdown76py-BeaconMCP-599eab2/src/beaconmcp/__main__.py :5 from pathlib import Path
  • fs Showdown76py-BeaconMCP-599eab2/src/beaconmcp/auth.py :33 from pathlib import Path
  • fs Showdown76py-BeaconMCP-599eab2/src/beaconmcp/config.py :23 from pathlib import Path
  • fs Showdown76py-BeaconMCP-599eab2/src/beaconmcp/dashboard/app.py :15 from pathlib import Path
  • fs Showdown76py-BeaconMCP-599eab2/src/beaconmcp/dashboard/db.py :12 from pathlib import Path
  • fs Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/system.py :10 from pathlib import Path
  • fs Showdown76py-BeaconMCP-599eab2/src/beaconmcp/server.py :3 from pathlib import Path
  • fs Showdown76py-BeaconMCP-599eab2/src/beaconmcp/wizard.py :23 from pathlib import Path

network 3

  • net Showdown76py-BeaconMCP-599eab2/src/beaconmcp/__main__.py :381 from urllib.parse import urlencode, urlparse
  • net Showdown76py-BeaconMCP-599eab2/src/beaconmcp/bmc/redfish.py :28 import httpx
  • net Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/client.py :8 from requests.exceptions import ConnectionError, Timeout

secrets 4

  • secrets Showdown76py-BeaconMCP-599eab2/src/beaconmcp/__main__.py :428 env_tokens_db = os.environ.get("BEACONMCP_TOKENS_DB")
  • secrets Showdown76py-BeaconMCP-599eab2/src/beaconmcp/config.py :305 "password": os.environ.get("ILO_PASSWORD", ""),
  • secrets Showdown76py-BeaconMCP-599eab2/src/beaconmcp/dashboard/__init__.py :33 return is_enabled() and bool(os.environ.get("GEMINI_API_KEY"))
  • secrets Showdown76py-BeaconMCP-599eab2/src/beaconmcp/dashboard/session.py :33 raw = os.environ.get("BEACONMCP_SESSION_KEY", "").strip()

database 3

  • db Showdown76py-BeaconMCP-599eab2/src/beaconmcp/auth.py :25 import sqlite3
  • db Showdown76py-BeaconMCP-599eab2/src/beaconmcp/dashboard/db.py :10 import sqlite3
  • db Showdown76py-BeaconMCP-599eab2/src/beaconmcp/dashboard/dyn_reg.py :21 import sqlite3

tool registrations 44

  • bmc_list_devices Showdown76py-BeaconMCP-599eab2/src/beaconmcp/bmc/tools.py :49
  • bmc_server_info Showdown76py-BeaconMCP-599eab2/src/beaconmcp/bmc/tools.py :62
  • bmc_health_status Showdown76py-BeaconMCP-599eab2/src/beaconmcp/bmc/tools.py :83
  • bmc_power_status Showdown76py-BeaconMCP-599eab2/src/beaconmcp/bmc/tools.py :104
  • bmc_power_on Showdown76py-BeaconMCP-599eab2/src/beaconmcp/bmc/tools.py :121
  • bmc_power_off Showdown76py-BeaconMCP-599eab2/src/beaconmcp/bmc/tools.py :138
  • bmc_power_reset Showdown76py-BeaconMCP-599eab2/src/beaconmcp/bmc/tools.py :159
  • bmc_get_event_log Showdown76py-BeaconMCP-599eab2/src/beaconmcp/bmc/tools.py :176
  • cluster_overview Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/aggregators.py :249
  • cluster_health Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/aggregators.py :273
  • vm_find Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/aggregators.py :318
  • vm_bulk_action Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/aggregators.py :340
  • proxmox_list_nodes Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/monitoring.py :14
  • proxmox_node_status Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/monitoring.py :60
  • proxmox_list_vms Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/monitoring.py :90
  • proxmox_vm_status Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/monitoring.py :132
  • proxmox_get_logs Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/monitoring.py :182
  • proxmox_get_tasks Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/monitoring.py :226
  • proxmox_read_file Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/system.py :142
  • proxmox_write_file Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/system.py :193
  • proxmox_upload_file Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/system.py :217
  • proxmox_download_file Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/system.py :370
  • proxmox_list_transfers Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/system.py :580
  • proxmox_delete_transfer Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/system.py :607
  • proxmox_storage_status Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/system.py :624
  • proxmox_network_config Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/system.py :665
  • proxmox_run Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/system.py :761
  • proxmox_vm_start Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/vms.py :70
  • proxmox_vm_stop Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/vms.py :87
  • proxmox_vm_restart Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/vms.py :105
  • proxmox_vm_create Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/vms.py :123
  • proxmox_vm_clone Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/vms.py :141
  • proxmox_vm_migrate Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/vms.py :169
  • proxmox_vm_config Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/vms.py :192
  • proxmox_snapshot_list Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/vms.py :228
  • proxmox_snapshot_create Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/vms.py :244
  • proxmox_snapshot_rollback Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/vms.py :284
  • proxmox_snapshot_delete Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/vms.py :303
  • proxmox_backup_create Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/vms.py :321
  • proxmox_backup_list Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/vms.py :349
  • proxmox_backup_restore Showdown76py-BeaconMCP-599eab2/src/beaconmcp/proxmox/vms.py :381
  • security_end_session Showdown76py-BeaconMCP-599eab2/src/beaconmcp/security/tools.py :11
  • ssh_run Showdown76py-BeaconMCP-599eab2/src/beaconmcp/ssh/tools.py :38
  • ssh_list_sessions Showdown76py-BeaconMCP-599eab2/src/beaconmcp/ssh/tools.py :107

declared dependencies 1

  • textual@>=0.85