Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Proxbase

OCI · GHCR.IO/VIRTBASE/PROXBASE

Create, test and break real Proxmox VE clusters in QEMU/KVM on the local host.

+4 this week 52 Trust /100

Last scanned (2 hours ago)

Scores higher than 85% of OCI servers

Category Cloud Infrastructure

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security0
  • No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
  • Known CVEs could not be checked: this image's dependency list comes from an SBOM its publisher attached, which nothing verifies, so we will not report it as a clean result.Unverified
  • Install-script risk not yet assessed.Unverified
  • Dependency health could not be checked: this image's dependency list comes from an SBOM its publisher attached. It names packages and versions but not whether each is deprecated, still maintained or linked to its source, so there is nothing we can fairly grade.Unverified
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (Apache-2.0).Pass
  • Actively maintained (last published 12 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability79
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 5376 tokens (~145/item across 37 items; 36 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management70
  • Stability observed for 21 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 6 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 38 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.

  • 3 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 60 to 63. That category is still filling its 30-day observation window: 18 days of observed history at the previous scan, 19 at this one. The score rises as the window fills, whether or not the server changes.

  • 1 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 53 to 57. That category is still filling its 30-day observation window: 16 days of observed history at the previous scan, 17 at this one. The score rises as the window fills, whether or not the server changes.

  • 30 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 47 to 50. That category is still filling its 30-day observation window: 14 days of observed history at the previous scan, 15 at this one. The score rises as the window fills, whether or not the server changes.

  • 28 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

  • 26 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

  • 23 Oct 26 +1
    • Package version: 0.3.0 → 0.4.0 functional
  • 22 Oct 26 0
    • Stability: 0.20 → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Schema quality: 116 → 145 ▼ functional
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Schema quality: 100 → unverified ▼ functional
    • Package version: 0.2.1 → 0.3.0 functional
    • Package version: 0.2.1 → 0.2.2 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed oci/ghcr.io/virtbase/proxbase@0.4.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem oci
Reason No attestation published

Background: How many MCP packages publish verified provenance →

MCP tools · 36 exposed · ~4,902 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
cluster_create ~581

Create a Proxmox VE cluster (or resume a failed create of the same name). Without config, it creates 1 node with 4 vCPUs, 4G memory, a 32G ZFS root disk and one 32G data disk holding the ZFS pool "tank". Set nodes: 3 for a real cluster, storage: ceph for Ceph (3+ nodes). The create runs in the background on this host and survives this connection; the tool reports progress and returns when the cluster is ready, or with running=true after timeoutSeconds (then call cluster_wait). Cancelling the call cancels the create (re-run to resume). With snapshot="baseline" it saves a live snapshot when ready, which cluster_reset returns to in seconds. templates in config provide VM templates from cloud images and container templates as fixtures. Needs free memory for all nodes; the first create downloads a ~1.5 GB ISO.

NameTypeReqDescription
configstring–cluster file (YAML, apiVersion proxbase.virtbase.com/v1alpha1, kind Cluster); the other parameters override it
cpusinteger–vCPUs per node (default 4)
dataDisksstring–data disks per node: 2x32G, 32G,64G or none
goldennull|boolean–clone nodes from a cached installed base image instead of installing each (default true; the first create builds the image)
memorystring–memory per node, e.g. 4G (default 4G, 6G with Ceph)
namestringyescluster name: lowercase letters, digits and dashes, starting with a letter, at most 15 characters
nodesinteger–number of nodes (default 1)
ownerstring–who owns the cluster, e.g. the agent and its task (default: the client's name)
pveVersionstring–Proxmox VE ISO version, e.g. 9.2 or 9.2-1 (default: newest supported)
rootDiskstring–root disk size, e.g. 32G
snapshotstring–save a live snapshot with this name when the cluster is ready, e.g. baseline; cluster_reset returns to it in seconds
storagestring–storage on the data disks: zfs, ceph or none
timeoutSecondsinteger–return after this many seconds while the create keeps running (default 600, max 3600; at most 50 for clients that cancel tool calls after a minute)
ttlMinutesinteger–lifetime: cluster_gc deletes the cluster this many minutes after the create (default: no expiry)
NameTypeReqDescription
clusterstringyes–
commandstringyesthe proxbase command the job runs, e.g. create or node add
errorstring––
hintstring––
logstringyesprogress log (JSON lines); node install logs are in the cluster's logs directory
runningbooleanyesthe job is still running; call cluster_wait
statusnull|object––
stepsnull|arrayyeslatest progress messages

No examples provided.

cluster_destroy ~85

Delete a cluster: kill its VMs and remove all its disks, snapshots and credentials. Also stops a create running in the background. Set confirm to the cluster name.

NameTypeReqDescription
clusterstringyescluster name
confirmstring–must equal the cluster name (destroying deletes all disks and cannot be undone); without it, clients that support elicitation ask the user
NameTypeReqDescription
messagestringyes–

No examples provided.

cluster_diagnose ~166

Collect what explains a cluster problem, in one read-only call: the cluster status and, for every node, the quorum seen by it, failed systemd units, PVE tasks that failed, error log lines of corosync, pmxcfs (pve-cluster), pveproxy, pvedaemon, pvestatd, HA and Ceph from the last sinceMinutes, the clock offset, and ceph health detail. For nodes that are not running it returns the end of their serial console. Also lists the log files on this host.

NameTypeReqDescription
clusterstring–cluster name; default: the only cluster
sinceMinutesinteger–report errors and failed tasks of the last this many minutes (default 30, max 1440)
NameTypeReqDescription
healthybooleanyes–
logsnull|arrayyeslog files on this host: QEMU, install and serial console of each node, the switch; the result links them as resources
nodesnull|arrayyes–
problemstring––
statusnull|objectyes–

No examples provided.

cluster_env ~130

Return what API and SSH clients need: API endpoint, API token (proxbase@pve!api, full privileges), the cluster CA certificate (PEM and path), SSH user, key path and ports per node. Root password only if includeRootPassword is set.

NameTypeReqDescription
clusterstring–cluster name; default: the only cluster
includeRootPasswordboolean–also return the root password of the nodes (only if needed, e.g. for root@pam API logins)
tokenstring–return this scoped token (token_create) instead of the main one
NameTypeReqDescription
caCertPemstringyesthe cluster CA; API certificates are signed by it
envnull|objectyes–

No examples provided.

cluster_gc ~62

Delete every expired cluster on this host (see ttlMinutes of cluster_create and cluster_ttl), with its disks and snapshots; clusters with a running job are left. dryRun only lists them.

NameTypeReqDescription
dryRunboolean–only list the expired clusters
NameTypeReqDescription
deletednull|arrayyesexpired clusters deleted (with dryRun: to be deleted)
skippednull|array–expired clusters left, with the reason

No examples provided.

cluster_list ~22

List all proxbase clusters on this host with phase and running nodes.

Input schema present but exposes no named parameters.

NameTypeReqDescription
clustersnull|arrayyes–

No examples provided.

cluster_plan ~456

Work out what cluster_create would set up, without creating anything: nodes with IPs and ports (a new cluster takes the first free port range), the memory and disk of all nodes, whether the ISO is cached, the host's free memory and disk, warnings, and the resolved cluster file. Takes the parameters of cluster_create.

NameTypeReqDescription
configstring–cluster file (YAML, apiVersion proxbase.virtbase.com/v1alpha1, kind Cluster); the other parameters override it
cpusinteger–vCPUs per node (default 4)
dataDisksstring–data disks per node: 2x32G, 32G,64G or none
goldennull|boolean–clone nodes from a cached installed base image instead of installing each (default true; the first create builds the image)
memorystring–memory per node, e.g. 4G (default 4G, 6G with Ceph)
namestringyescluster name: lowercase letters, digits and dashes, starting with a letter, at most 15 characters
nodesinteger–number of nodes (default 1)
ownerstring–who owns the cluster, e.g. the agent and its task (default: the client's name)
pveVersionstring–Proxmox VE ISO version, e.g. 9.2 or 9.2-1 (default: newest supported)
rootDiskstring–root disk size, e.g. 32G
snapshotstring–save a live snapshot with this name when the cluster is ready, e.g. baseline; cluster_reset returns to it in seconds
storagestring–storage on the data disks: zfs, ceph or none
timeoutSecondsinteger–return after this many seconds while the create keeps running (default 600, max 3600; at most 50 for clients that cancel tool calls after a minute)
ttlMinutesinteger–lifetime: cluster_gc deletes the cluster this many minutes after the create (default: no expiry)
NameTypeReqDescription
plannull|objectyes–
resolvedstringyesthe cluster file with all defaults and the port base, as cluster_create would use it

No examples provided.

cluster_reset ~112

Return a cluster to a snapshot in one call (default "baseline"): power the nodes off, restore the snapshot and start the cluster. A live snapshot resumes with its memory in seconds; a disk snapshot boots the nodes. Changes since the snapshot are lost. cluster_create with snapshot="baseline" saves one when the cluster is ready; snapshot_save saves one at any time.

NameTypeReqDescription
clusterstring–cluster name; default: the only cluster
snapshotstring–snapshot to return to (default baseline)
NameTypeReqDescription
durationstringyes–
healthybooleanyes–
livebooleanyesthe snapshot holds the memory, so the cluster resumed instead of booting
problemstring––
snapshotstringyes–
statusnull|objectyes–

No examples provided.

cluster_start ~85

Boot a stopped cluster and wait for quorum, the API and storage. Also boots nodes killed by fault_apply kill. If the call limit (50 s for clients that cancel tool calls after a minute) passes first, it returns healthy=false with what is pending while the nodes keep booting.

NameTypeReqDescription
clusterstring–cluster name; default: the only cluster, else "default"
NameTypeReqDescription
healthybooleanyes–
jobnull|object–the background job (create, node add or remove) and its latest progress
problemstring––
statusnull|objectyes–

No examples provided.

cluster_status ~86

Show a cluster: phase, quorum, nodes (running/online, IP, web UI URL, SSH port), Ceph health, active faults, and the progress of a create running in the background. healthy=true means ready, quorate, all nodes online and Ceph HEALTH_OK.

NameTypeReqDescription
clusterstring–cluster name; default: the only cluster, else "default"
NameTypeReqDescription
healthybooleanyes–
jobnull|object–the background job (create, node add or remove) and its latest progress
problemstring––
statusnull|objectyes–

No examples provided.

cluster_stop ~97

Shut all nodes of a cluster down (cleanly, then hard after the timeout). Disks are kept; cluster_start boots it again. Clears all faults.

NameTypeReqDescription
clusterstring–cluster name; default: the only cluster
timeoutSecondsinteger–time for a clean shutdown before powering off hard (default 180; nodes shut their guests down first; at most 30 for clients that cancel tool calls after a minute)
NameTypeReqDescription
messagestringyes–

No examples provided.

cluster_ttl ~84

Set how long a cluster may live: it expires minutes from now (0: never). cluster_gc deletes expired clusters; set a lifetime on clusters you create so that forgotten ones are cleaned up.

NameTypeReqDescription
clusterstring–cluster name; default: the only cluster
minutesintegeryesthe cluster expires this many minutes from now; 0: never
NameTypeReqDescription
clusterstringyes–
expiresAtstring–RFC 3339; empty: never

No examples provided.

cluster_wait ~103

Wait for the background job of a cluster (after cluster_create, node_add or node_remove returned running=true), reporting its progress. Returns running=false with the status when it finished, or running=true again after timeoutSeconds.

NameTypeReqDescription
clusterstringyescluster name
timeoutSecondsinteger–return after this many seconds if the job is still running (default 600, max 3600; at most 50 for clients that cancel tool calls after a minute)
NameTypeReqDescription
clusterstringyes–
commandstringyesthe proxbase command the job runs, e.g. create or node add
errorstring––
hintstring––
logstringyesprogress log (JSON lines); node install logs are in the cluster's logs directory
runningbooleanyesthe job is still running; call cluster_wait
statusnull|object––
stepsnull|arrayyeslatest progress messages

No examples provided.

config_validate ~65

Check a cluster file (YAML) without creating anything; returns errors, warnings and the file with all defaults. The schema is the resource https://proxbase.virtbase.com/schema/v1alpha1/cluster.json.

NameTypeReqDescription
configstringyescluster file (YAML)
NameTypeReqDescription
errorsnull|array––
resolvedstring–the cluster file with all defaults, as create would use it
validbooleanyes–
warningsnull|array––

No examples provided.

fault_apply ~227

Inject a failure into a running cluster to test HA, fencing, Ceph or applications: kill, freeze, thaw, link-down, link-up, partition or degrade. fault_clear undoes them.

NameTypeReqDescription
clusterstring–cluster name; default: the only cluster
delayMsinteger–degrade: delay per frame and direction in milliseconds
groupsnull|array–partition: lists of node names; unlisted nodes form one more group
kindstringyesone of: kill (power the node off hard; cluster_start boots it), freeze (stop its vCPUs), thaw, link-down, link-up (the node's cable on a network), partition (split a network into groups), degrade (la…
lossPercentnumber–degrade: percentage of frames dropped per direction
networkstring–network for link-*, partition and degrade (default: corosync link0)
nodestring–node for kill, freeze, thaw, link-down, link-up
NameTypeReqDescription
clearednull|array––
faultsnull|arrayyesactive faults

No examples provided.

fault_clear ~52

Undo all injected faults (thaw, plug cables in, heal partitions and degradations). Killed nodes need cluster_start.

NameTypeReqDescription
clusterstring–cluster name; default: the only cluster, else "default"
NameTypeReqDescription
clearednull|array––
faultsnull|arrayyesactive faults

No examples provided.

file_get ~126

Read a file of a node: text as content, other data as contentBase64; at most maxBytes (default 256 KiB, max 4 MiB), truncated=true if the file is longer.

NameTypeReqDescription
clusterstring–cluster name; default: the only cluster
maxBytesinteger–read at most this many bytes (default 256 KiB, max 4 MiB)
nodestring–node name, e.g. pve1 (default: the first node)
pathstringyesabsolute path on the node
NameTypeReqDescription
contentstring–the data, if it is UTF-8 text
contentBase64string–the data, base64-encoded, if it is not text
nodestringyes–
pathstringyes–
sha256stringyesof the returned data
sizeintegeryessize of the whole file
truncatedboolean–only the first maxBytes were read

No examples provided.

file_put ~185

Write a file on a node as root, e.g. a config, script or test fixture: text in content, or binary data in contentBase64 (at most 4 MiB). The file is replaced atomically; missing directories are created. Files in /etc/pve (the cluster file system, shared by all nodes) get its fixed permissions.

NameTypeReqDescription
clusterstring–cluster name; default: the only cluster
contentstring–file content as text
contentBase64string–file content, base64-encoded; instead of content
modestring–permissions in octal, e.g. 0755 (default 0644)
nodestring–node name, e.g. pve1 (default: the first node)
pathstringyesabsolute path on the node
NameTypeReqDescription
bytesintegeryes–
nodestringyes–
pathstringyes–
sha256stringyes–

No examples provided.

host_check ~66

Check whether this host can run clusters: KVM, nested virtualization, QEMU, free memory, KSM, disk space, free ports and path lengths (as proxbase doctor).

NameTypeReqDescription
portBaseinteger–access.portBase whose first ports to check (default 18000)
NameTypeReqDescription
checksnull|arrayyes–
okbooleanyesno check failed; warnings do not block clusters

No examples provided.

image_list ~25

List the cached base images (golden images) with the clusters that use them.

Input schema present but exposes no named parameters.

NameTypeReqDescription
imagesnull|arrayyes–

No examples provided.

image_prune ~48

Delete the base images no cluster uses (dryRun only lists them). The next create with a deleted image builds it again.

NameTypeReqDescription
dryRunboolean–only report what would be deleted
NameTypeReqDescription
deletednull|arrayyeskeys of deleted (or, with dryRun, unused) images
keptnull|array–images in use, with their clusters

No examples provided.

node_add ~153

Add nodes to a ready cluster: install (or clone) them, join them and set up ZFS or Ceph as configured. Runs in the background like cluster_create; returns when done or with running=true (then call cluster_wait). Cancelling the call stops it; cluster_create with the cluster's name finishes an interrupted add.

NameTypeReqDescription
clusterstring–cluster name; default: the only cluster
countinteger–nodes to add (default 1); numbers of removed nodes are reused first
timeoutSecondsinteger–return after this many seconds while the job keeps running (default 600, max 3600; at most 50 for clients that cancel tool calls after a minute)
NameTypeReqDescription
clusterstringyes–
commandstringyesthe proxbase command the job runs, e.g. create or node add
errorstring––
hintstring––
logstringyesprogress log (JSON lines); node install logs are in the cluster's logs directory
runningbooleanyesthe job is still running; call cluster_wait
statusnull|object––
stepsnull|arrayyeslatest progress messages

No examples provided.

node_exec ~159

Run a shell command as root on a running node over SSH and return stdout, stderr and the exit code. Use it for pvesh, qm, pct, pvecm, ceph and the like. Non-interactive; output is capped at 64 KiB per stream.

NameTypeReqDescription
clusterstring–cluster name; default: the only cluster
commandstringyesshell command line, run as root through the login shell
nodestring–node name, e.g. pve1 (default: the first node)
timeoutSecondsinteger–kill the command after this many seconds (default 120, max 3600; at most 50 for clients that cancel tool calls after a minute)
NameTypeReqDescription
exitCodeintegeryesexit status; -1 if the command was killed
stderrstringyes–
stdoutstringyes–
truncatedboolean–stdout or stderr was cut to the last 64 KiB

No examples provided.

node_remove ~199

Remove a node from a cluster: drain and destroy its Ceph daemons, take it out of the cluster and delete its VM and disks. Refuses with guests on the node or Ceph pools that would be left degraded unless force is set. Runs in the background like cluster_create. Set confirm to the node name.

NameTypeReqDescription
clusterstring–cluster name; default: the only cluster
confirmstring–must equal the node name (removing deletes the node's disks); without it, clients that support elicitation ask the user
forceboolean–remove even with guests on the node or Ceph pools left degraded
nodestringyesnode to remove, e.g. pve3
timeoutSecondsinteger–return after this many seconds while the job keeps running (default 600, max 3600; at most 50 for clients that cancel tool calls after a minute)
NameTypeReqDescription
clusterstringyes–
commandstringyesthe proxbase command the job runs, e.g. create or node add
errorstring––
hintstring––
logstringyesprogress log (JSON lines); node install logs are in the cluster's logs directory
runningbooleanyesthe job is still running; call cluster_wait
statusnull|object––
stepsnull|arrayyeslatest progress messages

No examples provided.

pve_call ~302

Change something through the Proxmox VE API of a cluster with its API token: POST, PUT or DELETE a path with params, e.g. POST /nodes/pve1/qemu {"vmid": 100, "memory": 2048} or POST /nodes/pve1/qemu/100/status/start. If the call starts a task (returns a UPID), waits for it and returns its exit status and log; a failed task is an error.

NameTypeReqDescription
clusterstring–cluster name; default: the only cluster
methodstringyesPOST (create or run), PUT (change) or DELETE
nodestring–node whose API answers (default: the first running node); /nodes/<name>/... paths reach every node through it
paramsobject–parameters, e.g. {"vmid": 100, "memory": 2048, "net0": "virtio,bridge=vmbr0"}; booleans become 1 or 0, arrays repeat the parameter
pathstringyesAPI path under /api2/json, e.g. /nodes/pve1/qemu or /nodes/pve1/qemu/100/status/start
timeoutSecondsinteger–wait this long for a task the call starts (default 120, max 3600; at most 50 for clients that cancel tool calls after a minute)
NameTypeReqDescription
data–yesthe data of the API response
tasknull|object–the task the call started

No examples provided.

pve_get ~204

Read from the Proxmox VE API of a cluster with its API token (proxbase@pve!api) and return the response data as JSON. Paths are those of pvesh and the API viewer, e.g. /cluster/resources, /cluster/status, /nodes/pve1/qemu, /nodes/pve1/storage, /nodes/pve1/tasks (recent tasks) or /nodes/pve1/tasks/<upid>/log.

NameTypeReqDescription
clusterstring–cluster name; default: the only cluster
nodestring–node whose API answers (default: the first running node); /nodes/<name>/... paths reach every node through it
paramsobject–query parameters, e.g. {"type": "vm"}
pathstringyesAPI path under /api2/json, e.g. /cluster/resources, /nodes/pve1/qemu or /nodes/pve1/tasks/<upid>/log
NameTypeReqDescription
data–yesthe data of the API response
tasknull|object–the task the call started

No examples provided.

snapshot_delete ~39

Delete a snapshot of a cluster.

NameTypeReqDescription
clusterstring–cluster name; default: the only cluster
namestringyessnapshot name
NameTypeReqDescription
messagestringyes–

No examples provided.

snapshot_list ~34

List the snapshots of a cluster.

NameTypeReqDescription
clusterstring–cluster name; default: the only cluster, else "default"
NameTypeReqDescription
snapshotsnull|arrayyes–

No examples provided.

snapshot_restore ~76

Reset all disks of a stopped cluster to a snapshot (call cluster_stop first). Changes since the snapshot are lost. After a disk snapshot call cluster_start; a live snapshot starts the cluster in its saved state by itself.

NameTypeReqDescription
clusterstring–cluster name; default: the only cluster
namestringyessnapshot name
NameTypeReqDescription
messagestringyes–

No examples provided.

snapshot_save ~87

Snapshot all disks of a stopped cluster (call cluster_stop first), or with live=true the running cluster including its memory. Restoring is much faster than creating again.

NameTypeReqDescription
clusterstring–cluster name; default: the only cluster
liveboolean–snapshot the running cluster with its memory; restoring it resumes the cluster in seconds
namestringyessnapshot name
NameTypeReqDescription
messagestringyes–

No examples provided.

task_list ~218

List the Proxmox VE tasks of a cluster, newest first: VM and container operations, migrations, backups, storage and Ceph jobs. Reads every node, or one. Filter by errorsOnly, running, type (e.g. qmstart, qmigrate, vzdump), vmid and sinceMinutes. task_log shows a task's log, task_wait waits for one to end.

NameTypeReqDescription
clusterstring–cluster name; default: the only cluster
errorsOnlyboolean–only tasks that failed
limitinteger–most tasks to return (default 20, max 200)
nodestring–only tasks of this node (default: every node)
runningboolean–only tasks that are still running
sinceMinutesinteger–only tasks started in the last this many minutes
typestring–only tasks of this type, e.g. qmstart, qmigrate, vzdump
vmidinteger–only tasks of this guest
NameTypeReqDescription
tasksnull|arrayyes–
unavailablenull|array–nodes whose tasks could not be read, with the reason

No examples provided.

task_log ~121

Return the status and the end of the log of a Proxmox VE task, by its UPID (from task_list, pve_call or an error).

NameTypeReqDescription
clusterstring–cluster name; default: the only cluster
linesinteger–last lines to return (default 50, max 2000)
upidstringyestask ID, e.g. UPID:pve1:000A12B3:0012C4D5:65000000:qmstart:100:root@pam:
NameTypeReqDescription
exitStatusstring–OK, WARNINGS: n, or the error
lognull|arrayyes–
nodestringyes–
statusstringyesrunning or stopped
totalLinesintegeryeslines the log has; log holds the last of them
upidstringyes–

No examples provided.

task_wait ~118

Wait for a Proxmox VE task (UPID) to end and return its exit status and the end of its log; a failed task is an error. Use it for tasks that pve_call or task_list reported as running.

NameTypeReqDescription
clusterstring–cluster name; default: the only cluster
timeoutSecondsinteger–wait at most this long (default 120, max 3600; at most 50 for clients that cancel tool calls after a minute)
upidstringyestask ID
NameTypeReqDescription
exitStatusstring–OK or WARNINGS: n
lognull|array–last lines of the task log
nodestringyes–
statusstringyesrunning or stopped; poll a running task with pve_get /nodes/<node>/tasks/<upid>/status
upidstringyes–

No examples provided.

token_create ~230

Create an API token that may only do what a role allows on a path, to test code with least privilege or check that an operation is refused: e.g. role PVEAuditor on /, PVEVMAdmin on /vms/100, PVEDatastoreUser on /storage/tank. Replaces a token of the same name. cluster_env with token returns the endpoint and CA with it.

NameTypeReqDescription
clusterstring–cluster name; default: the only cluster
namestringyestoken name: lowercase letters, digits and dashes; the token is proxbase@pve!name
pathstring–ACL path the role applies to (default /), e.g. /vms/100, /storage/tank, /pool/ci
propagatenull|boolean–the role also applies below path (default true)
rolestringyesa role of the cluster, e.g. PVEAuditor, PVEVMUser, PVEVMAdmin, PVEDatastoreUser, PVEPoolAdmin
NameTypeReqDescription
apiTokenstring–the value for Authorization: PVEAPIToken=<apiToken> headers (tokenId=tokenSecret)
namestringyes–
pathstring––
propagatebooleanyesthe role also applies below path
rolestring––
tokenIdstringyesproxbase@pve!name
tokenSecretstring–only returned when the token is created

No examples provided.

token_delete ~55

Delete a scoped API token and its grant. The main token proxbase@pve!api cannot be deleted.

NameTypeReqDescription
clusterstring–cluster name; default: the only cluster
namestringyestoken name
NameTypeReqDescription
messagestringyes–

No examples provided.

token_list ~44

List the scoped API tokens of a cluster with their role and path (without secrets).

NameTypeReqDescription
clusterstring–cluster name; default: the only cluster, else "default"
NameTypeReqDescription
tokensnull|arrayyes–

No examples provided.

Install

How do I install the Proxbase MCP server?

Proxbase runs locally as a container image, launched with docker run --rm -i ghcr.io/virtbase/proxbase:0.4.0. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

oci · ghcr.io/virtbase/proxbase

# add to Claude Code
claude mcp add virtbase-proxbase -- docker run --rm -i ghcr.io/virtbase/proxbase:0.4.0
Common questions

What is the Proxbase MCP server?

Proxbase is an MCP server listed in the public MCP registry as io.github.virtbase/proxbase. Create, test and break real Proxmox VE clusters in QEMU/KVM on the local host. This page covers its container image (ghcr.io/virtbase/proxbase).

Is the Proxbase MCP server safe to use?

Proxbase scores 52 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Proxbase MCP server expose?

Proxbase exposes 36 tools: cluster_create, cluster_destroy, cluster_diagnose, cluster_env, cluster_gc, and 31 more. Their descriptions and schemas cost roughly 4,902 tokens of context every time the server is loaded.

Is the Proxbase MCP server still maintained?

Proxbase is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Proxbase MCP server under?

Proxbase declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.