forked from agentify-sh/cursor-proxmox-mcp
-
Notifications
You must be signed in to change notification settings - Fork 0
Recipes
wiki-sync edited this page Jul 19, 2026
·
4 revisions
Living playbooks for Cursor agents using cursor-proxmox-mcp. Tool names are CI-locked — see Tools for the full list.
-
get_next_vmid(best-effort; race possible before create) -
list_os_templates(optionaldownload_url_to_storageif none) -
create_lxc— OS template only; preferssh_public_keys; features e.g.nesting=1,keyctl=1when needed; optionalwait=trueto poll create UPID in-tool (default still false — else step 4) -
wait_for_task(node, upid)until stopped — create returns UPID immediately unlesswait=true -
start_lxc(orstart_guestwithguest_type=lxc) -
get_lxc_network— configurednetN; runtime IPv4 needs host SSH/pct
Do not claim the guest is “ready for apps” until you verify services yourself.
Supported path (Phase F):
-
create_lxcwithdocker_ready=true(orfeatures=nesting=1,keyctl=1) +ssh_public_keys -
wait_for_task(orwait=trueon create) →start_lxc→ confirm IP -
prepare_lxc_for_docker— hostlxc-pvegate + dual AppArmor workaround if unpatched - If
restart_required:stop_lxcthenstart_lxc(not reboot alone) - Install Docker if needed (
install_docker=trueorexecute_lxc_command) - Smoke:
docker run --rm nginx:alpine— not merelydocker --version -
push_to_lxcfor app files
Prompt-style recipe: SETUP.md — Provision a nested Docker LXC.
- Running CT with host SSH configured
-
deploy_static_nginx— installs nginx; optionalcontent_base64/local_path(html or.tar.gz) -
get_lxc_network→curl http://<ip>/
-
list_isos/list_node_networks/get_next_vmid -
create_vmwithiso, optionalciuser/sshkeys/ipconfig0,bridge; optionalwait=true -
wait_for_task(unlesswait=true) -
start_vm— finish OS install via console ticket or cloud-init; guest agent needed forexecute_vm_command/get_vm_network/push_to_vm
-
update_vm_config/update_lxc_config/update_lxc_features -
get_guest_pending— some keys need reboot -
reboot_guest/reboot_vm/reboot_lxcas appropriate
-
delete_vm/delete_lxc/delete_guestwithforce=true— server waits for stop UPID, then starts delete - Still
wait_for_taskon the delete UPID before assuming the guest is gone
-
get_token_permissionsforuserid+ token id - If lists are empty (
get_vms/get_containers/get_storage), fix ACL onuser@realm!tokenid(privsep), not only the user
-
create_snapshot(noteguest_type) - Make changes
-
rollback_snapshotonly if needed (destructive)
cursor-proxmox-mcp
Repo