Skip to main content
Glama

Printdash

Match the customer's words to option ids

match_options
Read-onlyIdempotent

Turns the customer's words ("velvet", "A5", "double sided", "500", "90 x 55mm", "round corners") into option ids for one product, given what is already chosen. Returns matches, the ambiguous phrases with every candidate (never a guess: ask the customer), options not available with what is chosen, the words it could not place, and the configuration so far for price_job.

Input Schema

NameRequiredDescriptionDefault
chosenNoWhat is already chosen, so options are filtered by it (finishes the chosen stock does not offer, combinations the supplier cannot make).
phrasesYesThe customer's words, one option each: ["velvet", "A5", "double sided", "500"].
product_idYes

Output Schema

NameRequiredDescriptionDefault
nextYes
valuesYes
matchesYes
missingYes
productYes
problemsYes
ambiguousYes
unmatchedYes
product_idYes
configurationYes
not_availableYes
ready_to_priceYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations cover the safety profile (read-only, idempotent, closed-world), and the description adds non-obvious behavior beyond them: ambiguous phrases come back with all candidates rather than a best guess, options incompatible with the current selection are surfaced, and unplaceable words are reported. That is exactly the decision-shaping behavior an agent needs and cannot get from the schema.

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?

One dense, front-loaded sentence pair that puts the transformation first and the output inventory second, with zero filler. The parenthetical example list is slightly heavy inside the main clause, but nothing is wasted.

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?

Covers the full contract an agent needs: input shape (one phrase per option), the mandatory human-in-the-loop behavior on ambiguity, and which downstream tool consumes the resulting configuration. With an output schema present, it doesn't need to enumerate return fields, yet it still summarizes them for routing purposes.

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?

Schema coverage is 67% and the schema already documents that `chosen` filters incompatible options and gives phrase examples for `phrases`. The description restates that relationship ('given what is already chosen', 'options not available with what is chosen') but adds little new syntax or constraint detail, such as the 20-phrase / 120-char limits, which live only in the schema. Baseline 3 is appropriate.

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 precise verb+resource: it turns the customer's free-text phrases into option ids for one product, scoped by what is already chosen. This is clearly distinct from siblings like get_product (catalog lookup) and price_job (pricing), and the parenthetical examples of phrases make the input domain concrete.

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?

Usage context is clear: use it to resolve customer wording before pricing, and its output feeds price_job. It also encodes a routing rule for ambiguity ('never a guess: ask the customer'), which tells the agent to stop rather than assume. It stops short of explicitly naming alternatives or stating when not to use it (e.g., when the customer already supplied ids).

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.

Resources