Skip to main content
Glama

proximo_read

Read-only

Run read-only GET queries against Proxmox planes to inspect resources, track changes, wait for task status, and diagnose node health with lean fields and totals.

Instructions

READ-ONLY: run a GET by /path, or by words with no slash. args = query parameters (params: old name). Rows come lean with a total; fields='all' or 'name,status' for others; over the cap you get counts and a next line. since='24h': what changed, from the door's snapshots. wait=N on .../tasks/{upid}/status waits up to N s (max 600). diagnose=true on a node or guest path: health and advisory flags. Credentials come back withheld.

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>",
      "path": "<path>"
    },
    "name": "proximo_read"
  }
}

Input Schema

NameRequiredDescriptionDefault
argsNo
pathYes
waitNo
planeYes
sinceNo
fieldsNo
paramsNo
diagnoseNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed21 schema fields changedv0.49.1
    • addedInput schema / properties / args
      Added value: +{
      +  "type": "object"
      +}
    • removedInput schema / properties / diagnose / title
      Removed value: -"Diagnose"
    • removedInput schema / properties / fields / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / fields / default
      Removed value: -null
    • removedInput schema / properties / fields / title
      Removed value: -"Fields"
    • addedInput schema / properties / fields / type
      Added value: +"string"
    • removedInput schema / properties / params / anyOf
      Removed value: -[
      -  {
      -    "additionalProperties": true,
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / params / default
      Removed value: -null
    • removedInput schema / properties / params / title
      Removed value: -"Params"
    • addedInput schema / properties / params / type
      Added value: +"object"
    • removedInput schema / properties / path / title
      Removed value: -"Path"
    • removedInput schema / properties / plane / title
      Removed value: -"Plane"
    • removedInput schema / properties / since / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / since / default
      Removed value: -null
    • removedInput schema / properties / since / title
      Removed value: -"Since"
    • addedInput schema / properties / since / type
      Added value: +"string"
    • 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: -"_readArguments"
  2. Changed12 schema fields changedv0.46.2
    • removedInput schema / properties / arguments
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "additionalProperties": true,
      -      "type": "object"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "title": "Arguments"
      -}
    • addedInput schema / properties / diagnose
      Added value: +{
      +  "default": false,
      +  "title": "Diagnose",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / fields
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Fields"
      +}
    • addedInput schema / properties / params
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Params"
      +}
    • 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"
      +}
    • addedInput schema / properties / since
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Since"
      +}
    • removedInput schema / properties / tool
      Removed value: -{
      -  "title": "Tool",
      -  "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",
      +  "path"
      +]
    • changedInput schema / title
      Previous value: -"proximo_readArguments"New value: +"_readArguments"
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "title": "_readDictOutput",
      +  "type": "object"
      +}
  3. Addedv0.36.0

TDQS

A3.6/5.0
Behavior4/5

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

The readOnlyHint annotation already covers safety, and the description goes beyond it: it discloses that over the result cap you receive counts plus a 'next' line (pagination), that credentials are returned withheld (redaction), and that wait is capped at 600 seconds (rate/latency bound). These are real behavioral traits an agent needs before calling.

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

Conciseness3/5

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

Front-loading READ-ONLY is correct and the text is tight with no filler sentences. However, the telegraphic style ('the door's snapshots', 'Rows come lean') trades clarity for brevity and forces the agent to decode idiomatic phrasing mid-parameter.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and the description covers pagination and redaction well. Against 8 parameters at 0% schema coverage with a nested args object and an unexplained four-value plane enum, it is adequate but not fully self-sufficient.

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 coverage is 0%, so the description carries the full burden, and it defines args (query parameters), params (legacy name for args), fields (with concrete 'all' and 'name,status' examples), since, wait (with the max), and diagnose. It leaves 'plane' — the enum with four values — entirely unexplained, which is the notable gap across 8 parameters with nested objects.

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

Purpose4/5

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

Opens with a specific verb and constraint ('READ-ONLY: run a GET by /path, or by words with no slash'), which tells an agent this is a generic read dispatcher distinct from mutation-oriented siblings like proximo_call. The path-vs-words duality is concrete, though the jargon ('the door', 'lean') slightly obscures the object being read.

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

Usage Guidelines3/5

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

It embeds usage context for the option flags (since='24h' for change tracking, wait=N only on .../tasks/{upid}/status, diagnose=true on node/guest paths), which is genuinely useful routing information. But it never explicitly contrasts itself with proximo_find, proximo_plan, or proximo_call, so an agent must infer when to pick this dispatcher over the dedicated siblings.

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