Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PROXMOX_HOSTYesProxmox host address
PROXMOX_PORTNoAPI port8006
PROXMOX_USERNoUserroot@pam
TOOL_ROUTINGNoEnable tool routing modefalse
PROXMOX_TIMEOUTNoRequest timeout in seconds30
PROXMOX_PASSWORDNoPassword (alternative to token authentication)
PROXMOX_TOKEN_NAMENoAPI token name (required with PROXMOX_TOKEN_VALUE if not using password)
PROXMOX_VERIFY_SSLNoSSL verification (0 or 1)0
PROXMOX_TOKEN_VALUENoAPI token value (required with PROXMOX_TOKEN_NAME if not using password)

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
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.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/GethosTheWalrus/proxmox-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server