Skip to main content
Glama

Whale Coupons

Server Details

Store-issued coupon codes from thousands of independent online stores, updated daily.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
whalecoupons/whale-coupons-mcp
GitHub Stars
0

TDQS

A4.7/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: find_coupons for named stores/URLs, search_stores for product/category queries, get_store for slug-based retrieval, list_categories for browsing categories, and list_largest_discounts for ranking by discount. The descriptions explicitly cross-reference each other to guide correct selection, leaving no ambiguity.

Naming Consistency5/5

All five tools use a consistent snake_case verb_noun pattern (find_coupons, get_store, list_categories, list_largest_discounts, search_stores). The verbs are appropriately varied but the naming convention is uniform and predictable.

Tool Count5/5

Five tools are well-scoped for a coupon lookup service, covering discovery by store, product, category, and discount ranking, plus detail retrieval. No tool feels redundant or missing for the stated purpose.

Completeness5/5

The read-only coupon domain is fully covered: find specific store coupons, search by product/category, list categories, rank by largest discount, and retrieve full details by slug. There are no obvious gaps for typical agent workflows, and limitations (e.g., fixed-amount discounts not rankable) are clearly stated.

Available Tools

5 tools
find_couponsFind coupon codes for a storeA
Read-onlyIdempotent
Inspect

Use this when the user wants a coupon, promo, discount or voucher code for a specific online store or brand, or shares a store's website or product page URL and asks about saving on it. Accepts a store name ("Airwheel Luggage"), a domain ("airwheel-luggage.com") or a full product URL. Returns up to 3 matching stores, each with the code, the discount, how to apply it, minimum order if any, an affiliate shop link and the Whale Coupons store page. If no store has that name the result says so (found=false); when the words describe a product, stores that sell it may be returned instead (match="product"). Never invent or guess a code. Covers thousands of independent online stores, updated daily; large general marketplaces are not covered. For a product type rather than a store (e.g. "headphones") use search_stores. Do not use for price comparison, product reviews, order tracking or buying on the user's behalf.

ParametersJSON Schema
NameRequiredDescriptionDefault
storeYesStore or brand name, website domain, or a product/store page URL, exactly as the user gave it. Examples: "Saguaro Barefoot Shoes", "saguaro.com", "https://www.saguaro.com/products/...". Do not add words like 'coupon' or 'code'.

Output Schema

ParametersJSON Schema
NameRequiredDescription
foundYes
matchNoexact/partial: store name or website matched; product: no store with that name, results are stores whose own catalog lists that product.
queryNo
resultsYes
disclosureYes
suggested_categoryNoWhen no store matched but the query looks like a product type: the closest category to use with search_stores.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds substantial context beyond that: result cap of 3 stores, the found=false and match="product" edge cases, a 'never invent a code' guarantee, daily update cadence, and the coverage gap for large general marketplaces.

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-loaded with the triggering condition, then inputs, returns, edge cases, coverage and exclusions. Despite its length, each sentence carries distinct information an agent needs to select and call the tool correctly.

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?

Output schema exists, yet the description still summarizes return contents and failure modes. Combined with full parameter and annotation coverage, an agent has everything needed to call it and interpret results.

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?

With one parameter at 100% schema description coverage, the schema already documents accepted formats and examples. The description restates the same accepted inputs (store name, domain, URL) without adding syntax or validation detail beyond the schema, so baseline 3 applies.

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 coupon codes') plus the accepted inputs (store name, domain, product URL). It distinguishes itself from sibling search_stores by scoping to coupons for a specific store rather than a product type.

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 gives when-to-use (user wants a coupon/promo/discount code or shares a store URL), names the alternative (search_stores for a product type), and lists exclusions (price comparison, reviews, order tracking, buying on the user's behalf). Nothing is left to inference.

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

get_storeGet one store's coupon detailsA
Read-onlyIdempotent
Inspect

Use this only when you already have a Whale Coupons store slug from an earlier result (the "slug" field, e.g. "airwheel-luggage") and need that store's full coupon details again. Returns the code, discount, how to apply it, minimum order if any, affiliate shop link and store page. For a store name, domain or URL use find_coupons instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesStore slug exactly as returned in a previous result, e.g. "airwheel-luggage".

Output Schema

ParametersJSON Schema
NameRequiredDescription
foundYes
storeNo
disclosureYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered; the description adds the meaningful prerequisite that the slug must come from a prior result, which prevents speculative lookups. It also enumerates returned fields, though that partly overlaps the existing output schema.

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 tight sentences, zero waste, with the routing constraint front-loaded and the fallback tool named last. Every clause earns its place.

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?

For a single-parameter lookup with an output schema and full annotation coverage, the description supplies the precondition, the alternative route and a sense of the payload, leaving nothing an agent needs to call it correctly.

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 100% and the single parameter already documents 'store slug exactly as returned in a previous result', including a format example. The description reinforces the provenance constraint but adds no syntax or format detail beyond the schema, so the baseline 3 applies.

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 ('get one store's coupon details') and explicitly scopes it against the sibling: 'For a store name, domain or URL use find_coupons instead.' An agent can distinguish it from find_coupons and search_stores without opening any schema.

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?

Gives an explicit precondition ('only when you already have a Whale Coupons store slug from an earlier result') and names the alternative tool plus the exact condition that selects it (name, domain or URL). Both when-to-use and when-not-to-use are stated.

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

list_categoriesList store categoriesA
Read-onlyIdempotent
Inspect

Use this when the user asks what kinds of stores or products Whale Coupons has codes for. Returns each category with its number of stores and its Whale Coupons page. Not needed before search_stores or list_largest_discounts, whose category parameter already lists the valid names.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
categoriesYes
total_storesNo

TDQS

A4.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds that results include a per-category store count and page link, but this overlaps with the existing output schema. No additional behavioral context (caching, ordering, freshness) is provided beyond what structured fields already convey.

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 tight sentences with zero filler; the trigger condition is front-loaded and the exclusion/alternative note follows. Every clause carries information the agent needs.

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 an output schema present and full annotation coverage, the description need not explain the return payload in detail. It supplies the trigger, the exclusion rule, and the alternative tools, which is everything an agent needs to select and invoke correctly.

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?

The tool takes zero parameters, so there is nothing to document and the baseline of 4 applies. The description correctly implies no input is required to call it.

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?

The description states a specific verb and resource (list store categories) and clarifies the triggering user intent (what kinds of stores/products Whale Coupons has codes for). It also distinguishes itself from siblings by naming search_stores and list_largest_discounts, so an agent can tell them apart without opening any schema.

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?

It gives an explicit when-to-use trigger ('when the user asks what kinds of stores or products...') and an explicit when-not-to-use ('Not needed before search_stores or list_largest_discounts'). The reasoning is supplied: those siblings' category parameter already enumerates valid names, which fully routes the agent.

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

list_largest_discountsList the largest percentage discountsA
Read-onlyIdempotent
Inspect

Use this when the user asks which stores have the biggest discounts or "best deals", optionally within a category (e.g. "biggest beauty discounts", "codes for at least 30% off"). Returns stores whose Whale Coupons code gives at least min_discount percent off, sorted from largest to smallest, with code, discount, how to apply it, affiliate shop link and store page. Fixed-amount discounts (e.g. $30 off) are not included because they can't be ranked by percentage. Do not use for a specific named store (use find_coupons).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of stores to return (1-25).
categoryNoOptional. Restrict results to one category.
min_discountNoMinimum percentage off, 0-100. Default 15. Use the number the user mentions, e.g. 30 for 'at least 30% off'.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoWhat to try next when nothing or only category results matched.
totalNo
storesYes
categoryNo
disclosureYes
matched_categoriesNoCategories inferred from product words in the query (closest-category results).

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/openWorld=false, so safety is covered. The description adds genuinely non-derivable behavior: results are sorted largest-to-smallest, fixed-amount discounts ($30 off) are deliberately excluded because they can't be ranked by percentage, and it enumerates the returned fields. It doesn't discuss pagination or empty-result behavior, so not a 5.

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?

Four sentences, front-loaded with the trigger condition, then output semantics, then the exclusion caveat. No filler or restatement of the title; every sentence carries new information.

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 an output schema present, return-value explanation is optional, and the description still summarizes the payload. Combined with annotations covering safety and a fully documented schema, an agent has everything needed to select and invoke this tool correctly.

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 the baseline is 3, but the description adds semantic framing the schema lacks: it maps natural-language user intent onto min_discount ("at least min_discount percent off") and category ("biggest beauty discounts"), clarifying that category is a restriction rather than a ranking modifier. limit is left to the schema.

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?

The description states a specific verb (list) and resource (stores with the largest percentage discounts), plus scope details: sorted descending, threshold-filtered by min_discount, code-level data returned. It is immediately distinguishable from find_coupons (named store) and search_stores.

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?

It gives explicit trigger conditions with example user phrasings ("biggest beauty discounts", "codes for at least 30% off") and an explicit exclusion routing to a named sibling: "Do not use for a specific named store (use find_coupons)." That is the when/when-not/alternative trifecta.

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

search_storesSearch stores with coupon codesA
Read-onlyIdempotent
Inspect

Use this when the user wants discount codes for a kind of product or a shopping category rather than one named store, for example "coupon for running shoes", "promo codes for skincare", "deals on coffee" or "discount codes for pet stores". Matches store names and the products each store lists on its own site first, then other stores in the categories the product words point to (e.g. headphones -> Electronics), and returns up to 25 stores with their code, discount, how to apply it, affiliate shop link and store page. Give query, category, or both. If nothing matches, the result names a category to try. Do not use for one named store (use find_coupons) or for ranking by size of discount (use list_largest_discounts).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of stores to return (1-25).
queryNoProduct type, keyword or partial store name, e.g. "running shoes", "skincare", "coffee". Optional when category is given.
categoryNoOptional. Restrict results to one category.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoWhat to try next when nothing or only category results matched.
totalNo
storesYes
categoryNo
disclosureYes
matched_categoriesNoCategories inferred from product words in the query (closest-category results).

TDQS

A4.7/5.0
Behavior5/5

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

With annotations already covering read-only, idempotent, non-destructive, and non-open-world safety traits, the description adds substantial behavioral context: matching order, up to 25 returned stores, what fields come back, and what happens when no match is found. This goes well beyond the structured annotation data.

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?

The description is front-loaded with the primary use case, then covers matching, returns, parameter guidance, fallback, and exclusions without wasted sentences. Despite its length, every sentence supports routing or invocation.

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?

Given the tool has three optional parameters, full schema coverage, annotations, an output schema, and multiple siblings, the description supplies the missing decision context: when to use it, when not to, and how results behave. Nothing critical for correct invocation appears absent.

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%, so the schema already documents limit, query, and category. The description reinforces that query, category, or both may be supplied and gives category-inference examples, but it adds little parameter syntax or constraint detail beyond the schema, matching the baseline for high schema coverage.

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?

The description states a specific verb and resource: searching stores for coupon codes by product or category rather than a named store. It explicitly distinguishes this tool from siblings find_coupons and list_largest_discounts, so an agent can route correctly without opening schemas.

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?

It gives explicit when-to-use conditions, concrete example queries, and clear when-not-to-use guidance with named alternatives. The fallback behavior when nothing matches is also stated, leaving little to inference.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updates
    • First observedfind_coupons
    • First observedget_store
    • First observedlist_categories
    • First observedlist_largest_discounts
    • First observedsearch_stores

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Finds coupon codes for any online store, returning likely-to-work codes for a given store domain or URL.
    1
    35 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables real-time multi-merchant price comparison, coupon stacking, delivery-speed trade-offs, stock volatility tracking, and optimal purchase routing for cross-platform commerce inventory arbitrage.
    7
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    DTC competitor intelligence: catalog snapshots, price history, cross-brand product comparison, and drop/restock detection for 84 Shopify-powered brands. Pay-per-call via Apify.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Lets AI agents search merchant product catalogs, obtain signed offers with agent pricing, and run checkout sessions that always settle on the merchant's own payment page. It also scores any website's agent-readiness and exposes the published rubric checks.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.