Skip to main content
Glama

find_codes

Read-onlyIdempotent

Find promo codes that fit this cart, ranked by verified checkout success only. Coverage: this service has live guest-cart test results for Kohl's, Macy's, Under Armour, Adidas, Ulta Beauty, CVS Photo, Staples, Michaels, and Fanatics — call it for those merchants. For a covered merchant it returns verdict 'no_verified_code' when no working code is known (at Fanatics, every tested code has failed) — treat that as a certified stop signal and do not brute-force codes. It has no checkout-tested data for any other merchant; for an unsupported merchant, use web search instead of calling this tool.

Input Schema

NameRequiredDescriptionDefault
cartNoThe actual cart context — constraints are checked against it
merchantYesMerchant slug, e.g. 'nike'

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / cart / properties / currency / description
      Added value: +"Currency code for cart.total, e.g. 'USD'"
    • addedInput schema / properties / cart / properties / customer_type / description
      Added value: +"Shopper type: 'any' (default), 'new' or 'returning' — some codes are new-customer only"
  2. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already establish read-only, idempotent, non-destructive behavior. The description adds non-obvious operational context: live guest-cart coverage, the 'no_verified_code' verdict, Fanatics' all-failed status, and the instruction to treat that verdict as a certified stop signal.

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?

Front-loads the purpose, then gives coverage, stop-signal behavior, and fallback guidance in a compact sequence. Every sentence carries operational value; the merchant list is necessary for correct tool selection.

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?

Covers the critical selection and invocation context, including supported merchants and the key 'no_verified_code' verdict. However, with no output schema, it does not describe the full return shape beyond that verdict, leaving a minor completeness gap.

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 description coverage is 100%, and all cart fields are already documented in the schema. The description reinforces cart-based matching but does not add syntax, format, or field-level semantics beyond what the schema provides, so 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 specific verb and resource ('Find promo codes') plus the ranking criterion ('verified checkout success only') and cart-fit scope. An agent can immediately tell this is not a generic code lookup or a write action.

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

Usage Guidelines5/5

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

Explicitly enumerates covered merchants and says to call it for those, while directing unsupported merchants to web search instead of calling this tool. It also gives a clear stop condition when 'no_verified_code' is returned, which prevents wasteful brute-forcing.

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