Skip to main content
Glama

Compare workbooks

compare_workbooks
Read-onlyIdempotent

Compare two CSV or XLSX tables by explicit key columns to surface duplicate or blank keys and changed records, including cell value previews only when requested.

Instructions

Compare two CSV/XLSX tables using explicit key columns. Duplicate or blank keys are surfaced; keys are never returned. Changed cell values are excluded unless include_values is true.

Input Schema

NameRequiredDescriptionDefault
after_pathYesLater CSV/XLSX path relative to KINGWORKBOOK_ROOT.
after_sheetNoOptional sheet name in the later XLSX file.
before_pathYesEarlier CSV/XLSX path relative to KINGWORKBOOK_ROOT.
key_columnsYesOne or more exact normalized column names from inspect_workbook.
before_sheetNoOptional sheet name in the earlier XLSX file.
include_valuesNoSet true only when the user wants changed cell value previews.
max_reported_changesNoMaximum changed-record samples to return.

Output Schema

NameRequiredDescriptionDefault
notesYes
statusYes
changesYes
added_rowsYes
after_pathYes
after_sheetYes
before_pathYes
key_columnsYes
before_sheetYes
removed_rowsYes
added_recordsYes
after_recordsYes
changed_cellsYes
before_recordsYes
changed_recordsYes
removed_recordsYes
values_includedYes
changes_truncatedYes
unchanged_recordsYes
columns_only_afterYes
columns_only_beforeYes
added_rows_truncatedYes
missing_key_rows_afterYes
removed_rows_truncatedYes
missing_key_rows_beforeYes
duplicate_key_rows_afterYes
duplicate_key_count_afterYes
duplicate_key_rows_beforeYes
duplicate_key_count_beforeYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, yet the description still adds real behavioral detail: duplicate or blank keys are surfaced, keys are never returned, and changed values are suppressed unless include_values is true. These are output-shaping traits the annotations do not cover, though it says nothing about ordering, path resolution errors, or limits beyond the schema's max_reported_changes.

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?

Three short clauses, zero filler, and the core operation is front-loaded ahead of the caveats about keys and changed values. Every sentence carries distinct information.

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?

With an output schema present, return-value explanation is unnecessary, and the description covers the important behavioral caveats (key suppression, duplicate/blank key reporting, include_values default). Minor gap: no mention of path/root prerequisites or failure modes for mismatched schemas, which for a 7-parameter tool would round it out.

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 100%, so baseline would be 3; the description earns an extra point by explaining the consequence of include_values (changed cell values excluded by default) and confirming keys are never returned. It still does not clarify how key_columns are matched or what happens when multiple key columns are supplied.

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?

The description opens with a specific verb and resource ('Compare two CSV/XLSX tables') plus the mechanism ('using explicit key columns'), so an agent can immediately tell it apart from inspect_workbook or reconcile_totals. It never names a sibling explicitly, which keeps it just below a 5.

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?

Usage is implied by 'using explicit key columns' and the schema note that keys come from inspect_workbook, suggesting inspect first, compare after. However there is no explicit when-to-use/when-not guidance or statement of which sibling to prefer for alternative tasks such as total reconciliation.

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