Proxmox MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PROXMOX_HOST | Yes | Proxmox host address | |
| PROXMOX_PORT | No | API port | 8006 |
| PROXMOX_USER | No | User | root@pam |
| TOOL_ROUTING | No | Enable tool routing mode | false |
| PROXMOX_TIMEOUT | No | Request timeout in seconds | 30 |
| PROXMOX_PASSWORD | No | Password (alternative to token authentication) | |
| PROXMOX_TOKEN_NAME | No | API token name (required with PROXMOX_TOKEN_VALUE if not using password) | |
| PROXMOX_VERIFY_SSL | No | SSL verification (0 or 1) | 0 |
| PROXMOX_TOKEN_VALUE | No | API token value (required with PROXMOX_TOKEN_NAME if not using password) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| proxmox_api_rawA | Make an arbitrary Proxmox API call for any endpoint not covered by specific tools. Args: method: HTTP method: 'get', 'post', 'put', 'delete'. path: API path (e.g. '/nodes/pve1/qemu/100/status/current'). params: JSON string of parameters (e.g. '{"memory": 4096}'). |
| list_usersA | List all users in Proxmox. Args: enabled: Only show enabled users. full: Include detailed info (groups, tokens, etc.). |
| get_userA | Get details for a specific user. Args: userid: User ID (format: 'user@realm', e.g. 'admin@pam'). |
| create_userA | Create a new user. Args: userid: User ID (format: 'user@realm', e.g. 'myuser@pve'). password: Password (only for pve/pam realms). email: Email address. firstname: First name. lastname: Last name. groups: Comma-separated group list. comment: Description. enable: Enable user. expire: Account expiration (Unix epoch, 0 = never). |
| update_userB | Update an existing user. Args: userid: User ID (format: 'user@realm'). email: Email address. firstname: First name. lastname: Last name. groups: Comma-separated group list. comment: Description. enable: Enable/disable user. expire: Account expiration (Unix epoch, 0 = never, -1 = don't change). append: Append groups instead of replacing. |
| delete_userB | Delete a user. Args: userid: User ID to delete (format: 'user@realm'). |
| list_user_tokensA | List API tokens for a user. Args: userid: User ID (format: 'user@realm'). |
| get_user_tokenA | Get details for a specific API token. Args: userid: User ID (format: 'user@realm'). tokenid: Token ID. |
| create_user_tokenA | Create a new API token for a user. Returns the token value (shown only once). Args: userid: User ID (format: 'user@realm'). tokenid: Token ID (alphanumeric). comment: Token description. privsep: Enable privilege separation (token has own permissions, not user's full permissions). expire: Expiration (Unix epoch, 0 = never). |
| delete_user_tokenB | Delete an API token. Args: userid: User ID (format: 'user@realm'). tokenid: Token ID. |
| list_groupsA | List all user groups. |
| get_groupB | Get group details. Args: groupid: Group ID. |
| create_groupC | Create a new group. Args: groupid: Group ID. comment: Description. |
| update_groupC | Update a group. Args: groupid: Group ID. comment: Description. |
| delete_groupC | Delete a group. Args: groupid: Group ID. |
| list_rolesA | List all available roles. |
| get_roleB | Get role details and its privileges. Args: roleid: Role ID. |
| create_roleC | Create a new role with specific privileges. Args: roleid: Role ID. privs: Comma-separated list of privileges (e.g. 'VM.Allocate,VM.Config.Disk,VM.PowerMgmt'). |
| update_roleA | Update role privileges. Args: roleid: Role ID. privs: Comma-separated list of privileges. append: Append privileges instead of replacing. |
| delete_roleC | Delete a role. Args: roleid: Role ID. |
| get_aclA | Get the full ACL (access control list) — shows all permission assignments. |
| update_aclA | Add or remove ACL entries (permission assignments). Args: path: Object path (e.g. '/', '/vms/100', '/storage/local', '/pool/mypool'). roles: Comma-separated role list. users: Comma-separated user list (format: 'user@realm'). groups: Comma-separated group list. tokens: Comma-separated token list (format: 'user@realm!tokenid'). propagate: Propagate permissions to child objects. delete: Remove the ACL entry instead of adding. |
| list_auth_domainsA | List configured authentication realms/domains (PAM, PVE, LDAP, AD, OpenID). |
| get_auth_domainB | Get authentication domain configuration. Args: realm: Realm ID (e.g. 'pam', 'pve', 'my-ldap'). |
| sync_auth_domainA | Sync users/groups from an external auth domain (LDAP/AD). Args: realm: Realm ID to sync. dry_run: Only show what would change. full: Full sync (not just incremental). enable_new: Enable newly synced users. remove_vanished: Comma-separated: 'entry' (remove users), 'properties' (clear), 'acl' (remove ACLs). |
| list_tfaB | List TFA (two-factor auth) entries. Args: userid: Filter by user ID (empty = all users). |
| get_permissionsB | Check effective permissions for a user on a given path. Args: userid: User to check (empty = current user). path: Object path to check (empty = root). |
| change_passwordC | Change a user's password. Args: userid: User ID (format: 'user@realm'). password: New password. |
| list_backup_jobsA | List all scheduled backup jobs (vzdump) in the cluster. |
| get_backup_jobC | Get details of a specific backup job. Args: id: Backup job ID. |
| get_backup_job_included_volumesB | Get volumes included in a backup job. Args: id: Backup job ID. |
| create_backup_jobB | Create a scheduled backup job. Args: storage: Target storage ID for backups. schedule: Schedule in systemd calendar format (e.g. 'daily', 'weekly', '02:00'). all_guests: Backup all guests. vmid: Comma-separated VMIDs to back up (if not all_guests). node: Only back up guests on this node. mode: Backup mode: 'snapshot', 'suspend', 'stop'. compress: Compression: 'none', 'lzo', 'gzip', 'zstd'. mailnotification: 'always' or 'failure'. mailto: Comma-separated email addresses. maxfiles: Max backup files to keep (0 = unlimited, deprecated - use prune_backups). prune_backups: Retention schedule (e.g. 'keep-daily=7,keep-weekly=4'). notes_template: Template for backup notes. enabled: Enable the job. comment: Description. |
| update_backup_jobB | Update a scheduled backup job. Args: id: Backup job ID. storage: Target storage ID. schedule: Schedule in systemd calendar format. all_guests: Backup all guests. vmid: Comma-separated VMIDs. node: Node filter. mode: Backup mode. compress: Compression. enabled: Enable/disable. delete: Comma-separated properties to delete. |
| delete_backup_jobB | Delete a scheduled backup job. Args: id: Backup job ID. |
| create_vzdumpA | Start an immediate backup (vzdump) on a node. Args: node: The node to run the backup on. vmid: Comma-separated VMIDs (required if not all_guests). all_guests: Back up all guests on the node. storage: Target storage (empty = default). mode: Backup mode: 'snapshot', 'suspend', 'stop'. compress: Compression: 'none', 'lzo', 'gzip', 'zstd'. stdout: Write to stdout instead of storage. |
| get_vzdump_defaultsC | Get the default vzdump configuration for a node. Args: node: The node name. |
| get_vzdump_extractconfigB | Extract the guest configuration from a vzdump backup archive. Args: node: The node name. volume: Backup volume ID (e.g. 'local:backup/vzdump-qemu-100-2024_01_01-00_00_00.vma.zst'). |
| list_backup_file_restoreB | List files in a vzdump backup for single-file restore. Args: node: The node name. storage: Storage ID. volume: Backup volume ID. filepath: Path within the backup (default '/'). |
| download_file_restoreC | Download a file from a vzdump backup. Args: node: The node name. storage: Storage ID. volume: Backup volume ID. filepath: Path of the file to download from the backup. |
| get_versionA | Get the Proxmox VE API version information. |
| get_cluster_statusB | Get cluster status (nodes online, quorum, HA state). |
| get_cluster_resourcesA | List all resources across the cluster (VMs, containers, storage, nodes). Args: type: Filter by type: 'vm', 'storage', 'node', 'sdn', 'pool' (empty = all). |
| get_cluster_tasksC | List recent tasks across all nodes in the cluster. Args: limit: Maximum number of tasks to return. |
| get_cluster_logC | Get the cluster log (recent events). Args: max_entries: Max log entries. |
| get_next_vmidA | Get the next available VMID in the cluster. Args: vmid: Specific VMID to check availability for (0 = auto-assign). |
| get_cluster_optionsA | Get datacenter/cluster-wide options (keyboard layout, console, language, etc.). |
| update_cluster_optionsB | Update datacenter/cluster-wide options. Args: keyboard: Keyboard layout (e.g. 'en-us', 'de'). language: Default language. console: Default console viewer: 'applet', 'vv', 'html5', 'xtermjs'. http_proxy: HTTP proxy URL. email_from: Default email sender address. max_workers: Max parallel workers. description: Datacenter description. delete: Comma-separated settings to delete. |
| get_cluster_configA | Get the current cluster configuration (corosync, nodes, join info). |
| get_cluster_config_nodesB | List nodes configured in the cluster. |
| get_cluster_join_infoA | Get info needed to join a node to this cluster. |
| join_clusterA | Join a node to an existing cluster. Args: hostname: Hostname/IP of existing cluster node. fingerprint: SSL fingerprint of the cluster node. password: Root password of the cluster node. nodeid: Force specific node ID. force: Force join even with warnings. |
| get_cluster_totemB | Get the corosync totem configuration. |
| list_replication_jobsA | List all replication jobs in the cluster. |
| get_replication_jobA | Get a specific replication job configuration. Args: id: Replication job ID (format: GUEST-JOBNUM, e.g. '100-0'). |
| create_replication_jobA | Create a storage replication job. Args: id: Job ID (format: GUEST-JOBNUM, e.g. '100-0'). target: Target node. type: Replication type (currently only 'local'). schedule: Schedule in systemd calendar format (default '*/15' = every 15 min). comment: Description. rate: Rate limit in mbps. disable: Create disabled. |
| delete_replication_jobB | Delete a replication job. Args: id: Replication job ID. force: Force removal (skip cleanup). keep: Keep replicated data on target. |
| list_metric_serversA | List configured metric servers (InfluxDB, Graphite). |
| get_metric_serverB | Get metric server configuration. Args: id: Metric server ID. |
| list_notification_endpointsB | List all configured notification endpoints (sendmail, gotify, smtp, webhook). |
| list_notification_targetsC | List all notification targets. |
| list_notification_matchersA | List all notification matchers (rules that route notifications). |
| test_notification_targetC | Send a test notification to a target. Args: name: Target name. |
| bulk_start_guestsA | Bulk start guests across the cluster. Args: vms: Comma-separated list of VMIDs (empty = all). |
| bulk_shutdown_guestsB | Bulk shutdown guests across the cluster. Args: vms: Comma-separated list of VMIDs (empty = all). |
| bulk_migrate_guestsC | Bulk migrate guests to a target node. Args: target: Target node name. vms: Comma-separated VMIDs. |
| get_ceph_status_clusterA | Get Ceph cluster status (health, monitors, OSDs, PGs). |
| get_ceph_metadataA | Get Ceph metadata (versions, services across nodes). |
| get_ceph_flagsA | Get Ceph global flags (noout, noscrub, etc.). |
| set_ceph_flagsB | Set a Ceph global flag. Args: flag: Flag name (noout, noscrub, nobackfill, norebalance, nodown, noup, etc.). value: True to set, False to unset. |
| get_ceph_status_nodeB | Get Ceph status from a specific node's perspective. Args: node: The node name. |
| list_ceph_osdsB | List Ceph OSDs on a node. Args: node: The node name. |
| create_ceph_osdA | Create a new Ceph OSD on a device. Args: node: The node name. dev: Block device for the OSD (e.g. '/dev/sdb'). db_dev: Separate block device for DB. wal_dev: Separate block device for WAL. encrypted: Encrypt the OSD. |
| list_ceph_poolsC | List Ceph pools. Args: node: The node name. |
| create_ceph_poolB | Create a new Ceph pool. Args: node: The node name. name: Pool name. size: Number of replicas (default 3). min_size: Minimum replicas for I/O (default 2). pg_num: Number of placement groups (default 128). application: Pool application (rbd, cephfs, rgw). |
| list_ceph_monitorsB | List Ceph monitors. Args: node: The node name. |
| list_ceph_managersC | List Ceph managers. Args: node: The node name. |
| list_ceph_mdsC | List Ceph metadata servers (MDS, for CephFS). Args: node: The node name. |
| list_ceph_fsB | List CephFS filesystems. Args: node: The node name. |
| get_ceph_configC | Get the raw Ceph configuration. Args: node: The node name. |
| get_ceph_crush_rulesC | Get Ceph CRUSH rules. Args: node: The node name. |
| list_scheduled_jobsA | List all scheduled cluster jobs (realm-sync, etc.). |
| list_realm_sync_jobsB | List realm synchronization jobs. |
| list_pci_mappingsA | List PCI device mappings for passthrough. |
| list_usb_mappingsA | List USB device mappings for passthrough. |
| list_dir_mappingsB | List directory mappings. |
| get_cluster_firewall_optionsA | Get cluster-wide firewall options (enable, policy_in, policy_out, etc.). |
| set_cluster_firewall_optionsA | Set cluster-wide firewall options. Args: enable: 1 to enable, 0 to disable, -1 to not change. policy_in: Default input policy: 'ACCEPT', 'REJECT', 'DROP'. policy_out: Default output policy: 'ACCEPT', 'REJECT', 'DROP'. log_ratelimit: Log rate limit (e.g. 'enable=1,rate=1/second,burst=5'). ebtables: 1 to enable ebtables rules, 0 to disable, -1 to not change. delete: Comma-separated options to delete. |
| list_cluster_firewall_rulesA | List cluster-level firewall rules. |
| get_cluster_firewall_ruleB | Get a specific cluster firewall rule. Args: pos: Rule position number. |
| create_cluster_firewall_ruleA | Create a cluster-level firewall rule. Args: action: 'ACCEPT', 'DROP', 'REJECT'. type: 'in', 'out', 'group'. enable: 1 = enabled, 0 = disabled. source: Source address/range (CIDR or alias). dest: Destination address/range. proto: Protocol (tcp, udp, icmp, etc.). sport: Source port(s). dport: Destination port(s). iface: Network interface. macro: Use predefined macro (e.g. 'SSH', 'HTTP', 'HTTPS', 'Ping'). comment: Description. log: Log level: 'emerg', 'alert', 'crit', 'err', 'warning', 'notice', 'info', 'debug', 'nolog'. pos: Rule position (-1 = append). |
| update_cluster_firewall_ruleC | Update a cluster-level firewall rule. Args: pos: Rule position to update. action: 'ACCEPT', 'DROP', 'REJECT'. enable: 1 = enabled, 0 = disabled, -1 = don't change. source: Source address/range. dest: Destination address/range. proto: Protocol. sport: Source port(s). dport: Destination port(s). macro: Predefined macro. comment: Description. moveto: Move rule to this position. delete: Comma-separated properties to delete. |
| delete_cluster_firewall_ruleB | Delete a cluster-level firewall rule. Args: pos: Rule position to delete. |
| list_firewall_groupsA | List firewall security groups (reusable sets of rules). |
| get_firewall_group_rulesB | List rules in a firewall security group. Args: group: Security group name. |
| create_firewall_groupC | Create a new firewall security group. Args: group: Group name. comment: Description. |
| create_firewall_group_ruleB | Add a rule to a firewall security group. Args: group: Security group name. action: 'ACCEPT', 'DROP', 'REJECT'. type: 'in', 'out'. enable: 1 = enabled, 0 = disabled. source: Source address/range. dest: Destination address/range. proto: Protocol. sport: Source port(s). dport: Destination port(s). macro: Predefined macro. comment: Description. |
| list_firewall_aliasesA | List cluster firewall aliases (named IP addresses/ranges). |
| create_firewall_aliasB | Create a firewall alias (named IP address or CIDR). Args: name: Alias name. cidr: IP address or CIDR (e.g. '10.0.0.0/24' or '192.168.1.1'). comment: Description. |
| delete_firewall_aliasC | Delete a firewall alias. Args: name: Alias name. |
| list_firewall_ipsetsA | List cluster firewall IP sets (named groups of IPs). |
| create_firewall_ipsetC | Create a new firewall IP set. Args: name: IP set name. comment: Description. |
| list_firewall_ipset_entriesB | List entries in a firewall IP set. Args: name: IP set name. |
| add_firewall_ipset_entryB | Add an IP/CIDR to an IP set. Args: name: IP set name. cidr: IP address or CIDR. comment: Description. nomatch: Exclude this entry (nomatch). |
| delete_firewall_ipset_entryA | Remove an IP/CIDR from an IP set. Args: name: IP set name. cidr: IP address or CIDR to remove. |
| list_firewall_macrosA | List available firewall macros (predefined rule sets like SSH, HTTP, etc.). |
| get_firewall_refsA | Get available firewall references (aliases, ipsets, names usable in rules). |
| get_node_firewall_optionsC | Get firewall options for a specific node. Args: node: The node name. |
| set_node_firewall_optionsA | Set firewall options for a node. Args: node: The node name. enable: 1 = enable, 0 = disable, -1 = don't change. log_level_in: Input log level. log_level_out: Output log level. ndp: 1 = enable NDP, 0 = disable, -1 = don't change. nf_conntrack_max: Max conntrack entries (0 = don't change). delete: Comma-separated options to delete. |
| list_node_firewall_rulesC | List firewall rules for a node. Args: node: The node name. |
| get_node_firewall_logB | Get firewall log for a node. Args: node: The node name. limit: Max entries. |
| get_vm_firewall_optionsC | Get firewall options for a QEMU VM. Args: node: The node name. vmid: The VM ID. |
| set_vm_firewall_optionsB | Set firewall options for a QEMU VM. Args: node: The node name. vmid: The VM ID. enable: 1 = enable, 0 = disable. dhcp: 1 = enable DHCP. ipfilter: 1 = enable IP filter. macfilter: 1 = enable MAC filter. policy_in: Input policy. policy_out: Output policy. delete: Comma-separated options to delete. |
| list_vm_firewall_rulesC | List firewall rules for a QEMU VM. Args: node: The node name. vmid: The VM ID. |
| create_vm_firewall_ruleA | Create a firewall rule for a QEMU VM. Args: node: The node name. vmid: The VM ID. action: 'ACCEPT', 'DROP', 'REJECT'. type: 'in', 'out', 'group'. enable: 1 = enabled, 0 = disabled. source: Source CIDR or alias. dest: Destination CIDR or alias. proto: Protocol. dport: Destination port(s). macro: Predefined macro. comment: Description. |
| get_container_firewall_optionsB | Get firewall options for an LXC container. Args: node: The node name. vmid: The container ID. |
| list_container_firewall_rulesB | List firewall rules for an LXC container. Args: node: The node name. vmid: The container ID. |
| create_container_firewall_ruleA | Create a firewall rule for an LXC container. Args: node: The node name. vmid: The container ID. action: 'ACCEPT', 'DROP', 'REJECT'. type: 'in', 'out', 'group'. enable: 1 = enabled, 0 = disabled. source: Source CIDR or alias. dest: Destination CIDR or alias. proto: Protocol. dport: Destination port(s). macro: Predefined macro. comment: Description. |
| get_ha_statusA | Get HA manager status (active, quorum, manager status). |
| get_ha_manager_statusC | Get detailed HA manager status. |
| list_ha_resourcesA | List all HA-managed resources. |
| get_ha_resourceA | Get HA resource configuration. Args: sid: HA resource ID (format: 'type:vmid', e.g. 'vm:100' or 'ct:101'). |
| create_ha_resourceA | Add a resource to HA management. Args: sid: Resource ID (format: 'type:vmid', e.g. 'vm:100' or 'ct:101'). group: HA group name. max_relocate: Max relocations on failure. max_restart: Max restarts on failure. state: Desired state: 'started', 'stopped', 'enabled', 'disabled', 'ignored'. comment: Description. |
| update_ha_resourceB | Update an HA resource configuration. Args: sid: Resource ID. group: HA group name. max_relocate: Max relocations (-1 = don't change). max_restart: Max restarts (-1 = don't change). state: Desired state. comment: Description. delete: Comma-separated properties to delete. |
| delete_ha_resourceB | Remove a resource from HA management. Args: sid: Resource ID (format: 'type:vmid'). |
| migrate_ha_resourceC | Request migration of an HA resource to a different node. Args: sid: Resource ID. node: Target node. |
| relocate_ha_resourceC | Request relocation of an HA resource to a different node. Args: sid: Resource ID. node: Target node. |
| list_ha_groupsA | List HA groups (define which nodes can run HA resources). |
| get_ha_groupC | Get HA group configuration. Args: group: Group ID. |
| create_ha_groupA | Create an HA group. Args: group: Group ID. nodes: Node list with optional priority (e.g. 'node1:2,node2:1' — higher = preferred). nofailback: If true, don't fail back to higher-priority nodes once recovered. restricted: Only run on nodes in this group (otherwise runs anywhere but prefers group nodes). comment: Description. |
| update_ha_groupA | Update an HA group. Args: group: Group ID. nodes: Node list with optional priority. nofailback: Don't fail back. restricted: Only run on group nodes. comment: Description. delete: Comma-separated properties to delete. |
| delete_ha_groupC | Delete an HA group. Args: group: Group ID. |
| list_containersB | List all LXC containers on a node with status, memory, CPU, and disk info. Args: node: The node name. |
| get_container_statusB | Get the current runtime status of a container. Args: node: The node name. vmid: The container ID (CTID). |
| get_container_configB | Get the configuration of a container. Args: node: The node name. vmid: The container ID. |
| get_container_pendingA | Get pending configuration changes for a container. Args: node: The node name. vmid: The container ID. |
| get_container_interfacesC | Get network interfaces and IPs of a running container. Args: node: The node name. vmid: The container ID. |
| get_container_rrddataA | Get RRD statistics data for a container (CPU, memory, disk, network over time). Args: node: The node name. vmid: The container ID. timeframe: Time range: 'hour', 'day', 'week', 'month', 'year'. |
| get_container_featureA | Check if a feature is available for a container (snapshot, clone, copy). Args: node: The node name. vmid: The container ID. feature: Feature to check ('snapshot', 'clone', 'copy'). |
| create_containerB | Create a new LXC container. Args: node: The node name. vmid: The container ID. ostemplate: Template volume (e.g. 'local:vztmpl/debian-12-standard_12.2-1_amd64.tar.zst'). hostname: Container hostname. password: Root password. ssh_public_keys: SSH public keys (newline delimited). storage: Storage for rootfs (default 'local'). rootfs: Root filesystem spec (e.g. 'local-lvm:8' for 8GB). memory: Memory in MB (default 512). swap: Swap in MB (default 512). cores: CPU cores (default 1). cpulimit: CPU limit (0 = unlimited). net0: Network config (e.g. 'name=eth0,bridge=vmbr0,ip=dhcp'). nameserver: DNS nameserver. searchdomain: DNS search domain. onboot: Start on host boot. start: Start after creation. unprivileged: Create an unprivileged container (default True, recommended). features: Comma-separated features (e.g. 'nesting=1,keyctl=1'). description: Container description. pool: Resource pool. tags: Tags for the container. mp0: Mount point (e.g. 'local-lvm:4,mp=/mnt/data'). |
| update_container_configC | Update the configuration of an existing container. Args: node: The node name. vmid: The container ID. hostname: Container hostname. memory: Memory in MB. swap: Swap in MB. cores: CPU cores. cpulimit: CPU limit (0 = unlimited). net0: Network config. nameserver: DNS nameserver. searchdomain: DNS search domain. onboot: Start on boot. description: Description. features: Comma-separated features. tags: Tags for the container. delete: Comma-separated list of settings to delete. |
| delete_containerA | Delete a container. Must be stopped first unless force=True. Args: node: The node name. vmid: The container ID. purge: Remove from replication, HA, backup and ACLs too. destroy_unreferenced_disks: Destroy unreferenced disks. force: Force destroy even if running. |
| start_containerC | Start a container. Args: node: The node name. vmid: The container ID. |
| stop_containerA | Hard-stop a container (immediate, like power off). Args: node: The node name. vmid: The container ID. |
| shutdown_containerB | Gracefully shut down a container. Args: node: The node name. vmid: The container ID. timeout: Timeout in seconds before force stop. force_stop: Force stop after timeout. |
| reboot_containerC | Reboot a container. Args: node: The node name. vmid: The container ID. timeout: Timeout in seconds. |
| suspend_containerC | Suspend (freeze) a container. Args: node: The node name. vmid: The container ID. |
| resume_containerC | Resume a suspended container. Args: node: The node name. vmid: The container ID. |
| clone_containerC | Clone a container. Args: node: The source node name. vmid: The source container ID. newid: ID for the new container. hostname: Hostname for the clone. target: Target node (default: same node). full: Full clone (True) or linked clone (False). storage: Target storage for full clone. description: Description. pool: Resource pool. snapname: Snapshot to clone from. |
| migrate_containerB | Migrate a container to another node. Args: node: The source node. vmid: The container ID. target: Target node name. online: Live migration. restart: Restart container after migration (for non-live). target_storage: Target storage mapping. |
| convert_container_to_templateA | Convert a container into a template (irreversible). Args: node: The node name. vmid: The container ID. |
| resize_container_diskA | Resize a container disk/volume. Args: node: The node name. vmid: The container ID. disk: Disk name (e.g. 'rootfs', 'mp0'). size: New size or increment (e.g. '10G', '+2G'). |
| move_container_volumeA | Move a container volume to different storage or to another container. Args: node: The node name. vmid: The container ID. volume: Volume name (e.g. 'rootfs', 'mp0'). storage: Target storage. target_vmid: Target container ID. target_volume: Target volume slot. delete_original: Delete original after move. |
| list_container_snapshotsB | List all snapshots of a container. Args: node: The node name. vmid: The container ID. |
| create_container_snapshotB | Create a snapshot of a container. Args: node: The node name. vmid: The container ID. snapname: Snapshot name. description: Snapshot description. |
| delete_container_snapshotC | Delete a container snapshot. Args: node: The node name. vmid: The container ID. snapname: Snapshot name. force: Force delete. |
| rollback_container_snapshotB | Rollback a container to a previous snapshot. Args: node: The node name. vmid: The container ID. snapname: Snapshot name. |
| list_nodesA | List all nodes in the Proxmox cluster with their status, CPU, memory, and uptime. |
| get_node_statusA | Get detailed status of a specific node including CPU, memory, disk, uptime, and kernel info. Args: node: The node name (e.g. 'pve1'). |
| get_node_configC | Get the configuration of a node (description, wakeonlan, etc.). Args: node: The node name. |
| get_node_dnsC | Get DNS settings for a node. Args: node: The node name. |
| get_node_networkC | Get network interface configuration for a node. Args: node: The node name. |
| get_node_network_interfaceB | Get details for a specific network interface. Args: node: The node name. iface: Interface name (e.g. 'vmbr0', 'eth0'). |
| create_node_network_interfaceB | Create a network interface on a node. Args: node: The node name. iface: Interface name (e.g. 'vmbr1'). type: Interface type (bridge, bond, eth, alias, vlan, OVSBridge, OVSPort, OVSIntPort, OVSBond). address: IP address (CIDR notation or IP). netmask: Subnet mask. gateway: Default gateway. bridge_ports: Bridge ports (for bridge type). autostart: Whether to start on boot. comments: Comments for the interface. |
| list_node_servicesC | List all system services on a node (pve, ssh, cron, etc.). Args: node: The node name. |
| manage_node_serviceB | Start, stop, restart, or reload a system service on a node. Args: node: The node name. service: Service name (e.g. 'pvedaemon', 'pveproxy', 'ssh', 'cron', 'postfix'). action: One of 'start', 'stop', 'restart', 'reload'. |
| get_node_syslogA | Read system log (syslog) entries from a node. Args: node: The node name. limit: Max number of log lines to return (default 50). start: Start line number. since: Only show entries since this date (YYYY-MM-DD). until: Only show entries until this date (YYYY-MM-DD). |
| get_node_journalB | Read systemd journal entries from a node. Args: node: The node name. lastentries: Max number of entries (default 50). since: Show entries since date/time. until: Show entries until date/time. startcursor: Start cursor for paging. |
| list_node_tasksB | List recent tasks on a node. Args: node: The node name. limit: Max tasks to return (default 50). start: Offset for paging. vmid: Filter by VM ID (0 = all). typefilter: Filter by task type (e.g. 'qmstart', 'vzstart', 'vzcreate'). statusfilter: Filter by status ('running', 'ok', 'error', etc.). |
| get_task_statusB | Get the status of a specific task by its UPID. Args: node: The node name. upid: The task UPID string. |
| get_task_logB | Get log output of a specific task. Args: node: The node name. upid: The task UPID string. limit: Max lines to return. start: Start line number. |
| stop_taskB | Stop (abort) a running task. Args: node: The node name. upid: The task UPID string. |
| get_node_timeB | Get the current time and timezone of a node. Args: node: The node name. |
| get_node_subscriptionC | Get subscription status for a node. Args: node: The node name. |
| get_node_apt_updateC | List available package updates on a node. Args: node: The node name. |
| run_apt_updateC | Refresh the package index on a node (apt update). Args: node: The node name. |
| get_node_reportC | Generate a system report for a node (useful for diagnostics). Args: node: The node name. |
| get_node_disksC | List physical disks on a node. Args: node: The node name. |
| get_disk_smartC | Get S.M.A.R.T. health data for a disk. Args: node: The node name. disk: Disk device path (e.g. '/dev/sda'). |
| get_node_hardware_pciB | List PCI hardware devices on a node (for passthrough). Args: node: The node name. |
| get_node_hardware_usbC | List USB hardware devices on a node. Args: node: The node name. |
| get_node_capabilities_qemuC | Get QEMU capabilities for a node: supported CPU models, machine types, etc. Args: node: The node name. |
| get_node_storage_scanA | Scan for available storage targets (NFS, CIFS, iSCSI, LVM, ZFS, PBS). Args: node: The node name. scan_type: Type to scan: 'nfs', 'cifs', 'iscsi', 'lvm', 'lvmthin', 'zfs', 'pbs'. server: Server address (required for nfs, cifs, iscsi, pbs). |
| wakeonlan_nodeB | Send a Wake-on-LAN magic packet to a node. Args: node: The node name. |
| startall_nodeA | Start all VMs and containers on a node (respecting boot order). Args: node: The node name. force: Force start even if already running. vms: Comma-separated list of VMIDs to start (empty = all). |
| stopall_nodeB | Stop all VMs and containers on a node. Args: node: The node name. vms: Comma-separated list of VMIDs to stop (empty = all). |
| get_node_hostsB | Get the /etc/hosts file content for a node. Args: node: The node name. |
| get_node_versionB | Get Proxmox VE version information for a specific node. Args: node: The node name. |
| get_node_netstatC | Get network statistics for a node (per-interface traffic). Args: node: The node name. |
| get_node_aplinfoA | List available appliance templates (LXC templates) that can be downloaded. Args: node: The node name. |
| download_appliance_templateB | Download an appliance template to local storage. Args: node: The node name. storage: Target storage ID. template: Template name to download. |
| list_poolsA | List all resource pools. |
| get_poolC | Get pool configuration and members. Args: poolid: Pool ID. |
| create_poolC | Create a resource pool. Args: poolid: Pool ID. comment: Description. |
| update_poolA | Update a resource pool (add/remove members). Args: poolid: Pool ID. comment: Description. vms: Comma-separated VMIDs to add/remove. storage: Comma-separated storage IDs to add/remove. delete: If true, remove the specified vms/storage from the pool instead of adding. |
| delete_poolC | Delete a resource pool. Args: poolid: Pool ID. |
| list_acme_accountsB | List ACME (Let's Encrypt) accounts. |
| get_acme_accountA | Get ACME account details. Args: name: Account name (default: 'default'). |
| register_acme_accountA | Register a new ACME account. Args: contact: Contact email address. directory: ACME directory URL (empty = Let's Encrypt production). name: Account name. tos_url: Terms of service URL to accept. |
| list_acme_pluginsA | List ACME DNS challenge plugins. |
| get_acme_pluginB | Get ACME plugin configuration. Args: id: Plugin ID. |
| get_acme_directoriesA | List known ACME directory URLs. |
| get_acme_tosA | Get the ACME Terms of Service URL. |
| order_node_certificateB | Order/renew ACME certificate for a node. Args: node: The node name. force: Force renewal even if not due. |
| get_node_certificatesC | Get certificate info for a node. Args: node: The node name. |
| list_vmsA | List all QEMU virtual machines on a node with status, memory, CPU, and disk info. Args: node: The node name. |
| get_vm_statusA | Get the current runtime status of a VM (state, CPU, memory, disk, network, uptime). Args: node: The node name. vmid: The VM ID. |
| get_vm_configA | Get the configuration of a VM. Args: node: The node name. vmid: The VM ID. current: If True, return current (runtime) config. If False, return pending config. |
| get_vm_pendingA | Get pending configuration changes for a VM (not yet applied). Args: node: The node name. vmid: The VM ID. |
| get_vm_featureA | Check if a specific feature is available/supported for a VM (e.g. snapshot, clone, copy). Args: node: The node name. vmid: The VM ID. feature: Feature to check ('snapshot', 'clone', 'copy'). |
| get_vm_rrddataA | Get RRD statistics data for a VM (CPU, memory, disk, network over time). Args: node: The node name. vmid: The VM ID. timeframe: Time range: 'hour', 'day', 'week', 'month', 'year'. |
| create_vmA | Create a new QEMU virtual machine. Args: node: The node name. vmid: The VM ID number. name: VM name. memory: Memory in MB (default 2048). cores: Number of CPU cores per socket (default 1). sockets: Number of CPU sockets (default 1). cpu: CPU type (default 'host'). ostype: OS type: l26 (Linux 2.6+), win10, win11, wxp, other, etc. scsihw: SCSI controller: virtio-scsi-single, virtio-scsi-pci, lsi, megasas, pvscsi. scsi0: First SCSI disk (e.g. 'local-lvm:32' for 32GB on local-lvm). ide2: IDE device, often used for CD-ROM (e.g. 'local:iso/ubuntu.iso,media=cdrom'). net0: Network device (e.g. 'virtio,bridge=vmbr0'). boot: Boot order, for example scsi0 then ide2 then net0. bios: BIOS type: seabios, ovmf (UEFI). machine: Machine type (e.g. 'q35', 'i440fx'). cdrom: CD-ROM ISO image path. agent: QEMU guest agent: '1' to enable, 'enabled=1,fstrim_cloned_disks=1'. start: Start the VM after creation. onboot: Start on host boot. description: VM description. pool: Resource pool to add the VM to. tags: Tags for the VM. |
| update_vm_configA | Update the configuration of an existing VM. Only provided parameters are changed. Args: node: The node name. vmid: The VM ID. name: VM name. memory: Memory in MB. cores: CPU cores per socket. sockets: CPU sockets. cpu: CPU type. net0: Network config. description: Description. onboot: Start on boot. agent: Guest agent config. boot: Boot order. tags: Tags for the VM. hotplug: Hotplug features (disk, network, usb, memory, cpu). delete: Comma-separated list of settings to delete. |
| delete_vmA | Delete a VM. The VM must be stopped first. Args: node: The node name. vmid: The VM ID. purge: Remove from replication, HA, backup jobs and ACLs too. destroy_unreferenced_disks: Also destroy unreferenced disks owned by the VM. |
| start_vmB | Start a VM. Args: node: The node name. vmid: The VM ID. timeout: Timeout in seconds (0 = default). |
| stop_vmA | Hard-stop a VM (like pulling the power plug). Prefer shutdown_vm for graceful stop. Args: node: The node name. vmid: The VM ID. timeout: Wait timeout in seconds. skiplock: Ignore locks (requires root). |
| shutdown_vmA | Gracefully shut down a VM via ACPI. Falls back to hard stop after timeout if force_stop is true. Args: node: The node name. vmid: The VM ID. timeout: Timeout in seconds before force stop. force_stop: Force stop after timeout (default True). |
| reboot_vmC | Reboot a VM via ACPI. Args: node: The node name. vmid: The VM ID. timeout: Wait timeout in seconds. |
| suspend_vmA | Suspend a VM (pause execution or hibernate to disk). Args: node: The node name. vmid: The VM ID. todisk: If True, hibernate to disk. If False, pause in RAM. |
| resume_vmA | Resume a suspended/paused VM. Args: node: The node name. vmid: The VM ID. |
| reset_vmB | Hard reset a VM (like pressing the reset button). Args: node: The node name. vmid: The VM ID. |
| clone_vmA | Clone a VM to create a new one. Can be a full copy or linked clone. Args: node: The source node name. vmid: The source VM ID. newid: The VMID for the new clone. name: Name for the clone. target: Target node for the clone (default: same node). full: Full clone (True) or linked clone (False). storage: Target storage for full clone. description: Description for the clone. pool: Resource pool. snapname: Snapshot name to clone from. |
| migrate_vmB | Migrate a VM to another node in the cluster. Args: node: The source node. vmid: The VM ID. target: Target node name. online: Live migration (True) or offline (False). with_local_disks: Migrate local disks as well. targetstorage: Target storage mapping for migration (e.g. 'local-lvm'). |
| convert_vm_to_templateA | Convert a VM into a template (irreversible). Args: node: The node name. vmid: The VM ID. |
| resize_vm_diskA | Resize a VM disk. Can only grow, not shrink. Args: node: The node name. vmid: The VM ID. disk: Disk name (e.g. 'scsi0', 'virtio0', 'ide0'). size: New size or size increment (e.g. '50G', '+10G'). |
| move_vm_diskA | Move a VM disk to different storage or attach to another VM. Args: node: The node name. vmid: The VM ID. disk: Source disk name (e.g. 'scsi0'). storage: Target storage ID (for moving to different storage). target_vmid: Target VM ID (for moving disk to another VM). target_disk: Target disk slot on the target VM. delete_original: Delete the original disk after moving. |
| list_vm_snapshotsB | List all snapshots of a VM. Args: node: The node name. vmid: The VM ID. |
| create_vm_snapshotC | Create a snapshot of a VM. Args: node: The node name. vmid: The VM ID. snapname: Snapshot name. description: Snapshot description. vmstate: Include RAM state (for running VMs). |
| delete_vm_snapshotC | Delete a VM snapshot. Args: node: The node name. vmid: The VM ID. snapname: Snapshot name to delete. force: Force delete even if snapshot is in use. |
| rollback_vm_snapshotA | Rollback a VM to a previous snapshot (current state will be lost). Args: node: The node name. vmid: The VM ID. snapname: The snapshot name to rollback to. |
| get_vm_snapshot_configC | Get the configuration stored in a VM snapshot. Args: node: The node name. vmid: The VM ID. snapname: The snapshot name. |
| get_vm_cloudinitC | Get Cloud-Init configuration for a VM. Args: node: The node name. vmid: The VM ID. |
| update_vm_cloudinitA | Set Cloud-Init parameters for a VM (user, password, SSH keys, network). Args: node: The node name. vmid: The VM ID. ciuser: Cloud-Init user name. cipassword: Cloud-Init password. sshkeys: SSH public keys (URL-encoded, newline delimited). ipconfig0: IP config for first interface (e.g. 'ip=dhcp' or 'ip=10.0.0.5/24,gw=10.0.0.1'). nameserver: DNS nameserver IP. searchdomain: DNS search domain. |
| dump_vm_cloudinitB | Dump the Cloud-Init generated config file (user-data, network-data, or meta-data). Args: node: The node name. vmid: The VM ID. type: Config type: 'user', 'network', or 'meta'. |
| vm_agent_execB | Execute a command inside a VM via the QEMU Guest Agent. Args: node: The node name. vmid: The VM ID. command: The command to execute. input_data: Data to pass to stdin. |
| vm_agent_exec_statusB | Get the status/result of a command previously executed via the guest agent. Args: node: The node name. vmid: The VM ID. pid: The PID returned by the exec call. |
| vm_agent_file_readB | Read a file from inside a VM via the guest agent. Args: node: The node name. vmid: The VM ID. file: Absolute file path inside the guest. |
| vm_agent_file_writeB | Write content to a file inside a VM via the guest agent. Args: node: The node name. vmid: The VM ID. file: Absolute file path inside the guest. content: File content to write. |
| vm_agent_get_infoB | Get various system information from a VM via the guest agent. Args: node: The node name. vmid: The VM ID. info_type: Info to retrieve: 'get-osinfo', 'get-host-name', 'get-time', 'get-timezone', 'get-users', 'get-vcpus', 'get-fsinfo', 'get-memory-blocks', 'get-memory-block-info', 'info', 'network-get-interfaces'. |
| vm_agent_set_passwordB | Set a user password inside a VM via the guest agent. Args: node: The node name. vmid: The VM ID. username: The username. password: The new password. crypted: If True, password is already encrypted. |
| get_vm_vncproxyC | Create a VNC proxy connection ticket for a VM (for console access). Args: node: The node name. vmid: The VM ID. websocket: Use WebSocket connection. |
| get_vm_spiceproxyC | Create a SPICE proxy connection for a VM console. Args: node: The node name. vmid: The VM ID. |
| send_vm_keyB | Send a key event to a VM (e.g. ctrl-alt-del). Args: node: The node name. vmid: The VM ID. key: Key combination (e.g. 'ctrl-alt-delete'). |
| send_vm_monitor_commandB | Send a QEMU monitor command to a VM (advanced/low-level). Args: node: The node name. vmid: The VM ID. command: The QEMU monitor command. |
| list_sdn_vnetsA | List SDN virtual networks (VNets). |
| get_sdn_vnetB | Get SDN VNet configuration. Args: vnet: VNet ID. |
| create_sdn_vnetC | Create an SDN VNet. Args: vnet: VNet ID. zone: Zone ID. tag: VLAN tag. alias: Display alias. vlanaware: Enable VLAN-aware bridge. |
| update_sdn_vnetC | Update an SDN VNet. Args: vnet: VNet ID. zone: Zone ID. tag: VLAN tag (-1 = don't change). alias: Display alias. delete: Comma-separated properties to delete. |
| delete_sdn_vnetC | Delete an SDN VNet. Args: vnet: VNet ID. |
| list_sdn_subnetsC | List subnets for an SDN VNet. Args: vnet: VNet ID. |
| create_sdn_subnetC | Create a subnet for an SDN VNet. Args: vnet: VNet ID. subnet: Subnet CIDR (e.g. '10.0.0.0/24'). gateway: Gateway IP. snat: Enable SNAT. dnszoneprefix: DNS zone prefix. |
| list_sdn_zonesA | List SDN zones. |
| get_sdn_zoneB | Get SDN zone configuration. Args: zone: Zone ID. |
| create_sdn_zoneB | Create an SDN zone. Args: zone: Zone ID. type: Zone type: 'simple', 'vlan', 'qinq', 'vxlan', 'evpn'. nodes: Comma-separated node list. ipam: IPAM plugin name. dns: DNS plugin name. bridge: Bridge name. mtu: MTU. |
| delete_sdn_zoneC | Delete an SDN zone. Args: zone: Zone ID. |
| list_sdn_controllersA | List SDN controllers (e.g. EVPN controller). |
| get_sdn_controllerC | Get SDN controller configuration. Args: controller: Controller ID. |
| list_sdn_ipamsA | List IPAM (IP Address Management) plugins. |
| get_sdn_ipamC | Get IPAM plugin configuration. Args: ipam: IPAM ID. |
| list_sdn_dnsC | List SDN DNS plugins. |
| apply_sdn_changesA | Apply pending SDN configuration changes to all nodes. |
| list_storageA | List all configured storage pools at the datacenter level. Args: type: Filter by type (dir, lvm, lvmthin, zfspool, nfs, cifs, iscsi, rbd, cephfs, pbs, glusterfs, btrfs). enabled: Only show enabled storage (default True). |
| get_storage_configA | Get configuration of a specific storage pool. Args: storage: The storage ID. |
| create_storageC | Create a new storage pool configuration. Args: storage: Storage ID. type: Storage type: dir, lvm, lvmthin, zfspool, nfs, cifs, iscsi, rbd, cephfs, pbs, glusterfs, btrfs. path: File system path (for dir, nfs mounts). server: Server IP/hostname (for nfs, cifs, iscsi, pbs, glusterfs, rbd, cephfs). export: NFS export path. vgname: LVM volume group name. thinpool: LVM thin pool name (for lvmthin). pool: Pool name (for Ceph RBD/CephFS, ZFS). portal: iSCSI portal. target: iSCSI target. datastore: PBS datastore name. content: Comma-separated content types (images, rootdir, vztmpl, iso, backup, snippets, import). nodes: Restrict storage to these nodes (comma-separated). shared: Mark as shared storage. disable: Create disabled. maxfiles: Max backup files (0 = unlimited). prune_backups: Backup retention policy. |
| update_storageB | Update an existing storage pool configuration. Args: storage: The storage ID to update. content: Content types (images, rootdir, vztmpl, iso, backup, snippets, import). nodes: Allowed nodes (comma-separated). shared: Mark as shared. disable: Disable this storage. prune_backups: Backup retention policy. delete: Comma-separated list of settings to delete. |
| delete_storageA | Delete a storage pool configuration (does not delete data on the backend). Args: storage: The storage ID. |
| list_node_storageA | List storage pools available on a specific node with usage info. Args: node: The node name. content: Filter by content type (images, rootdir, vztmpl, iso, backup). enabled: Only show enabled storage. |
| get_node_storage_statusB | Get usage status of a storage pool on a node (total, used, available). Args: node: The node name. storage: The storage ID. |
| list_storage_contentB | List content of a storage pool (disk images, ISOs, templates, backups). Args: node: The node name. storage: The storage ID. content: Filter by type: 'images', 'rootdir', 'vztmpl', 'iso', 'backup', 'snippets'. vmid: Filter by VM ID. |
| get_storage_volume_infoC | Get details about a specific volume in storage. Args: node: The node name. storage: The storage ID. volume: The volume ID. |
| allocate_storage_volumeA | Allocate a new disk volume in storage. Args: node: The node name. storage: The storage ID. vmid: VM ID to associate with. filename: Volume name. size: Volume size (e.g. '10G'). format: Disk format (raw, qcow2, vmdk). Auto-detected if empty. |
| delete_storage_volumeC | Delete a volume from storage. Args: node: The node name. storage: The storage ID. volume: The volume ID. |
| upload_to_storageC | Upload a file (ISO, template, etc.) to storage. Note: actual file upload must go through the HTTP API directly. Args: node: The node name. storage: The storage ID. content: Content type: 'iso', 'vztmpl', 'snippets', 'import'. filename: Target filename. tmpfilename: Temporary filename for the upload. |
| download_url_to_storageB | Download a file from a URL directly to storage (ISO, template, etc.). Args: node: The node name. storage: The storage ID. url: URL to download from. content: Content type: 'iso', 'vztmpl'. filename: Target filename. checksum: Expected checksum. checksum_algorithm: Checksum algorithm (sha256, sha512, md5). |
| get_storage_rrddataA | Get RRD statistics for a storage pool (usage over time). Args: node: The node name. storage: The storage ID. timeframe: Time range: 'hour', 'day', 'week', 'month', 'year'. |
| prune_storage_backupsA | Prune (delete) old backups from storage according to retention policy. Args: node: The node name. storage: The storage ID. type: Guest type filter ('qemu' or 'lxc'). vmid: Filter by VM ID. prune_backups: Retention spec (e.g. 'keep-last=3,keep-daily=7,keep-weekly=4'). dry_run: If True, only simulate (default True for safety). |
| list_file_restoreA | List files in a backup volume for file-level restore (PBS backups). Args: node: The node name. storage: The storage ID. volume: The backup volume ID. filepath: Path inside the backup to list (default '/'). |
| list_lvm_volumesC | List LVM volume groups on a node. Args: node: The node name. |
| create_lvmC | Create a new LVM volume group on a device. Args: node: The node name. name: VG name. device: Block device path (e.g. '/dev/sdb'). add_to_storage: Auto-add as Proxmox storage. |
| list_lvmthin_poolsB | List LVM thin pools on a node. Args: node: The node name. |
| create_lvmthinA | Create a new LVM thin pool. Args: node: The node name. name: Thin pool name. device: Block device path. add_to_storage: Auto-add as Proxmox storage. |
| list_zfs_poolsC | List ZFS pools on a node. Args: node: The node name. |
| get_zfs_poolB | Get details of a ZFS pool. Args: node: The node name. name: ZFS pool name. |
| create_zfs_poolB | Create a new ZFS pool. Args: node: The node name. name: Pool name. raidlevel: RAID level: single, mirror, raid10, raidz, raidz2, raidz3, draid, draid2, draid3. devices: Space-separated device paths (e.g. '/dev/sdb /dev/sdc'). add_to_storage: Auto-add as Proxmox storage. ashift: ashift value (default 12). compression: Compression (on, off, lz4, zstd, etc.). |
| list_directory_storageB | List directory-based storage mounts on a node. Args: node: The node name. |
| create_directory_storageA | Create a directory-based storage mount from a device. Args: node: The node name. name: Storage name. device: Block device path. filesystem: Filesystem type (ext4, xfs). add_to_storage: Auto-add as Proxmox storage. |
| initialize_gptA | Initialize a disk with GPT partition table (WARNING: destroys all data). Args: node: The node name. disk: Disk device path (e.g. '/dev/sdb'). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 286 tools
The resource/action prefixes help, but the scale creates overlapping lookalikes such as get_ha_status vs get_ha_manager_status, migrate_ha_resource vs relocate_ha_resource, and list_backup_file_restore vs list_file_restore. An agent selecting among 286 tools will frequently face ambiguous boundaries, even though many tools are individually distinct.
Most tools follow a clear list_/get_/create_/update_/delete_ + resource pattern, and related CRUD groups are easy to spot. However, there are notable deviations like vm_agent_exec, proxmox_api_raw, wakeonlan_node, and startall_node/stopall_node that break the otherwise predictable convention.
286 tools is far beyond a coherent MCP surface and exceeds any reasonable scope for fast and accurate tool selection. Even a comprehensive hypervisor API would be better served by consolidated endpoints or a smaller set of higher-level operations.
The server covers nearly every Proxmox VE domain with CRUD/lifecycle operations for VMs, containers, storage, users, HA, backups, SDN, firewall, and Ceph. Minor gaps exist, such as missing updates for some SDN/firewall alias resources and missing deletion for some Ceph objects, but the breadth and raw API fallback prevent major dead ends.