Skip to main content
Glama

Compare board versions

compare_board_versions
Read-only

Compare two saved versions of a board you can read. Defaults to the latest against the one before it; pass from and to (a number, a versionId or "latest") for any pair. Returns a summary first (counts by kind, a headline, the documents compared, the file delta), then a page of design changes with reference, value, footprint, net, position and file, each with a focus target naming where it is (view, sheet, layers, refs, nets, areaMm). Coverage lists every limit and says when the legacy engine was used instead; an incomplete comparison is never evidence of no change. Filter by channel, changeType, q or document; page with offset = page.nextOffset. Changed small text files come back as line diffs.

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": {
      "board": "<board>"
    },
    "name": "compare_board_versions"
  }
}

Input Schema

NameRequiredDescriptionDefault
qNoOnly changes whose reference, net, value or description contains this text.
toNoThe later side: a version number, a versionId or "latest". Defaults to the latest version.
fromNoThe earlier side: a version number, a versionId or "latest". Defaults to the version numbered just below `to`.
boardYesA board you can read: handle/slug or a boardrepo.com URL.
limitNoChanges per page.
offsetNoChanges to skip; use page.nextOffset.
channelNoOnly one kind of design change: components (parts, values, footprints, positions), wiring (nets and pins), routing (copper, vias, pours), board (outline, stackup), rules (net classes, design rules), visual (drawing-only differences).
documentNoOnly this document (one sheet or board) from summary.documents.
changeTypeNoall
includeTextNoInclude line diffs of changed small text files that are not design files.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation it discloses the response shape (summary first, then a page of changes), the coverage/limits reporting, the fallback to a legacy engine, and the important caveat that an incomplete comparison is never evidence of no change. It also notes that changed small text files return as line diffs, which is non-obvious behavior.

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-loaded with the core action and defaults, then filters and paging. It is dense and partly run-on, and a few sentences restate what the output schema already declares, but almost every clause carries actionable information.

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?

For a 10-parameter read-only comparison tool with an output schema, this covers defaults, filtering, pagination, response ordering and reliability caveats. An agent has everything needed to invoke it correctly on the first attempt.

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 already 90%, yet the description still adds meaning: `from`/`to` accept a version number, a versionId or "latest", and paging should advance with offset = page.nextOffset. `channel` semantics and the none enum changeType are left to the schema rather than expanded on.

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 two saved versions of a board") and scopes it to boards the caller can read. It is immediately distinguishable from siblings like list_board_versions or get_board, which enumerate or fetch rather than diff.

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?

Explains the default from/to behavior and how to select an arbitrary pair with a number, versionId or "latest", plus how to filter and page. It gives clear usage context but never names an alternative tool or says when not to use this one (e.g. for a single-version read).

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.