Skip to main content
Glama

3-way match

parserail_po_match

Compare invoices against purchase orders and receipts to identify matched, partial, or mismatched status, with each discrepancy flagged and quantified.

Instructions

Invoice vs purchase order vs receipt → matched, partial, or mismatched, with every discrepancy flagged and sized. Costs credits from the account wallet.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
invoiceYesThe invoice, structured JSON (e.g. /v1/invoice output) or raw text.
receiptNoOptional goods receipt / delivery note for a 3-way match.
tolerancePctNoPrice variance tolerance in percent (default 2).
purchaseOrderYesThe PO, structured JSON or raw text.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.5.5

TDQS

A3.5/5.0
Behavior4/5

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

The description directly discloses that invoking the tool costs credits from the account wallet, a non-obvious behavioral side effect beyond the annotations' readOnlyHint=false and idempotentHint=false. It also promises that discrepancies are both flagged and sized, giving a concrete sense of the result behavior. With annotations already covering safety, this additional context earns a solid score.

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?

Two sentences, zero filler: the first delivers the core match logic and output categories, and the second flags the wallet cost. The key resource trio is front-loaded, so an agent can immediately tell what the tool acts on.

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?

The description covers the top-level outcomes and side effects, which is necessary given there is no output schema. However, it leaves an important ambiguity: the receipt is optional in the schema, yet the description frames a three-way match as if receipt is always part of the comparison, without explaining what happens when it is omitted or how tolerancePct affects the outcome. For a tool with no output schema, these gaps matter even though the core behavior is clear.

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

Parameters3/5

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

The input schema already documents all four parameters with 100% coverage, including the optional receipt and tolerance default. The description does not add parameter-level semantics, but it does establish the conceptual roles of invoice, PO, and receipt in the match. A baseline 3 is appropriate because the schema carries the burden.

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 arrow phrasing clearly communicates that the tool compares the invoice, PO, and receipt and classifies the result as matched, partial, or mismatched, with discrepancies reported. It is distinguishable from generic siblings like parserail_match because it names a concrete three-way comparison and result categories. However, it lacks an explicit action verb like 'compare' or 'reconcile' and does not name alternatives.

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

Usage Guidelines2/5

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

The description gives no explicit guidance on when to choose this tool over siblings such as parserail_match or parserail_compare. The only usage signal is the implicit one in the title and required parameters, which isn't enough for an agent facing many similar tools. No exclusion or fallback behavior (e.g., when receipt is omitted) is stated.

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