@bldg-7/proxmox-mcp 0.6.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (205) hide show
  1. package/README.md +37 -42
  2. package/dist/schemas/access-control.d.ts +503 -14
  3. package/dist/schemas/access-control.d.ts.map +1 -1
  4. package/dist/schemas/access-control.js +93 -0
  5. package/dist/schemas/access-control.js.map +1 -1
  6. package/dist/schemas/acme.d.ts +45 -24
  7. package/dist/schemas/acme.d.ts.map +1 -1
  8. package/dist/schemas/acme.js +37 -30
  9. package/dist/schemas/acme.js.map +1 -1
  10. package/dist/schemas/backup.d.ts +156 -6
  11. package/dist/schemas/backup.d.ts.map +1 -1
  12. package/dist/schemas/backup.js +35 -0
  13. package/dist/schemas/backup.js.map +1 -1
  14. package/dist/schemas/ceph.d.ts +240 -0
  15. package/dist/schemas/ceph.d.ts.map +1 -1
  16. package/dist/schemas/ceph.js +111 -1
  17. package/dist/schemas/ceph.js.map +1 -1
  18. package/dist/schemas/certificate.d.ts +41 -23
  19. package/dist/schemas/certificate.d.ts.map +1 -1
  20. package/dist/schemas/certificate.js +32 -32
  21. package/dist/schemas/certificate.js.map +1 -1
  22. package/dist/schemas/cloud-init.d.ts +19 -12
  23. package/dist/schemas/cloud-init.d.ts.map +1 -1
  24. package/dist/schemas/cloud-init.js +12 -8
  25. package/dist/schemas/cloud-init.js.map +1 -1
  26. package/dist/schemas/cluster-management.d.ts +1065 -76
  27. package/dist/schemas/cluster-management.d.ts.map +1 -1
  28. package/dist/schemas/cluster-management.js +222 -0
  29. package/dist/schemas/cluster-management.js.map +1 -1
  30. package/dist/schemas/console-access.d.ts +14 -28
  31. package/dist/schemas/console-access.d.ts.map +1 -1
  32. package/dist/schemas/console-access.js +6 -9
  33. package/dist/schemas/console-access.js.map +1 -1
  34. package/dist/schemas/disk.d.ts +203 -10
  35. package/dist/schemas/disk.d.ts.map +1 -1
  36. package/dist/schemas/disk.js +48 -0
  37. package/dist/schemas/disk.js.map +1 -1
  38. package/dist/schemas/guest.d.ts +693 -0
  39. package/dist/schemas/guest.d.ts.map +1 -0
  40. package/dist/schemas/guest.js +320 -0
  41. package/dist/schemas/guest.js.map +1 -0
  42. package/dist/schemas/network.d.ts +98 -0
  43. package/dist/schemas/network.d.ts.map +1 -1
  44. package/dist/schemas/network.js +38 -0
  45. package/dist/schemas/network.js.map +1 -1
  46. package/dist/schemas/node-network.d.ts +185 -12
  47. package/dist/schemas/node-network.d.ts.map +1 -1
  48. package/dist/schemas/node-network.js +64 -0
  49. package/dist/schemas/node-network.js.map +1 -1
  50. package/dist/schemas/node.d.ts +277 -2
  51. package/dist/schemas/node.d.ts.map +1 -1
  52. package/dist/schemas/node.js +135 -0
  53. package/dist/schemas/node.js.map +1 -1
  54. package/dist/schemas/notifications.d.ts +37 -27
  55. package/dist/schemas/notifications.d.ts.map +1 -1
  56. package/dist/schemas/notifications.js +36 -37
  57. package/dist/schemas/notifications.js.map +1 -1
  58. package/dist/schemas/pool-management.d.ts +58 -2
  59. package/dist/schemas/pool-management.d.ts.map +1 -1
  60. package/dist/schemas/pool-management.js +26 -0
  61. package/dist/schemas/pool-management.js.map +1 -1
  62. package/dist/schemas/sdn.d.ts +436 -0
  63. package/dist/schemas/sdn.d.ts.map +1 -1
  64. package/dist/schemas/sdn.js +72 -0
  65. package/dist/schemas/sdn.js.map +1 -1
  66. package/dist/schemas/snapshot.d.ts +150 -0
  67. package/dist/schemas/snapshot.d.ts.map +1 -1
  68. package/dist/schemas/snapshot.js +35 -0
  69. package/dist/schemas/snapshot.js.map +1 -1
  70. package/dist/schemas/storage-management.d.ts +399 -16
  71. package/dist/schemas/storage-management.d.ts.map +1 -1
  72. package/dist/schemas/storage-management.js +141 -0
  73. package/dist/schemas/storage-management.js.map +1 -1
  74. package/dist/schemas/system-operations.d.ts +253 -4
  75. package/dist/schemas/system-operations.d.ts.map +1 -1
  76. package/dist/schemas/system-operations.js +117 -0
  77. package/dist/schemas/system-operations.js.map +1 -1
  78. package/dist/schemas/vm-advanced.d.ts +425 -60
  79. package/dist/schemas/vm-advanced.d.ts.map +1 -1
  80. package/dist/schemas/vm-advanced.js +69 -0
  81. package/dist/schemas/vm-advanced.js.map +1 -1
  82. package/dist/schemas/vm.d.ts +48 -14
  83. package/dist/schemas/vm.d.ts.map +1 -1
  84. package/dist/schemas/vm.js +16 -2
  85. package/dist/schemas/vm.js.map +1 -1
  86. package/dist/server.d.ts.map +1 -1
  87. package/dist/server.js +96 -319
  88. package/dist/server.js.map +1 -1
  89. package/dist/tools/access-control.d.ts +7 -1
  90. package/dist/tools/access-control.d.ts.map +1 -1
  91. package/dist/tools/access-control.js +143 -1
  92. package/dist/tools/access-control.js.map +1 -1
  93. package/dist/tools/acme.d.ts +3 -9
  94. package/dist/tools/acme.d.ts.map +1 -1
  95. package/dist/tools/acme.js +128 -166
  96. package/dist/tools/acme.js.map +1 -1
  97. package/dist/tools/backup.d.ts +2 -1
  98. package/dist/tools/backup.d.ts.map +1 -1
  99. package/dist/tools/backup.js +55 -2
  100. package/dist/tools/backup.js.map +1 -1
  101. package/dist/tools/ceph.d.ts +7 -1
  102. package/dist/tools/ceph.d.ts.map +1 -1
  103. package/dist/tools/ceph.js +68 -0
  104. package/dist/tools/ceph.js.map +1 -1
  105. package/dist/tools/certificate.d.ts +3 -8
  106. package/dist/tools/certificate.d.ts.map +1 -1
  107. package/dist/tools/certificate.js +107 -139
  108. package/dist/tools/certificate.js.map +1 -1
  109. package/dist/tools/cloud-init.d.ts +2 -15
  110. package/dist/tools/cloud-init.d.ts.map +1 -1
  111. package/dist/tools/cloud-init.js +34 -53
  112. package/dist/tools/cloud-init.js.map +1 -1
  113. package/dist/tools/cluster-management.d.ts +12 -1
  114. package/dist/tools/cluster-management.d.ts.map +1 -1
  115. package/dist/tools/cluster-management.js +268 -1
  116. package/dist/tools/cluster-management.js.map +1 -1
  117. package/dist/tools/cluster.d.ts +2 -1
  118. package/dist/tools/cluster.d.ts.map +1 -1
  119. package/dist/tools/cluster.js +13 -0
  120. package/dist/tools/cluster.js.map +1 -1
  121. package/dist/tools/command.d.ts.map +1 -1
  122. package/dist/tools/command.js +0 -14
  123. package/dist/tools/command.js.map +1 -1
  124. package/dist/tools/console-access.d.ts +3 -20
  125. package/dist/tools/console-access.d.ts.map +1 -1
  126. package/dist/tools/console-access.js +25 -70
  127. package/dist/tools/console-access.js.map +1 -1
  128. package/dist/tools/disk.d.ts +6 -1
  129. package/dist/tools/disk.d.ts.map +1 -1
  130. package/dist/tools/disk.js +78 -1
  131. package/dist/tools/disk.js.map +1 -1
  132. package/dist/tools/guest-lifecycle.d.ts +12 -0
  133. package/dist/tools/guest-lifecycle.d.ts.map +1 -0
  134. package/dist/tools/guest-lifecycle.js +66 -0
  135. package/dist/tools/guest-lifecycle.js.map +1 -0
  136. package/dist/tools/guest-modify.d.ts +10 -0
  137. package/dist/tools/guest-modify.d.ts.map +1 -0
  138. package/dist/tools/guest-modify.js +105 -0
  139. package/dist/tools/guest-modify.js.map +1 -0
  140. package/dist/tools/guest-query.d.ts +11 -0
  141. package/dist/tools/guest-query.d.ts.map +1 -0
  142. package/dist/tools/guest-query.js +57 -0
  143. package/dist/tools/guest-query.js.map +1 -0
  144. package/dist/tools/index.d.ts +24 -21
  145. package/dist/tools/index.d.ts.map +1 -1
  146. package/dist/tools/index.js +32 -27
  147. package/dist/tools/index.js.map +1 -1
  148. package/dist/tools/network.d.ts +2 -1
  149. package/dist/tools/network.d.ts.map +1 -1
  150. package/dist/tools/network.js +65 -1
  151. package/dist/tools/network.js.map +1 -1
  152. package/dist/tools/node-disk.d.ts +6 -0
  153. package/dist/tools/node-disk.d.ts.map +1 -0
  154. package/dist/tools/node-disk.js +39 -0
  155. package/dist/tools/node-disk.js.map +1 -0
  156. package/dist/tools/node-network.d.ts +2 -1
  157. package/dist/tools/node-network.d.ts.map +1 -1
  158. package/dist/tools/node-network.js +14 -0
  159. package/dist/tools/node-network.js.map +1 -1
  160. package/dist/tools/node.d.ts +6 -0
  161. package/dist/tools/node.d.ts.map +1 -1
  162. package/dist/tools/node.js +62 -0
  163. package/dist/tools/node.js.map +1 -1
  164. package/dist/tools/notifications.d.ts +2 -6
  165. package/dist/tools/notifications.d.ts.map +1 -1
  166. package/dist/tools/notifications.js +100 -123
  167. package/dist/tools/notifications.js.map +1 -1
  168. package/dist/tools/permissions.d.ts +5 -0
  169. package/dist/tools/permissions.d.ts.map +1 -0
  170. package/dist/tools/permissions.js +405 -0
  171. package/dist/tools/permissions.js.map +1 -0
  172. package/dist/tools/registry.d.ts.map +1 -1
  173. package/dist/tools/registry.js +154 -556
  174. package/dist/tools/registry.js.map +1 -1
  175. package/dist/tools/sdn.d.ts +5 -1
  176. package/dist/tools/sdn.d.ts.map +1 -1
  177. package/dist/tools/sdn.js +109 -1
  178. package/dist/tools/sdn.js.map +1 -1
  179. package/dist/tools/snapshot.d.ts +2 -1
  180. package/dist/tools/snapshot.d.ts.map +1 -1
  181. package/dist/tools/snapshot.js +68 -1
  182. package/dist/tools/snapshot.js.map +1 -1
  183. package/dist/tools/storage-management.d.ts +6 -1
  184. package/dist/tools/storage-management.d.ts.map +1 -1
  185. package/dist/tools/storage-management.js +69 -1
  186. package/dist/tools/storage-management.js.map +1 -1
  187. package/dist/tools/system-operations.d.ts +7 -1
  188. package/dist/tools/system-operations.d.ts.map +1 -1
  189. package/dist/tools/system-operations.js +76 -0
  190. package/dist/tools/system-operations.js.map +1 -1
  191. package/dist/tools/vm-advanced.d.ts +10 -1
  192. package/dist/tools/vm-advanced.d.ts.map +1 -1
  193. package/dist/tools/vm-advanced.js +141 -1
  194. package/dist/tools/vm-advanced.js.map +1 -1
  195. package/dist/tools/vm-create.js +4 -4
  196. package/dist/tools/vm-create.js.map +1 -1
  197. package/dist/tools/vm-modify.d.ts +11 -1
  198. package/dist/tools/vm-modify.d.ts.map +1 -1
  199. package/dist/tools/vm-modify.js +83 -1
  200. package/dist/tools/vm-modify.js.map +1 -1
  201. package/dist/types/tools.d.ts +1 -1
  202. package/dist/types/tools.d.ts.map +1 -1
  203. package/dist/types/tools.js +87 -307
  204. package/dist/types/tools.js.map +1 -1
  205. package/package.json +1 -1
package/README.md CHANGED
@@ -8,7 +8,7 @@
8
8
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.6-blue.svg)](https://www.typescriptlang.org/)
9
9
  [![Node.js](https://img.shields.io/badge/Node.js-18+-green.svg)](https://nodejs.org/)
10
10
 
11
- A comprehensive MCP server providing 307 tools for managing Proxmox Virtual Environment, including QEMU VMs and LXC containers.
11
+ A comprehensive MCP server providing 91 tools for managing Proxmox Virtual Environment, including QEMU VMs and LXC containers.
12
12
 
13
13
  ## Credits & Background
14
14
 
@@ -23,20 +23,20 @@ This project is a TypeScript rewrite of [mcp-proxmox-server](https://github.com/
23
23
  - Giant switch statement (55 cases) → tool registry with handler/schema pairs
24
24
 
25
25
  **Quality**:
26
- - 0 tests → 808 tests
26
+ - 0 tests → 1,114 tests
27
27
  - No input validation → Zod runtime validation on every tool call
28
28
  - Implicit error handling → structured MCP error responses with context
29
29
  - No permission checks → two-tier permission model (basic / elevated)
30
30
 
31
31
  **Developer Experience**:
32
32
  - `npx @bldg-7/proxmox-mcp` just works
33
- - All 307 tool descriptions exposed via MCP `ListTools`
33
+ - All 91 tool descriptions exposed via MCP `ListTools`
34
34
  - Rate limiter middleware included
35
35
  - Pino structured logging instead of `console.log`
36
36
 
37
37
  ## Features
38
38
 
39
- - **307 comprehensive tools** for Proxmox management
39
+ - **91 comprehensive tools** for Proxmox management
40
40
  - **Full TypeScript implementation** with strict type safety
41
41
  - **Support for both QEMU VMs and LXC containers**
42
42
  - **Secure authentication** (API token)
@@ -125,35 +125,30 @@ Add to your Claude Desktop configuration (`~/Library/Application Support/Claude/
125
125
 
126
126
  ## Available Tools
127
127
 
128
- This server provides **307 comprehensive tools** for Proxmox management:
128
+ This server provides **91 comprehensive tools** for Proxmox management:
129
129
 
130
130
  | Category | Tools | Permission |
131
131
  |----------|-------|------------|
132
- | Node & Cluster | 7 | Mixed |
133
- | Node Management | 8 | Mixed |
134
- | System Operations | 20 | Mixed |
135
- | Node Network Config | 4 | Elevated 🔒 |
136
- | Cluster Management | 54 | Mixed |
137
- | Storage Management | 12 | Mixed |
138
- | Access Control | 25 | Mixed |
139
- | Pool Management | 5 | Mixed |
140
- | SDN Networking | 20 | Mixed |
141
- | Ceph | 16 | Mixed |
142
- | VM Query | 9 | Basic |
143
- | VM Lifecycle | 12 | Elevated 🔒 |
144
- | VM Modify | 4 | Elevated 🔒 |
145
- | VM/LXC Advanced | 30 | Mixed |
146
- | Snapshots | 8 | Mixed |
147
- | Backups | 6 | Elevated 🔒 |
148
- | Disks | 16 | Mixed |
149
- | VM/LXC Network | 6 | Elevated 🔒 |
150
- | Console Access | 5 | Elevated 🔒 |
151
- | Command Execution | 1 | Elevated 🔒 |
152
- | VM Creation | 6 | Mixed |
153
- | Certificates | 7 | Mixed |
154
- | ACME | 8 | Mixed |
155
- | Notifications | 5 | Mixed |
156
- | **Total** | **307** | |
132
+ | Node Management | 14 | Mixed |
133
+ | Guest (VM/LXC) | 23 | Mixed |
134
+ | Guest Creation | 2 | Elevated 🔒 |
135
+ | QEMU Agent | 7 | Elevated 🔒 |
136
+ | Cluster Operations | 5 | Mixed |
137
+ | Cluster Firewall | 6 | Mixed |
138
+ | High Availability | 2 | Mixed |
139
+ | Storage | 3 | Mixed |
140
+ | SDN Networking | 4 | Mixed |
141
+ | Access Control | 7 | Mixed |
142
+ | Ceph | 6 | Mixed |
143
+ | Console Access | 3 | Elevated 🔒 |
144
+ | Backup | 1 | Mixed |
145
+ | VM Disks | 1 | Elevated 🔒 |
146
+ | LXC Mount Points | 1 | Elevated 🔒 |
147
+ | Cloud-Init | 1 | Mixed |
148
+ | Certificates | 1 | Mixed |
149
+ | ACME | 3 | Mixed |
150
+ | Notifications | 1 | Mixed |
151
+ | **Total** | **91** | |
157
152
 
158
153
  📖 **[Full Tools Reference →](docs/TOOLS.md)**
159
154
 
@@ -165,7 +160,7 @@ This package includes **Agent Skills** - AI-optimized documentation that teaches
165
160
 
166
161
  | Skill | Description | Tools/Topics |
167
162
  |-------|-------------|--------------|
168
- | **proxmox-mcp-tools** | Complete MCP tool reference for Proxmox VE | 307 tools across 14 domains (VMs, LXC, cluster, storage, networking, Ceph, certificates, ACME, notifications) |
163
+ | **proxmox-mcp-tools** | Complete MCP tool reference for Proxmox VE | 91 tools across 14 domains (VMs, LXC, cluster, storage, networking, Ceph, certificates, ACME, notifications) |
169
164
  | **proxmox-admin** | Operational expertise for Proxmox infrastructure | VM lifecycle, storage management, HA configuration, troubleshooting |
170
165
 
171
166
  ### Installation
@@ -202,9 +197,9 @@ You: "Create an Ubuntu VM with 4 cores, 8GB RAM, and 50GB disk on pve1"
202
197
  Agent knows the workflow from the skill:
203
198
  1. proxmox_get_next_vmid → gets available VM ID (e.g., 105)
204
199
  2. proxmox_create_vm → creates VM 105 with 4 cores, 8GB RAM
205
- 3. proxmox_add_disk_vm → attaches 50GB virtio disk
206
- 4. proxmox_add_network_vm → adds network interface on vmbr0
207
- 5. proxmox_start_vm → powers on the VM
200
+ 3. proxmox_vm_disk → attaches 50GB virtio disk (action: 'add')
201
+ 4. proxmox_guest_network → adds network interface on vmbr0 (action: 'add', type: 'vm')
202
+ 5. proxmox_guest_start → powers on the VM (type: 'vm')
208
203
  ```
209
204
 
210
205
  **Example — Setting up HA** (agent uses `proxmox-admin` skill):
@@ -212,9 +207,9 @@ Agent knows the workflow from the skill:
212
207
  You: "Make VM 100 highly available"
213
208
 
214
209
  Agent knows the operational playbook:
215
- 1. proxmox_get_ha_groups → checks existing HA groups
216
- 2. proxmox_create_ha_resource → adds VM 100 to HA with priority
217
- 3. proxmox_get_ha_status → verifies HA is active
210
+ 1. proxmox_ha_group → checks existing HA groups (action: 'list')
211
+ 2. proxmox_ha_resource → adds VM 100 to HA with priority (action: 'create')
212
+ 3. proxmox_ha_resource → verifies HA is active (action: 'status')
218
213
  ```
219
214
 
220
215
  **Example — Troubleshooting** (agent uses both skills together):
@@ -222,10 +217,10 @@ Agent knows the operational playbook:
222
217
  You: "VM 100 won't start, help me figure out why"
223
218
 
224
219
  Agent combines tool knowledge + operational expertise:
225
- 1. proxmox_get_vm_status → checks current state
226
- 2. proxmox_get_vm_config → reviews configuration
227
- 3. proxmox_get_node_status → checks node resource availability
228
- 4. proxmox_get_node_tasks → finds recent failed tasks
220
+ 1. proxmox_guest_status → checks current state (type: 'vm')
221
+ 2. proxmox_guest_config → reviews configuration (action: 'get', type: 'vm')
222
+ 3. proxmox_node → checks node resource availability (action: 'status')
223
+ 4. proxmox_node_task → finds recent failed tasks (action: 'list')
229
224
  → Diagnoses: "Node pve1 has insufficient memory. VM requires 8GB but only 2GB free."
230
225
  → Suggests: resize VM memory, migrate to another node, or free resources
231
226
  ```
@@ -233,7 +228,7 @@ Agent combines tool knowledge + operational expertise:
233
228
  ### Skill Contents
234
229
 
235
230
  **proxmox-mcp-tools** — Tool Reference:
236
- - 307 tools organized into 14 domains (VMs, LXC, cluster, storage, networking, Ceph, access control, pools, certificates, ACME, notifications)
231
+ - 91 tools organized into 14 domains (VMs, LXC, cluster, storage, networking, Ceph, access control, pools, certificates, ACME, notifications)
237
232
  - Parameters, types, and descriptions for every tool
238
233
  - Permission levels (basic vs elevated 🔒)
239
234
  - Common workflow patterns (create VM, backup/restore, clone, migrate)