Skip to main content
Glama
msmith626

mavforge-mcp

by msmith626

params_diff

Read-onlyIdempotent

Compares ArduPilot vehicle parameters against a saved backup, or two backups against each other, and reports configuration differences with warnings. Read-only.

Instructions

Compare parameters with a saved backup (backup_id from params_backups). By default compares the live vehicle; with against_backup_id, compares two backups without contacting the vehicle. Read-only. Read warnings first: different firmware, board or vehicle type, or incomplete data limit what the diff means. Changes marked volatile (boot counters, boot-time gyro/baro calibration) are normally not configuration differences.

Input Schema

NameRequiredDescriptionDefault
backup_idYes
against_backup_idNo

Output Schema

NameRequiredDescriptionDefault
statusYes
changedYes
currentYesWhat was compared: 'vehicle' or a backup.
vehicleNoLive vehicle identity when comparing against a vehicle.
warningsYesIdentity, firmware or completeness problems that limit what the diff means. Read these before trusting the result.
referenceYesThe baseline: backup id, file, or description.
unchangedYes
only_in_currentYesPresent now but absent from the baseline (new firmware or feature).
only_in_referenceYesIn the baseline but absent now (renamed in newer firmware, or belongs to a disabled feature).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

With readOnlyHint/idempotentHint already declared, the description still adds real behavioral context: the backup-vs-backup path never contacts the vehicle, and mismatched firmware/board/vehicle type or incomplete data is surfaced via 'warnings' that limit what the diff means. It also warns that 'volatile' entries (boot counters, boot-time calibration) are normally not configuration differences — interpretive guidance found nowhere in the annotations. Minor redundancy in restating 'Read-only'.

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?

The core mode split is front-loaded in the first two sentences and the caveats follow in a logical order (warnings, then volatile entries). Every sentence earns its place except the bare 'Read-only', which repeats the annotations.

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?

An output schema exists, so return values need no explanation, and the description correctly spends its budget on the interpretive traps an agent would otherwise get wrong (mismatch warnings, volatile fields). What's missing is any note on diff granularity or how large result sets are handled, which is modest but real for a comparison tool.

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 carry the load, and it does: it identifies backup_id's provenance (from params_backups) and explains the semantic effect of against_backup_id (switch from live comparison to backend-only comparison). It could be sharper on what happens if both IDs are absent or on ID format, but both parameters gain meaning beyond the bare 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?

States a specific verb and resource ('Compare parameters with a saved backup'), and names the sibling that supplies the backup_id ('from params_backups'). It also distinguishes its two modes (live comparison vs. backup-vs-backup), so an agent can place it against params_get, params_list and params_backups without opening a schema.

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?

Explicitly states the default behavior (compares the live vehicle) and the alternative mode ('with against_backup_id, compares two backups without contacting the vehicle'), which is a clear when-to-use split. It does not explicitly say when not to use it, e.g. when only looking up a single parameter's value via params_get, so it falls short of the 5 bar.

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