Update README with accurate functionality examples

- Fix tool output examples to match actual functionality
- Add missing proxmox_get_vm_status tool documentation
- Document permission warnings for elevated features
- Correct emojis and formatting to match real output
- Add missing parameters for VM filtering
- Update storage and cluster status examples
- Ensure all examples reflect tested behavior
This commit is contained in:
gilby125
2025-06-05 14:47:54 -05:00
parent f585111116
commit b54036b4f3

186
README.md
View File

@@ -150,139 +150,147 @@ The server will automatically load environment variables from `.env` files in th
The server provides the following MCP tools for interacting with Proxmox: The server provides the following MCP tools for interacting with Proxmox:
### proxmox_get_nodes ### proxmox_get_nodes
Lists all nodes in the Proxmox cluster. Lists all nodes in the Proxmox cluster with their status and resources.
- Parameters: None - Parameters: None
- Example Response: - Example Response:
``` ```
🖥️ Proxmox Nodes 🖥️ **Proxmox Cluster Nodes**
🖥️ pve-compute-01 🟢 **pve1**
• Status: ONLINE • Status: online
• Uptime: ⏳ 156d 12h • Uptime: 3d 2h 53m
• CPU Cores: 64 • CPU: 1.8%
• Memory: 186.5 GB / 512.0 GB (36.4%) • Memory: 5.89 GB / 62.21 GB (9.5%)
• Load: N/A
🖥️ pve-compute-02
• Status: ONLINE
• Uptime: ⏳ 156d 11h
• CPU Cores: 64
• Memory: 201.3 GB / 512.0 GB (39.3%)
``` ```
### proxmox_get_node_status ### proxmox_get_node_status
Get detailed status of a specific node. Get detailed status of a specific node (requires elevated permissions).
- Parameters: - Parameters:
- `node` (string, required): Name of the node - `node` (string, required): Name of the node
- Example Response: - Example Response (Basic Mode):
``` ```
🖥 Node: pve-compute-01 **Node Status Requires Elevated Permissions**
• Status: ONLINE
• Uptime: ⏳ 156d 12h To view detailed node status, set `PROXMOX_ALLOW_ELEVATED=true` in your .env file
• CPU Usage: 42.3% and ensure your API token has Sys.Audit permissions.
• CPU Cores: 64 (AMD EPYC 7763)
• Memory: 186.5 GB / 512.0 GB (36.4%) **Current permissions**: Basic (node listing only)
• Network: ⬆️ 12.8 GB/s ⬇️ 9.2 GB/s
• Temperature: 38°C
``` ```
### proxmox_get_vms ### proxmox_get_vms
List all VMs across the cluster. List all virtual machines across the cluster with their status.
- Parameters: None - Parameters:
- `node` (string, optional): Filter by specific node
- `type` (string, optional): VM type filter ('qemu', 'lxc', 'all'), default: 'all'
- Example Response: - Example Response:
``` ```
🗃️ Virtual Machines 💻 **Virtual Machines**
🗃️ prod-db-master (ID: 100) 🟢 📦 **docker** (ID: 100)
Status: RUNNING Node: pve1
Node: pve-compute-01 Status: running
CPU Cores: 16 Type: LXC
Memory: 92.3 GB / 128.0 GB (72.1%) Uptime: 5h 40m
• CPU: 0.8%
• Memory: 7.46 GB / 46.88 GB
🗃️ prod-web-01 (ID: 102) 🔴 📦 **ubuntu1** (ID: 115)
Status: RUNNING Node: pve1
Node: pve-compute-01 Status: stopped
• CPU Cores: 8 • Type: LXC
• Memory: 12.8 GB / 32.0 GB (40.0%) ```
### proxmox_get_vm_status
Get detailed status information for a specific VM.
- Parameters:
- `node` (string, required): Node name where VM is located
- `vmid` (string, required): VM ID number
- `type` (string, optional): VM type ('qemu', 'lxc'), default: 'qemu'
- Example Response:
```
🟢 📦 **docker** (ID: 100)
• **Node**: pve1
• **Status**: running
• **Type**: LXC
• **Uptime**: 5h 42m
• **CPU Usage**: 0.8%
• **Memory**: 7.47 GB / 46.88 GB (15.9%)
• **Disk Read**: 19.74 GB
• **Disk Write**: 21.71 GB
• **Network In**: 1.32 GB
• **Network Out**: 216.56 MB
``` ```
### proxmox_get_storage ### proxmox_get_storage
List available storage. List all storage pools and their usage across the cluster.
- Parameters: None - Parameters:
- `node` (string, optional): Filter by specific node
- Example Response: - Example Response:
``` ```
💾 Storage Pools 💾 **Storage Pools**
💾 ceph-prod 🟢 **local**
Status: ONLINE Node: pve1
• Type: rbd • Type: dir
Usage: 12.8 TB / 20.0 TB (64.0%) Content: vztmpl,iso,backup
IOPS: ⬆️ 15.2k ⬇️ 12.8k Usage: 19.58 GB / 93.93 GB (20.8%)
• Status: Enabled
💾 local-zfs 🟢 **zfs**
Status: ONLINE Node: pve1
• Type: zfspool • Type: zfspool
Usage: 3.2 TB / 8.0 TB (40.0%) Content: rootdir,images
IOPS: ⬆️ 42.8k ⬇️ 35.6k Usage: 87.33 MB / 899.25 GB (0.0%)
• Status: Enabled
``` ```
### proxmox_get_cluster_status ### proxmox_get_cluster_status
Get overall cluster status. Get overall cluster status including nodes and resource usage.
- Parameters: None - Parameters: None
- Example Response: - Example Response (Basic Mode):
``` ```
Proxmox Cluster 🏗 **Proxmox Cluster Status**
• Name: enterprise-cloud **Cluster Health**: 🟢 Healthy
• Status: HEALTHY **Nodes**: 1/1 online
• Quorum: OK
• Nodes: 4 ONLINE ⚠️ **Limited Information**: Resource usage requires elevated permissions
• Version: 8.1.3
• HA Status: ACTIVE **Node Details**:
• Resources: 🟢 pve1 - online
- Total CPU Cores: 192
- Total Memory: 1536 GB
- Total Storage: 70 TB
• Workload:
- Running VMs: 7
- Total VMs: 8
- Average CPU Usage: 38.6%
- Average Memory Usage: 42.8%
``` ```
### proxmox_execute_vm_command ### proxmox_execute_vm_command
Execute a command in a VM's console using QEMU Guest Agent. Execute a shell command on a virtual machine via Proxmox API (requires elevated permissions).
- Parameters: - Parameters:
- `node` (string, required): Name of the node where VM is running - `node` (string, required): Node name where VM is located
- `vmid` (string, required): ID of the VM - `vmid` (string, required): VM ID number
- `command` (string, required): Command to execute - `command` (string, required): Shell command to execute
- Example Response: - `type` (string, optional): VM type ('qemu', 'lxc'), default: 'qemu'
- Example Response (Basic Mode):
``` ```
🔧 Console Command Result ⚠️ **VM Command Execution Requires Elevated Permissions**
• Status: SUCCESS
• Command: systemctl status nginx
• Node: pve-compute-01
• VM: prod-web-01 (ID: 102)
Output: To execute commands on VMs, set `PROXMOX_ALLOW_ELEVATED=true` in your .env file
● nginx.service - A high performance web server and a reverse proxy server and ensure your API token has appropriate VM permissions.
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2025-02-18 15:23:45 UTC; 2 months 3 days ago **Current permissions**: Basic (VM listing only)
**Requested command**: `uptime`
``` ```
- Requirements: - Requirements (Elevated Mode):
- VM must be running - VM must be running
- QEMU Guest Agent must be installed and running in the VM - For QEMU: QEMU Guest Agent must be installed and running
- Command execution permissions must be enabled in the Guest Agent - For LXC: Direct execution via Proxmox API
- Error Handling: - Appropriate API token permissions
- Returns error if VM is not running
- Returns error if VM is not found
- Returns error if command execution fails
- Includes command output even if command returns non-zero exit code
## 👨‍💻 Development ## 👨‍💻 Development