Skip to main content
Glama

Proxy Mail QA

Record a coupon’s result at checkout

record_coupon_result

After applying a coupon at checkout with your own browser tools (on staging with test payments only, never real card details: Proxy Mail QA never checks out), records whether the app accepted it, refused it (rejected) or failed with an error, with the app’s own message. Answers with every result for that coupon and the coupon_result verdict: it fails a coupon accepted after its end date, accepted for an offer already given to another version of the address (check_offers), or accepted twice when one_time is true; it warns on an error or a refusal with no reason. With run_id, a failed verdict fails the run. The coupon: code (default: the newest coupon at the address) or email_id. In Labs: works once the person who connected you switches on Marketing and offer emails in Account settings → Labs; until then it answers with an error that says so.

Input Schema

NameRequiredDescriptionDefault
codeNoThe coupon code applied. Default: the newest coupon at the address.
testNoWith run_id: the test or step this call belongs to, shown beside what it saw in the report.
resultYesWhat checkout did with the coupon.
run_idNoA run from start_run: what this call sees is added to its report.
addressYesA test address in this project. A variant works too (capitals, or a +tag such as name+o'brien@…): it acts on the plain address, and a wait on a +tag variant only finds mail sent to it.
messageNoWhat the app said, such as "Code already used".
email_idNoThe email the coupon came in.
one_timeNoThe offer is one per person, so a second acceptance fails.
discount_appliedNoWhat checkout took off, as shown, such as -£5.00.

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?

Goes well beyond the annotations: it discloses the verdict rule set (accepted after end date, offer already used at another address variant, double-use when one_time is true; warnings on error or unexplained refusal), the side effect that a failed verdict fails an associated run, and an environment prerequisite that returns an explicit error until Labs settings are enabled.

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?

Every clause carries information: preconditions, verdict logic, run coupling, Labs gating. It is, however, a single dense semicolon-chained block with the core purpose buried behind the checkout precondition, which makes it harder to scan than a front-loaded statement would be.

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?

With no output schema, the description carries the return burden and does so: it answers with every result for the coupon plus the coupon_result verdict, and enumerates which conditions produce fail versus warn. Combined with defaults, run integration and the Labs error path, an agent has everything needed to call and interpret it.

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 100%, so the baseline is 3, but the description adds real semantics: code defaults to the newest coupon at the address, email_id is the alternative identification path, and one_time is explained as the trigger for the double-acceptance verdict rather than just 'offer is one per person'.

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 concrete verb and resource: records whether checkout accepted, refused (rejected) or errored on a coupon, together with the app's message. It also distinguishes itself from siblings by name, pointing at check_offers for the 'already given to another address variant' condition and by requiring the caller to do the checkout with their own browser tools rather than as a sibling tool.

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?

Gives clear timing ('after applying a coupon at checkout'), the environment precondition ('on staging with test payments only, never real card details') and the Labs gating condition with its fallback behaviour. It stops short of an explicit when-not-to-use alternative, but for this workflow no real sibling substitutes exist.

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