Skip to main content
Glama

pdm_pve_lxc_migrate

Relocate an LXC container to another node within the same Proxmox cluster via PDM. Supports dry-run planning and confirmed execution with optional stop-move-start migration.

Instructions

MUTATION: relocate a container to another node within the same cluster, through PDM.

For a move to a different PDM remote/datacenter use pdm_pve_lxc_remote_migrate; to drive a cluster directly without PDM use pve_guest_migrate. The container is moved, not copied — the source node stops hosting it (there is no separate source to delete). LXC has no live migration: online=True does a stop-move-start restart-migration (real downtime); the default (False) requires it already be stopped. Dry-run by default (returns a PLAN); confirm=True submits and returns a PDM task reference — track it with pdm_tasks_list (pve_task_status cannot poll a PDM UPID). Requires the wired PDM remote's token to permit migration (VM.Migrate).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
vmidYesNumeric CTID of the container to migrate, as a string.
onlineNoTrue attempts online (restart) migration — real downtime for LXC; else the container must be stopped.
remoteYesPDM-registered remote (Proxmox cluster) hosting the container.
targetYesDestination node name within the same remote's cluster.
confirmNoFalse (default) returns a PLAN only; True submits it.
proximo_targetNoWhich configured Proxmox target to run this call against — a target name from your multi-target config (a specific PVE/PBS/PMG/PDM box). Omit to use the single/default target from the environment; the selection applies only to this call.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully discloses all relevant behaviors: it is a mutation that moves (not copies) the container, the source stops hosting, LXC lacks live migration (online=True means stop-move-start with real downtime), and the tool defaults to dry-run returning a PLAN. It also notes that pve_task_status cannot track the resulting PDM UPID, only pdm_tasks_list can. This is comprehensive and honest.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph of about 100 words, yet it covers purpose, alternatives, behavioral details, parameter nuances, and tracking. Every sentence adds value and is front-loaded with the most critical info. No fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (mutation, multiple parameters, PDM integration, dry-run workflow), the description is fully complete. It explains the entire lifecycle: what happens on execution (move, not copy), the effect of online vs offline, the dry-run vs confirm workflow, the result types (PLAN vs task reference), and how to monitor the task. The existence of an output schema does not detract from this.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although the input schema already covers all parameters (100% coverage), the description adds deeper context: it clarifies that 'target' must be within the same remote's cluster, explains that 'online=True' is not truly live for LXC but a restart, and specifies the dual-mode behavior of 'confirm' (false returns PLAN, true submits). This enriches the agent's understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'relocate a container to another node within the same cluster, through PDM.' It uses a specific verb (relocate/migrate) and resource (LXC container), and immediately distinguishes it from two sibling tools (pdm_pve_lxc_remote_migrate and pve_guest_migrate) by naming them explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool versus alternatives: for same-cluster migration via PDM, versus cross-datacenter or direct cluster migration. It also explains the behavior of the 'online' parameter, the dry-run default, and how to track the task. This gives the agent clear context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

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/john-broadway/proximo'

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