Skip to main content
Glama

proximo_call

Run governed POST/PUT/DELETE Proxmox mutations: preview plan and consent ID, execute only with confirm=true, undo via receipts; requires armed operator and blast-radius tier.

Instructions

MUTATION: run a governed POST/PUT/DELETE. Without confirm=true it returns the plan (verdict, consent id, current, change) and mutates nothing. Refused unless the operator is armed AND the address has an authored blast-radius tier. Every call, refused or executed, is receipted. Task-backed calls are waited on (wait=N s, default 60, max 600; 0 submits only). method=undo with path=<undo.id> puts a receipt's capture back, plan first; withheld or unpublished keys come back as skipped.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "plane": "<plane>",
      "method": "<method>",
      "path": "<path>"
    },
    "name": "proximo_call"
  }
}

Input Schema

NameRequiredDescriptionDefault
argsNo
pathYes
waitNo
planeYes
methodYes
confirmNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed13 schema fields changedv0.49.1
    • removedInput schema / properties / args / anyOf
      Removed value: -[
      -  {
      -    "additionalProperties": true,
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / args / default
      Removed value: -null
    • removedInput schema / properties / args / title
      Removed value: -"Args"
    • addedInput schema / properties / args / type
      Added value: +"object"
    • removedInput schema / properties / confirm / title
      Removed value: -"Confirm"
    • removedInput schema / properties / method / title
      Removed value: -"Method"
    • removedInput schema / properties / path / title
      Removed value: -"Path"
    • removedInput schema / properties / plane / title
      Removed value: -"Plane"
    • removedInput schema / properties / wait / anyOf
      Removed value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / wait / default
      Removed value: -null
    • removedInput schema / properties / wait / title
      Removed value: -"Wait"
    • addedInput schema / properties / wait / type
      Added value: +"integer"
    • removedInput schema / title
      Removed value: -"_callArguments"
  2. Changed11 schema fields changedv0.46.2
    • addedInput schema / properties / args
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Args"
      +}
    • removedInput schema / properties / arguments
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "additionalProperties": true,
      -      "type": "object"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "The tool's arguments as an object, e.g. {'vmid': 100, 'action': 'reboot'}. Get the shape from proximo_tool_schema. Omit/null for a no-arg tool."
      -}
    • addedInput schema / properties / confirm
      Added value: +{
      +  "default": false,
      +  "title": "Confirm",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / method
      Added value: +{
      +  "title": "Method",
      +  "type": "string"
      +}
    • addedInput schema / properties / path
      Added value: +{
      +  "title": "Path",
      +  "type": "string"
      +}
    • addedInput schema / properties / plane
      Added value: +{
      +  "enum": [
      +    "pve",
      +    "pbs",
      +    "pmg",
      +    "pdm"
      +  ],
      +  "title": "Plane",
      +  "type": "string"
      +}
    • removedInput schema / properties / tool
      Removed value: -{
      -  "description": "Exact tool name to run, e.g. 'pve_guest_power' (from proximo_find_tools). Non-resident names are fine.",
      -  "type": "string"
      -}
    • addedInput schema / properties / wait
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Wait"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "tool"
      -]New value: +[
      +  "plane",
      +  "method",
      +  "path"
      +]
    • addedInput schema / title
      Added value: +"_callArguments"
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "title": "_callDictOutput",
      +  "type": "object"
      +}
  3. Changed2 schema fields changedv0.32.0
    • addedInput schema / properties / arguments / description
      Added value: +"The tool's arguments as an object, e.g. {'vmid': 100, 'action': 'reboot'}. Get the shape from proximo_tool_schema. Omit/null for a no-arg tool."
    • addedInput schema / properties / tool / description
      Added value: +"Exact tool name to run, e.g. 'pve_guest_power' (from proximo_find_tools). Non-resident names are fine."
  4. Addedv0.31.1

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only say readOnlyHint=false; the description carries everything else: dry-run default, refusal preconditions (armed operator, blast-radius tier), receipting on every call including refusals, task-backed wait semantics with default and max, and undo restore behavior with skipped-key outcomes. That is exactly the beyond-annotation context an agent needs before invoking a destructive tool.

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

Conciseness4/5

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

Front-loads 'MUTATION:' as a hazard marker and packs only actionable facts into seven short clauses with no filler. It is dense to the point of terseness in places (e.g. 'current, change' unpacked), but nothing is extraneous.

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

Completeness4/5

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

Output schema exists, so return values needn't be described, yet the plan verdict/consent-id/current/change are still named helpfully. For a governed mutation with refusal paths, receipts, and async waiting, the coverage is strong; the main omissions are what args accepts and what each plane (pve/pbs/pmg/pdm) governs.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It explains confirm (default false, plans only), wait (N seconds, default 60, max 600, 0 submits only), method=undo paired with path=<undo.id>, and the plan payload fields. It leaves args (nested object) and the plane enum values unexplained, so a small gap remains.

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?

Opens with 'MUTATION: run a governed POST/PUT/DELETE', a specific verb plus resource plus governance scope. The read/plan siblings (proximo_read, proximo_plan) are implicitly separated because this tool explicitly mutates, and the plan-without-confirm behavior clarifies the boundary with proximo_plan.

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

Usage Guidelines4/5

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

Gives concrete conditions: without confirm=true it only plans; refused unless operator is armed and the address has an authored blast-radius tier; method=undo reverts a receipt. It never explicitly names proximo_plan or proximo_read as the alternatives to use instead, so the routing guidance is conditional rather than comparative.

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