Skip to main content
Glama

GotCashback

Server Details

Compare cashback rates across portals and discounted gift cards for stores in 30+ countries.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Available Tools

18 tools
get_best_deals_by_brandBest deals for a brandA
Read-onlyIdempotent
Inspect

Finds where to buy a brand's products with the most savings: returns the matching brands and, for each, the stores carrying it ranked by best current cashback rate, then best gift card discount. Use it when the user names a product brand rather than a specific retailer — 'where is the best cashback for Adidas products?', 'cheapest place to buy Apple products with cashback'. When the user names a retailer ('Nike cashback' meaning the Nike store), call get_cashback_rates_by_store_name instead; for a type of product use get_best_deals_by_category. Returns up to 5 matching brands, best match first; empty when nothing matched. Rates reflect GotCashback's current data, refreshed several times a day. Always show each store's links to the user: best_cashback_rate.url (clickable link that activates the cashback) and gift_cards_url (where to buy the discounted gift cards).

ParametersJSON Schema
NameRequiredDescriptionDefault
brand_nameYesThe product brand name, e.g. 'Adidas', 'Dyson', 'LEGO'. Case-insensitive substring match; multi-word names fall back to matching individual words.
country_codeNoOptional. Lowercase ISO 3166-1 alpha-2 country code that limits results to one country, e.g. 'us' (United States), 'ca' (Canada), 'gb' (United Kingdom — use 'gb', not 'uk'), 'de' (Germany), 'au' (Australia), 'fr' (France). Pass it when the user names a country ('in Canada', 'UK cashback'); omit it to search all supported countries.

Output Schema

ParametersJSON Schema
NameRequiredDescription
matchesNoMatched brands / categories (up to 5, best match first). Empty when nothing matched.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already mark the tool as read-only, idempotent, and non-destructive. The description adds valuable behavioral detail: returns up to 5 matching brands, best match first, empty when nothing matched, rates refreshed several times a day, and specific URL fields that should always be surfaced to the user. There is no contradiction with the annotations.

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 organized and front-loaded: the core purpose comes first, followed by usage examples, sibling alternatives, return behavior, data freshness, and display requirements. Every sentence earns its place, and there is no redundant filler.

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?

The description covers matching behavior, result cap and ordering, empty-result handling, data freshness, and required link presentation. With an output schema present and annotations conveying the read-only safety profile, nothing essential is missing for an agent to call this tool 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 description coverage is 100%, and the schema already provides detailed semantics for both parameters, including case-insensitive substring matching and ISO country code rules such as 'gb' not 'uk'. The tool description itself mostly reinforces usage context rather than adding meaning beyond the schema, so the baseline score of 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?

The description opens with a precise statement of what the tool does: it finds where to buy a brand's products with the most savings, returning matching brands and stores ranked by cashback rate and gift card discount. It also explicitly contrasts itself with related tools, so an agent can distinguish it from get_cashback_rates_by_store_name and get_best_deals_by_category.

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?

The description gives concrete when-to-use guidance: use when the user names a product brand rather than a retailer, and provides example queries. It explicitly names the sibling tools to call instead for retailer or product-category intents, and explains when to pass country_code versus omit it.

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

get_best_deals_by_categoryBest deals for a categoryA
Read-onlyIdempotent
Inspect

Finds where to buy products from a shopping category with the most savings: returns the matching categories and, for each, the stores in it ranked by best current cashback rate, then best gift card discount. Use it when the user names a type of product or a category rather than a store or brand — 'where can I buy dog food with the biggest discount?', 'best cashback for electronics', 'travel booking sites with cashback'. For a specific retailer use get_cashback_rates_by_store_name; for a product brand use get_best_deals_by_brand. Returns up to 5 matching categories, best match first; empty when nothing matched. Rates reflect GotCashback's current data, refreshed several times a day. Always show each store's links to the user: best_cashback_rate.url (clickable link that activates the cashback) and gift_cards_url (where to buy the discounted gift cards).

ParametersJSON Schema
NameRequiredDescriptionDefault
country_codeNoOptional. Lowercase ISO 3166-1 alpha-2 country code that limits results to one country, e.g. 'us' (United States), 'ca' (Canada), 'gb' (United Kingdom — use 'gb', not 'uk'), 'de' (Germany), 'au' (Australia), 'fr' (France). Pass it when the user names a country ('in Canada', 'UK cashback'); omit it to search all supported countries.
category_nameYesThe shopping category or product type, e.g. 'Pet Supplies', 'dog food', 'electronics', 'travel'. Case-insensitive substring match; multi-word phrases fall back to matching individual words.

Output Schema

ParametersJSON Schema
NameRequiredDescription
matchesNoMatched brands / categories (up to 5, best match first). Empty when nothing matched.

TDQS

A4.9/5.0
Behavior5/5

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

The annotations already declare readOnlyHint, idempotentHint, and destructiveHint, and the description adds substantial behavioral context: ranking by cashback rate then gift card discount, up to 5 matching categories, empty results behavior, data freshness, and a required instruction to surface store links. No contradiction with annotations.

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 core purpose and ranking behavior, then moves through usage guidance, alternatives, output limits, data freshness, and required user-facing links. Every sentence adds value and there is no filler.

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 two-parameter schema, output schema, and read-only annotations, the description is complete: it explains matching, ordering, result limits, empty results, data freshness, and how links should be presented. An agent has everything needed to select and invoke the 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?

The input schema already covers both parameters thoroughly, with 100% description coverage. The description adds useful semantic context by giving example category values like 'dog food' and 'electronics' and by clarifying that this tool is for category-style queries rather than store or brand queries.

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: 'Finds where to buy products from a shopping category with the most savings' and explains the ranking logic. It clearly distinguishes this tool from siblings by naming get_cashback_rates_by_store_name and get_best_deals_by_brand as the alternatives.

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 explicitly says to use this tool when the user names a product type or category rather than a store or brand, with concrete example queries. It also gives explicit when-not-to-use guidance: use get_cashback_rates_by_store_name for a specific retailer and get_best_deals_by_brand for a brand.

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

get_cashback_rates_by_store_idCashback rates by store IDA
Read-onlyIdempotent
Inspect

Returns the current online and in-store cashback rates from every cashback portal for one store identified by its numeric store_id, so the user can compare every portal and see the best. Use it only when a store_id is already known from an earlier result (a store, deals, favorites or alerts response). When the user gives a store name instead, call get_cashback_rates_by_store_name directly — do not look the id up first. Returns an error when the id does not exist. Rates reflect GotCashback's current data, refreshed several times a day. Present every returned portal's rate to the user (a table with a link column, not only the best one) and always show each rate's 'url' as a clickable link — cashback is only credited when the user clicks through it.

ParametersJSON Schema
NameRequiredDescriptionDefault
store_idYesGotCashback's numeric store_id, taken from an earlier result (a store, cashback rate, gift card, deals, favorites or alerts response). If you only have a store name, use the by-name tool instead.

Output Schema

ParametersJSON Schema
NameRequiredDescription
storeNoA store (retailer) in one country, with its current cashback rates when returned by a cashback tool.

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds meaningful behavior beyond annotations: it returns an error for nonexistent ids, rates are refreshed several times a day, and every portal's rate must be presented with clickable url links because cashback only credits on click-through. No contradiction with annotations.

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 core purpose, and every subsequent sentence adds necessary operational or selection detail. Although longer than minimal descriptions, the extra length is justified by the crucial display/click-through requirement and sibling routing guidance.

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?

The tool is simple (one parameter) and has both output schema and annotations, so the description does not need to restate return structures. It covers selection context, error behavior, data freshness, and required presentation behavior, making it complete for correct agent invocation.

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 schema already fully documents store_id. The description adds practical meaning by reinforcing that the id must be numeric, must come from an earlier result, and that a store-name input should route to the by-name sibling instead.

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 ('Returns'), resource ('cashback rates from every cashback portal for one store'), and scope ('one store identified by its numeric store_id'). It also explicitly distinguishes this tool from get_cashback_rates_by_store_name, making the purpose unambiguous.

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?

The description gives clear when-to-use guidance: only when a store_id is already known from an earlier result. It also states the exclusion condition and alternative directly: when the user gives a store name, call get_cashback_rates_by_store_name and do not look the id up first.

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

get_cashback_rates_by_store_nameCashback rates by store nameA
Read-onlyIdempotent
Inspect

Finds a store by name and returns its current cashback rates from every cashback portal that lists it — online and in-store, percentage or fixed amount, with 'up to' flags — so the user can compare every portal and see the best. This is the preferred first call for any cashback question that names a store: 'best cashback for Walmart', 'highest Nike cashback', 'cashback at Expedia', 'Walmart cashback today', 'compare Walmart cashback portals', 'Best Buy in-store cashback', 'Dell cashback in Germany'. No prior lookup is needed — do not call get_stores_by_name, get_stores_by_country or get_countries first. Returns every matching store (best match first, one entry per country), each with its 'cashback_rates'; an empty list means no match — retry with a shorter name or without country_code. Use get_cashback_rates_by_store_id only when a store_id is already known, get_gift_cards_by_store_name for gift card discounts, and get_best_deals_by_brand when the user asks where to buy a brand's products rather than about a specific store. Rates reflect GotCashback's current data, refreshed several times a day. Present every returned portal's rate to the user (a table with a link column, not only the best one) and always show each rate's 'url' as a clickable link — cashback is only credited when the user clicks through it.

ParametersJSON Schema
NameRequiredDescriptionDefault
store_nameYesThe retailer or brand name as a shopper would say it, e.g. 'Walmart', 'Nike', 'Best Buy', 'Expedia', 'Home Depot'. Matched as a case-insensitive substring of the store name and its known alternate names, best match first. Pass the plain name only — no words like 'cashback', 'gift card' or a country.
country_codeNoOptional. Lowercase ISO 3166-1 alpha-2 country code that limits results to one country, e.g. 'us' (United States), 'ca' (Canada), 'gb' (United Kingdom — use 'gb', not 'uk'), 'de' (Germany), 'au' (Australia), 'fr' (France). Pass it when the user names a country ('in Canada', 'UK cashback'); omit it to search all supported countries.

Output Schema

ParametersJSON Schema
NameRequiredDescription
storesNoMatching stores (one entry per country). Empty when nothing matched.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already mark read-only/idempotent/non-destructive, so the description adds non-safety behavior: best-match ordering, one entry per country, empty-list meaning and retry guidance, data refresh cadence, and the click-through requirement for cashback credit. This materially changes how an agent should present and follow up on results.

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?

The opening sentence carries the core contract and every later paragraph addresses a distinct concern (when to call, sibling routing, result interpretation, presentation). It is long, but the example query list and presentation rules earn their place; slight trimming of redundant sibling routing would tighten it.

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?

Combined with a rich output schema and annotations, the description covers matching, scoping, empty results, retry behavior, refresh timing, and output presentation expectations. There are no obvious gaps for an agent to invoke this tool and interpret its response 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?

Input schema already has 100% description coverage for store_name and country_code, so the description only lightly reinforces matching semantics and retry advice; it adds no syntax or format details beyond 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?

Opens with a distinct verb+object ('Finds a store by name and returns its current cashback rates') and precisely delimits coverage (every portal, online/in-store, percentage/fixed, up-to flags), which separates it from store lookup, gift card, and best-deal siblings.

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 declares itself the preferred first call and gives positive examples, then lists exclusions: don't call get_stores_by_name/get_stores_by_country/get_countries first; use get_cashback_rates_by_store_id only with known store_id; use gift-card and brand-deal siblings for other intents.

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

get_countriesSupported countriesA
Read-onlyIdempotent
Inspect

Returns the countries GotCashback covers, each with the lowercase ISO 3166-1 alpha-2 'code' to pass as country_code to the other tools (the United Kingdom is 'gb'). Use it only to confirm whether a country is supported or which code to use; it is not needed before store, cashback or gift card lookups — those tools accept country_code directly and search all countries when it is omitted.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
countriesNo

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, covering the safety profile, so the bar is lower. The description adds genuine context beyond that: the exact output format, the UK exception example, and the cross-tool contract that the returned 'code' feeds into other tools' country_code parameter. It doesn't disclose minor details like sort order or list exhaustiveness, but for a 0-param reference list these are low-stakes.

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 with no waste: the first front-loads the core purpose and key format detail with an example; the second delivers usage exclusions with rationale. 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?

With 0 params, a present output schema, and safety covered by annotations, the description covers everything an agent needs to call this tool correctly: what it returns, in what format, when to use it, and why it is not a required prerequisite for sibling lookups. Nothing material is missing for a simple read-only reference tool.

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 has 0 parameters, so the baseline is 4 per the rubric. The description adds adjacent value by explaining that the return value's 'code' field is precisely what must be passed as country_code to sibling tools, effectively documenting the parameter contract of the entire tool family.

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 — 'Returns the countries GotCashback covers' — and goes further by specifying the output format (lowercase ISO 3166-1 alpha-2) with a concrete example ('gb' for the United Kingdom). It differentiates from its 17 siblings by positioning itself as a reference lookup for country_code rather than a deals/cashback/stores tool.

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 states when to use it ('only to confirm whether a country is supported or which code to use') and when not to ('not needed before store, cashback or gift card lookups'), with the reason that those tools accept country_code directly and search all countries when omitted. This is a model of when/when-not guidance, with the alternative behavior clearly described.

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

get_gift_cards_by_store_idGift card discounts by store IDA
Read-onlyIdempotent
Inspect

Returns the discounted gift cards currently on sale for one store identified by its numeric store_id, from multiple sellers, so the discounts can be compared. Use it only when a store_id is already known from an earlier result. When the user gives a store name instead, call get_gift_cards_by_store_name directly — do not look the id up first. Returns an empty list when no discounted cards are available and an error when the id does not exist. Present every returned seller's listing to the user (a table with a link column, not only the best discount) and always show each gift card's 'url' as a clickable link — that tracked link is where the user buys the card at the discounted price.

ParametersJSON Schema
NameRequiredDescriptionDefault
store_idYesGotCashback's numeric store_id, taken from an earlier result (a store, cashback rate, gift card, deals, favorites or alerts response). If you only have a store name, use the by-name tool instead.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gift_cardsNoGift card listings from all sellers. Empty when none are available right now.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already provide readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds meaningful behavioral details beyond annotations: empty list behavior when no discounted cards exist, error behavior for a nonexistent id, multiple-seller comparison purpose, and the requirement to always show the tracked url as a clickable link. These are precisely the non-obvious behaviors an agent needs to invoke and present results correctly.

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 core result, then covers usage conditions, edge cases, and output presentation in a compact set of sentences. Every sentence carries distinct information: result type, comparison purpose, when to use, when not to use, empty/error behavior, and required presentational format. No filler or redundancy weakens it.

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?

The tool is simple with one parameter, strong annotations, and a rich output schema, so the description does not need to restate return types. It covers the selection condition, the alternative tool, edge-case behavior, and user-facing presentation requirements. This is fully sufficient for correct invocation and result handling.

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 the parameter description in the schema already explains that store_id is GotCashback's numeric id from an earlier result and directs name-only cases to the by-name tool. The tool description adds little parameter meaning beyond echoing 'numeric store_id' and the known-id condition, 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?

The description clearly states the tool returns discounted gift cards for one store by numeric store_id and emphasizes comparison across multiple sellers. It distinguishes itself from the sibling get_gift_cards_by_store_name by explicitly naming the ID-based vs name-based route, so an agent can disambiguate without opening the 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?

The description gives explicit when-to-use guidance: only when a store_id is already known from an earlier result. It also explicitly directs the agent to call get_gift_cards_by_store_name when only a store name is available and tells it not to look up the id first, which prevents a costly mistake. Additional presentation instructions add further practical guidance.

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

get_gift_cards_by_store_nameGift card discounts by store nameA
Read-onlyIdempotent
Inspect

Finds a store by name and returns the discounted gift cards currently on sale for it from multiple gift card sellers — face value, price, discount percent, digital or physical — so the user can compare every seller and see the best discount. This is the preferred first call for any gift card question that names a store: 'best gift card discount for Gap', 'where can I buy discounted Instacart gift cards', 'compare Home Depot gift card discounts', 'current Target gift card deals'. No prior lookup is needed. Returns every matching store (best match first, one entry per country), each with its 'gift_cards' list and a 'gift_cards_url' page; an empty 'gift_cards' list means no discounted cards right now. Use get_gift_cards_by_store_id only when a store_id is already known, and get_cashback_rates_by_store_name when the user asks about cashback rates instead. Present every returned seller's listing to the user (a table with a link column, not only the best discount) and always show each gift card's 'url' as a clickable link — that tracked link is where the user buys the card at the discounted price. Also mention the store's 'gift_cards_url' page.

ParametersJSON Schema
NameRequiredDescriptionDefault
store_nameYesThe retailer or brand name as a shopper would say it, e.g. 'Walmart', 'Nike', 'Best Buy', 'Expedia', 'Home Depot'. Matched as a case-insensitive substring of the store name and its known alternate names, best match first. Pass the plain name only — no words like 'cashback', 'gift card' or a country.
country_codeNoOptional. Lowercase ISO 3166-1 alpha-2 country code that limits results to one country, e.g. 'us' (United States), 'ca' (Canada), 'gb' (United Kingdom — use 'gb', not 'uk'), 'de' (Germany), 'au' (Australia), 'fr' (France). Pass it when the user names a country ('in Canada', 'UK cashback'); omit it to search all supported countries.

Output Schema

ParametersJSON Schema
NameRequiredDescription
storesNoMatching stores (one entry per country). Empty when nothing matched.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already mark the tool as read-only, idempotent, and non-destructive, and the description adds meaningful behavior beyond that: multiple matching stores are returned best-match-first with one entry per country, an empty gift_cards list means no current discounts, and the returned url is a tracked purchase link. This gives the agent important runtime behavior without contradicting any annotation.

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 core purpose, then flows naturally into usage examples, output behavior, alternative tools, and user-presentation instructions. Every sentence carries actionable information with no redundant filler or restatement of the title.

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 tool with two parameters, one required, the description is complete: it explains what triggers this tool, how results are ordered and structured, what an empty list means, which sibling to use instead, and exactly how the agent should present results to the user. The presence of an output schema means the return-shape details are already covered elsewhere.

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 fully documents store_name and country_code including matching semantics, examples, and ISO format notes. The main description adds no substantial parameter-level meaning beyond reinforcing that the lookup is by store name, so the baseline score of 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?

The description states a specific verb ('Finds a store by name'), the resource ('discounted gift cards'), and the exact output fields (face value, price, discount percent, digital or physical). It explicitly differentiates from the sibling get_gift_cards_by_store_id and get_cashback_rates_by_store_name, so an agent can identify this tool immediately.

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?

The description gives explicit when-to-use guidance: 'preferred first call for any gift card question that names a store', includes concrete example queries, and states 'No prior lookup is needed.' It also names the precise alternatives: use get_gift_cards_by_store_id when a store_id is already known, and get_cashback_rates_by_store_name for cashback questions.

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

get_my_alertsMy alertsA
Read-onlyIdempotent
Inspect

Returns the signed-in user's cashback and gift card alerts (store, type, threshold percent, last notification). Use it for 'what alerts do I have?' or before changing an alert. Requires OAuth sign-in with a GotCashback account and the 'alerts' scope; anonymous callers are prompted to authorize.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already mark this as readOnly, idempotent, and non-destructive; the description adds valuable context by requiring OAuth sign-in with GotCashback and the 'alerts' scope, and warns that anonymous callers are prompted to authorize. It also discloses the returned fields, which is useful since there is no 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 sentences: the first states the function and returned data, the second gives usage contexts and auth requirements. Information is front-loaded and every sentence carries essential 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?

For a zero-parameter, read-only tool, the description covers what data comes back, when to use it, and the auth requirement. With no output schema and no params, nothing an agent needs to invoke it correctly is missing.

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 input schema has zero parameters and 100% description coverage, so there is nothing to explain. The description correctly focuses on the semantics of the resource being fetched rather than parameters.

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 the tool returns "signed-in user's cashback and gift card alerts" with specific fields (store, type, threshold percent, last notification). The verb 'Returns' and the focus on alerts clearly differentiate it from sibling tools like get_my_favorite_stores or set_store_alert.

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?

Provides explicit usage scenarios — 'what alerts do I have?' and 'before changing an alert' — which implies viewing current state prior to set/remove operations. It also notes the OAuth prerequisite for authorization. However, it does not name alternative tools directly or state when not to use it.

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

get_my_favorite_storesMy favorite storesA
Read-onlyIdempotent
Inspect

Returns the signed-in user's favorite stores (with their store_id). Use it when the user asks about 'my favorites' or 'my saved stores'; pair the store_ids with get_cashback_rates_by_store_id to report current rates for them. Requires OAuth sign-in with a GotCashback account; anonymous callers are prompted to authorize. All comparison tools work without signing in. Scope: 'favorites'.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive behavior. The description adds valuable context beyond that: it requires OAuth sign-in and specifies that anonymous callers are prompted to authorize. This is a behavioral trait not conveyed by the hints.

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?

The description is generally tight and front-loaded with purpose, then usage, then auth. The final 'Scope: "favorites"' line is somewhat redundant with the first sentence, and the auth/alternative sentences could be tightened, but overall every sentence contributes meaningful routing or selection information.

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?

With no output schema, the description correctly states what is returned (favorite stores with store_id), covers auth requirements, and explains when to use it. It could be slightly more complete by describing the exact response shape or error cases, but for a parameterless, read-only favorites list the essential context is present.

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 has zero parameters, so the baseline for this dimension is 4. The description does not need to explain parameters, and it avoids any redundant parameter talk. It does reveal that store_id is part of the return value, which indirectly supports downstream parameter usage.

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 opens with a specific verb-resource pair: 'Returns the signed-in user's favorite stores (with their store_id)', and scopes it to 'favorites'. It distinguishes this from sibling tools like get_my_alerts and get_my_profile by making the resource (favorite stores) and user scope explicit.

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?

Provides an explicit trigger condition: 'Use it when the user asks about "my favorites" or "my saved stores"'. It also contrasts against comparison tools by stating they work without signing in, giving an implicit when-not-to-use and pointing to the appropriate alternative.

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

get_my_profileMy profileA
Read-onlyIdempotent
Inspect

Returns the signed-in user's GotCashback profile (name, email, avatar). Use it when the user asks who they are signed in as or wants their account details. Requires OAuth sign-in with a GotCashback account; anonymous callers are prompted to authorize. All comparison tools work without signing in. Scope: 'profile'.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already mark the operation read-only and idempotent, and the description adds genuinely useful behavioral context: OAuth sign-in is required, anonymous callers face an authorization prompt, and the OAuth scope is 'profile'. It does not cover error responses, but for a simple zero-parameter read call this is sufficient.

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?

Thtree sentenses delivver eveery sentense earns its place: what it returns, when to use it, and what auth is needed. The description is front-loaded with the core behavior and avoids redundancy with the annotations.

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 zero-parameter, read-only tool with no output schema, the description is complete: it states the return fields, the exact use case, the auth requirement, the anonymous-caller behavior, and the scope. An agent has everything needed to select and invoke it 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?

There are no parameters, so the baseline is 4. The description adds no parameter-specific meaning because there are no parameters to document, and the input schema is already complete.

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 opens with a specific verb and resource: 'Returns the signed-in user's GotCashback profile' and lists the returned fields (name, email, avatar). This clearly distinguishes it from sibling get_my_alerts and get_my_favorite_stores, while the OAuth and scope details reinforce what the tool is for.

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?

The description explicitly states when to use the tool: when the user asks who they are signed in as or wants account details. It also gives useful context that anonymous callers are prompted to authorize and that comparison tools do not require sign-in, though it does not name specific alternative sibling tools.

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

get_portal_by_idPortal by IDA
Read-onlyIdempotent
Inspect

Returns one cashback portal by its numeric id (the 'id' from a get_portals or get_portals_by_name result) with its payout terms for that country. Use it only when the id is already known; when the user names a portal, call get_portals_by_name instead. Returns an error when the id does not exist. Each portal includes its payout terms for that country: 'sign_up_bonus' (amount and the url that grants it, null when none), 'minimum_payout' with 'minimum_payout_currency' (smallest balance paid out, null when not published, 0 means no minimum), 'payment_frequency' (how often it pays, e.g. 'On demand', 'Weekly', 'Monthly'), and 'payment_methods' (payout options, e.g. 'PayPal', 'Direct deposit', 'Check', 'Gift card'). Use these to answer questions about a portal's sign-up bonus, payout threshold, payment schedule and payment options. When mentioning a sign-up bonus, show its 'url' as a clickable link — the bonus is only credited when the user signs up through it.

ParametersJSON Schema
NameRequiredDescriptionDefault
portal_idYesGotCashback's numeric portal id, taken from the 'id' field of an earlier get_portals or get_portals_by_name result.

Output Schema

ParametersJSON Schema
NameRequiredDescription
portalNoA cashback portal in one country, with the payout terms it offers there.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint/idempotentHint/destructiveHint, so the bar is lower, but the description adds substantial behavioral context beyond them: it returns an error for non-existent ids, documents null semantics ('null when none', 'null when not published', '0 means no minimum'), and exposes the critical caveat that the sign-up bonus is only credited when the user signs up through the provided url. This is exactly the kind of non-obvious behavior an agent needs to know.

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?

The description is long but dense with value: selection rule, error behavior, field semantics, and a usage caveat each earn their place, with the core purpose front-loaded. It loses a point for minor redundancy — 'with its payout terms for that country' appears twice — but is otherwise well-structured for its richness.

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 tool with an output schema, this is complete: the description covers when to use it, how to source the id, error behavior, field-by-field semantics for the result, and the special display rule for sign-up bonus urls. Nothing an agent needs to call it correctly and use its results is left unstated.

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 baseline is 3. The schema already explains portal_id as 'GotCashback's numeric portal id, taken from the 'id' field of an earlier get_portals or get_portals_by_name result.' The description repeats this same sourcing guidance, adding no incremental meaning beyond 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 opens with a specific verb and resource: 'Returns one cashback portal by its numeric id... with its payout terms for that country.' It adds the key distinguishing constraint (lookup by id) and explicitly differentiates from the sibling get_portals_by_name, so an agent can tell them apart 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?

The description gives an explicit when and when-not: 'Use it only when the id is already known; when the user names a portal, call get_portals_by_name instead.' It also discloses the error case for non-existent ids and tells the agent how to use the returned fields to answer user questions, which is clear selection and invocation guidance.

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

get_portalsList cashback portalsA
Read-onlyIdempotent
Inspect

Returns the cashback portals GotCashback compares, optionally for one country, each with its payout terms. Use it to list the portals available in a country ('which cashback portals are there in Canada?') or to compare portals side by side — which pays fastest, has the lowest minimum payout, offers PayPal, or gives the biggest sign-up bonus. It does not return store rates: for 'which portal has the best cashback for [store]' call get_cashback_rates_by_store_name instead; for one named portal use get_portals_by_name. Each portal includes its payout terms for that country: 'sign_up_bonus' (amount and the url that grants it, null when none), 'minimum_payout' with 'minimum_payout_currency' (smallest balance paid out, null when not published, 0 means no minimum), 'payment_frequency' (how often it pays, e.g. 'On demand', 'Weekly', 'Monthly'), and 'payment_methods' (payout options, e.g. 'PayPal', 'Direct deposit', 'Check', 'Gift card'). Use these to answer questions about a portal's sign-up bonus, payout threshold, payment schedule and payment options. When mentioning a sign-up bonus, show its 'url' as a clickable link — the bonus is only credited when the user signs up through it.

ParametersJSON Schema
NameRequiredDescriptionDefault
country_codeNoOptional. Lowercase ISO 3166-1 alpha-2 country code that limits results to one country, e.g. 'us' (United States), 'ca' (Canada), 'gb' (United Kingdom — use 'gb', not 'uk'), 'de' (Germany), 'au' (Australia), 'fr' (France). Pass it when the user names a country ('in Canada', 'UK cashback'); omit it to search all supported countries.

Output Schema

ParametersJSON Schema
NameRequiredDescription
portalsNo

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already carry the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), and the description adds substantial context beyond it: country-scoped payout terms, the null vs 0 semantics of minimum_payout (null = not published, 0 = no minimum), and the attribution rule that sign_up_bonus.url must be rendered as a clickable link because the bonus only credits through it. No contradiction with annotations — 'Returns' is consistent with readOnlyHint=true.

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?

The definition is long (~200 words) but front-loaded: purpose in sentence one, usage and exclusions in sentences two and three, then field semantics and presentation rules. Every section earns its place, though there is minor redundancy between the two usage sentences ('Use it to...' and 'Use these to answer...'), which keeps it from a perfect score.

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 tool with one optional parameter, a fully documented input schema, an output schema, and safety annotations, the description covers everything else an agent needs: sibling routing, per-field semantics including edge cases, and the clickable-link presentation requirement. Nothing required to select and invoke it correctly is missing.

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%: country_code is fully documented with format, examples, passthrough guidance, and omission semantics. The description adds only marginal context (results are country-scoped, payout terms are per-country), which does not materially improve parameter understanding, 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?

The first sentence names a specific verb ('Returns') and resource ('the cashback portals GotCashback compares') with an explicit optional country scope. It also differentiates from siblings inline: 'It does not return store rates' routes to get_cashback_rates_by_store_name, and 'for one named portal use get_portals_by_name', so an agent can distinguish it without opening other definitions.

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?

The description gives concrete query triggers ('which cashback portals are there in Canada?') and comparison use cases (payout speed, minimum payout, PayPal, sign-up bonus). It states explicit exclusions with named alternatives for store-rate lookups and single-portal lookups, so when-to-use and when-not-to-use are both fully specified.

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

get_portals_by_nameSearch portals by nameA
Read-onlyIdempotent
Inspect

Searches cashback portals by name (e.g. 'Rakuten', 'TopCashback', 'Honey') and returns each match with its payout terms, one entry per country the portal operates in. Use it when the user asks about a named portal: its sign-up bonus, minimum payout, how often it pays, or which payout methods it offers. For a store's cashback rate at that portal, call get_cashback_rates_by_store_name and read the 'portal' field of each rate instead. Each portal includes its payout terms for that country: 'sign_up_bonus' (amount and the url that grants it, null when none), 'minimum_payout' with 'minimum_payout_currency' (smallest balance paid out, null when not published, 0 means no minimum), 'payment_frequency' (how often it pays, e.g. 'On demand', 'Weekly', 'Monthly'), and 'payment_methods' (payout options, e.g. 'PayPal', 'Direct deposit', 'Check', 'Gift card'). Use these to answer questions about a portal's sign-up bonus, payout threshold, payment schedule and payment options. When mentioning a sign-up bonus, show its 'url' as a clickable link — the bonus is only credited when the user signs up through it.

ParametersJSON Schema
NameRequiredDescriptionDefault
portal_nameYesThe cashback portal name as users say it, e.g. 'Rakuten', 'TopCashback', 'Honey', 'Quidco'. Case-insensitive substring match, best match first.
country_codeNoOptional. Lowercase ISO 3166-1 alpha-2 country code that limits results to one country, e.g. 'us' (United States), 'ca' (Canada), 'gb' (United Kingdom — use 'gb', not 'uk'), 'de' (Germany), 'au' (Australia), 'fr' (France). Pass it when the user names a country ('in Canada', 'UK cashback'); omit it to search all supported countries.

Output Schema

ParametersJSON Schema
NameRequiredDescription
portalsNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already mark the tool read-only, idempotent, and nondestructive. The description adds useful behavioral context beyond that: one entry per country, whether sign-up bonus exists (null), minimum_payout semantics, and the crucial fact that the bonus URL must be shown as a clickable link because the bonus is only credited through it.

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?

Front-loaded with the main action, use cases, and the key alternative in the first three sentences. It becomes repetitive later ('Use these to answer...' restates the same fields) and spends several sentences re-explaining values that an output schema would already define, so it is not maximally concise.

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 read-only annotations, complete input schema, and output schema, the description supplies the missing context an agent needs: when to call it, which sibling to call instead, per-country result behavior, and output-presentation instructions like linking the sign-up bonus URL.

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 both parameters already have rich descriptions (case-insensitive substring matching, country code formatting, 'gb' not 'uk'). The tool description reinforces use cases but does not add substantive parameter semantics beyond 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?

Opens with a specific verb and resource: 'Searches cashback portals by name... returns each match with its payout terms, one entry per country.' It also contrasts with get_cashback_rates_by_store_name, so an agent can separate portal-level terms from store-level cashback rates.

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 states when to use: 'Use it when the user asks about a named portal: its sign-up bonus, minimum payout, how often it pays, or which payout methods it offers.' It also gives the exclusion: for a store's cashback rate, call get_cashback_rates_by_store_name instead.

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

get_stores_by_countryList stores in a countryA
Read-onlyIdempotent
Inspect

Lists every store that currently has cashback offers in one country — identity, store page url and whether discounted gift cards exist ('has_gift_cards', 'gift_cards_url'), but no rates. The list can run to hundreds of stores. Use it when the user wants to browse or count what is available in a country ('which stores offer cashback in Canada?', 'what stores have gift card deals in the UK?'). Do not use it to find a particular store or its rates: get_cashback_rates_by_store_name and get_gift_cards_by_store_name accept a store name plus an optional country_code directly. Use get_countries to see the supported country codes. When presenting stores, include each store's 'url' as a clickable link (and 'gift_cards_url' when present).

ParametersJSON Schema
NameRequiredDescriptionDefault
country_codeYesLowercase ISO 3166-1 alpha-2 country code, e.g. 'us' (United States), 'ca' (Canada), 'gb' (United Kingdom — use 'gb', not 'uk'), 'de' (Germany), 'au' (Australia). Call get_countries to list every supported code.

Output Schema

ParametersJSON Schema
NameRequiredDescription
storesNoMatching stores (one entry per country). Empty when nothing matched.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so no contradiction exists. The description adds useful behavioral context beyond annotations: the result can include hundreds of stores, only current cashback-offer stores are included, and gift-card presence is indicated via specific fields with no rates returned. This goes beyond what annotations alone convey.

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?

The description is front-loaded with the core purpose and then provides usage guidance, exclusions, and presentation instructions. It is longer than minimal but each sentence carries information; the final formatting instruction is useful even if slightly beyond selection/invocation 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?

Given the rich input schema, an output schema, and annotations, the description covers scope, limitations, alternatives, country-code handling, and output presentation. There are no significant gaps that would prevent an agent from invoking this tool 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?

The input schema already fully documents country_code with format, examples, and a pointer to get_countries, so high schema coverage gives a baseline of 3. The description reinforces that a single country is used but does not add substantially new parameter-level meaning beyond 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 uses a specific verb ('Lists') and resource ('every store that currently has cashback offers in one country'), and immediately clarifies what is excluded ('but no rates'). It also distinguishes itself from rate- and gift-card-focused siblings by naming them as alternatives. An agent can tell exactly what this tool does and does not return.

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 scenarios with example queries and explicitly warns against using it to find a particular store or its rates, naming the correct sibling tools instead. It also routes the agent to get_countries for supported codes. This is complete usage guidance with both positive and negative selection criteria.

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

get_stores_by_nameSearch stores by nameA
Read-onlyIdempotent
Inspect

Searches stores by name and returns the matching stores' identity only — store_id, name, country_code, website domain and GotCashback store page url — without cashback rates or gift cards. Use it when the user wants to know whether GotCashback covers a store, in which countries a store is listed, or when you need a store_id for the account tools (toggle_favorite_store, set_store_alert). For any question about cashback rates or gift card discounts call get_cashback_rates_by_store_name or get_gift_cards_by_store_name directly instead — they search by name themselves, so this tool is not a required first step. Returns matches best first; empty when nothing matched. When presenting stores, include each store's 'url' as a clickable link (and 'gift_cards_url' when present).

ParametersJSON Schema
NameRequiredDescriptionDefault
store_nameYesThe retailer or brand name as a shopper would say it, e.g. 'Walmart', 'Nike', 'Best Buy', 'Expedia', 'Home Depot'. Matched as a case-insensitive substring of the store name and its known alternate names, best match first. Pass the plain name only — no words like 'cashback', 'gift card' or a country.
country_codeNoOptional. Lowercase ISO 3166-1 alpha-2 country code that limits results to one country, e.g. 'us' (United States), 'ca' (Canada), 'gb' (United Kingdom — use 'gb', not 'uk'), 'de' (Germany), 'au' (Australia), 'fr' (France). Pass it when the user names a country ('in Canada', 'UK cashback'); omit it to search all supported countries.

Output Schema

ParametersJSON Schema
NameRequiredDescription
storesNoMatching stores (one entry per country). Empty when nothing matched.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already establish readOnly, idempotent, and non-destructive behavior, so the description goes beyond that by disclosing that results are identity-only, sorted best match first, and empty when nothing matches. It also adds presentation guidance for the returned URLs. No contradiction with annotations exists.

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?

Although long, the description is dense and well-ordered: scope, trigger conditions, exclusions, ordering, empty behavior, and presentation guidance each get exactly one sentence. Every sentence earns its place and the core output boundary is front-loaded.

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?

With an output schema present, complete parameter descriptions, and safety annotations, the description still covers use cases, alternatives, result ordering, empty behavior, and presentation instructions, so an agent has enough to select and invoke it correctly. The only minor wrinkle is mentioning 'gift_cards_url' after saying gift cards are excluded, which is slightly ambiguous even though it likely refers to a store page URL.

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 both parameters thoroughly at 100% coverage, including examples, lowercase country-code format, and the 'gb, not uk' guidance. The top-level description does not need to add parameter mechanics, so the baseline of 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?

The description names a concrete verb and resource ('Searches stores by name') and then sharply bounds the result set to identity fields only, explicitly excluding cashback rates and gift cards. This makes it immediately distinguishable from siblings such as get_cashback_rates_by_store_name and get_gift_cards_by_store_name.

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 lists concrete trigger conditions: checking store coverage, seeing which countries a store is listed in, or obtaining a store_id for account tools. It also tells the agent when not to use it by routing cashback and gift-card questions directly to the sibling tools and clarifies this tool is not a required first step.

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

remove_store_alertRemove a store alertA
DestructiveIdempotent
Inspect

Removes the signed-in user's alert for a store and alert type ('cashback' or 'gift_card'). Use it for 'stop alerting me about Nike cashback'. Use get_my_alerts to find the store_id and type of an existing alert. Requires OAuth sign-in with a GotCashback account and the 'alerts' scope; anonymous callers are prompted to authorize.

ParametersJSON Schema
NameRequiredDescriptionDefault
store_idYesGotCashback's numeric store_id, taken from an earlier result (a store, cashback rate, gift card, deals, favorites or alerts response). If you only have a store name, use the by-name tool instead.
alert_typeYesAlert type: 'cashback' (fires on the store's best cashback rate) or 'gift_card' (fires on the store's best gift card discount)

TDQS

A4.4/5.0
Behavior4/5

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

The description reveals important behavioral context beyond the annotations: the operation is scoped to the signed-in user's alert, requires OAuth with the 'alerts' scope, and prompts anonymous callers to authorize. The annotations already cover destructiveness and idempotence, so the description adds complementary value without contradiction.

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?

Every sentence earns its place: the core action, a concrete example, a lookup alternative, and the auth requirement. It is front-loaded with the primary purpose and contains no filler.

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?

For a two-parameter removal operation with idempotent and destructive annotations, the description covers the action, alert types, parameter sourcing, alternatives, and authentication. A minor gap is that it does not describe the response behavior, but this is acceptable without an output schema and with idempotence already annotated.

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 both parameters thoroughly. The description reinforces that store_id comes from an earlier result and gives the alert_type meaning, but does not need to add much beyond 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?

The description states a precise verb ('Removes') and a specific resource ('the signed-in user's alert for a store and alert type'), and clarifies the two possible alert types. This clearly distinguishes it from sibling tools like set_store_alert and get_my_alerts.

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 natural-language use case ('stop alerting me about Nike cashback'), tells the agent to use get_my_alerts to find the required store_id and type, and in the schema notes the by-name alternative when only a store name is available. This is direct when-to-use and alternative guidance.

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

set_store_alertSet a store alertA
Idempotent
Inspect

Creates or updates an alert that emails the signed-in user when a store's cashback rate or gift card discount reaches the threshold percent or higher. Use it for 'alert me when Nike cashback hits 10%' or 'tell me when Target gift cards are 15% off'. Re-saving an existing alert updates its threshold and re-arms it. At most 10 active alerts per user. Needs the store_id: take it from an earlier result, or find it with get_stores_by_name (optionally with country_code). Requires OAuth sign-in with a GotCashback account and the 'alerts' scope; anonymous callers are prompted to authorize.

ParametersJSON Schema
NameRequiredDescriptionDefault
store_idYesGotCashback's numeric store_id, taken from an earlier result (a store, cashback rate, gift card, deals, favorites or alerts response). If you only have a store name, use the by-name tool instead.
alert_typeYesAlert type: 'cashback' (fires on the store's best cashback rate) or 'gift_card' (fires on the store's best gift card discount)
threshold_percentYesFire when the rate/discount reaches this percent or higher (greater than 0, at most 100), e.g. 10 for 10%

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already provide readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description adds meaningful behavioral detail beyond those annotations: re-saving updates and re-arms the alert, the alert emails the user, there is a 10-alert cap, and anonymous callers are prompted to authorize. No contradiction with the annotations.

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 four dense sentences with no filler. It front-loads the core behavior, then efficiently covers update semantics, quota, store_id sourcing, and auth requirements. Every sentence 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 mutating tool with no output schema, the description is self-contained: it explains create-vs-update behavior, trigger conditions, the alert limit, authorization, and how to obtain store_id. An agent has enough information to select and invoke the tool correctly without additional context.

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 the schema already explains store_id provenance, alert_type values, and threshold_percent semantics. The main description mostly restates or illustrates these meanings with examples rather than adding new parameter-level information, so the 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?

The description states a specific verb and resource: 'Creates or updates an alert that emails the signed-in user when a store's cashback rate or gift card discount reaches the threshold percent or higher.' It is clearly distinct from read-only siblings like get_my_alerts and remove_store_alert, and includes concrete use-case examples.

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?

The description gives explicit when-to-use examples, explains the store_id sourcing path including the get_stores_by_name fallback, and states the OAuth scope requirement. It also discloses the 10-active-alert limit, giving an agent enough context to decide whether this tool is appropriate.

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

toggle_favorite_storeAdd or remove a favorite storeA
Idempotent
Inspect

Adds a store to, or removes it from, the signed-in user's favorite stores. Use it for 'add Best Buy to my favorites' or 'remove Nike from my favorites'. Needs the store_id: take it from an earlier result, or find it with get_stores_by_name (optionally with country_code). Requires OAuth sign-in with a GotCashback account; anonymous callers are prompted to authorize. All comparison tools work without signing in. Scope: 'favorites'.

ParametersJSON Schema
NameRequiredDescriptionDefault
favoriteYestrue to add the store to favorites, false to remove it
store_idYesGotCashback's numeric store_id, taken from an earlier result (a store, cashback rate, gift card, deals, favorites or alerts response). If you only have a store name, use the by-name tool instead.

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations, the description discloses that this mutates user-specific state, requires OAuth sign-in, prompts anonymous callers to authorize, and scopes the operation to 'favorites'. This meaningfully supplements the idempotentHint and destructiveHint annotations without contradicting them.

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?

The description is moderately long but every sentence carries useful information: purpose, examples, parameter sourcing, auth requirements, and scope. It is front-loaded with the core semantics and avoids fluff, though a couple of phrases could be tightened.

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 simple two-parameter tool with no output schema, the description covers purpose, parameter provenance, authentication, scope, and alternatives. An agent has everything needed to select and invoke the tool correctly in common scenarios.

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 input schema already documents both parameters with 100% coverage, so the baseline is 3. The description adds value by explaining where store_id can come from, suggesting get_stores_by_name as a lookup path, and mentioning the optional country_code for that lookup.

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 precise operation—adding or removing a store from the signed-in user's favorite stores—with concrete example utterances for both directions. It clearly differentiates this mutation tool from read-only siblings like get_my_favorite_stores and from store-lookup tools.

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?

The description explicitly tells the agent when to use the tool via natural language examples, and it routes store_id lookup to get_stores_by_name when only a store name is available. It also notes that comparison tools work without signing in, giving helpful context about when this tool is not needed.

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. Dates show when Glama detected each change.

  1. 18 tool updates
    • First observedget_best_deals_by_brand
    • First observedget_best_deals_by_category
    • First observedget_cashback_rates_by_store_id
    • First observedget_cashback_rates_by_store_name
    • First observedget_countries
    • First observedget_gift_cards_by_store_id
    • First observedget_gift_cards_by_store_name
    • First observedget_my_alerts
    • First observedget_my_favorite_stores
    • First observedget_my_profile
    • First observedget_portal_by_id
    • First observedget_portals
    • First observedget_portals_by_name
    • First observedget_stores_by_country
    • First observedget_stores_by_name
    • First observedremove_store_alert
    • First observedset_store_alert
    • First observedtoggle_favorite_store

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.6/5.0
Disambiguation5/5

Each tool targets a distinct resource or query dimension: store name vs. store ID, brand vs. category vs. store, portal list vs. portal search, and account actions. Descriptions include explicit routing rules for ambiguous cases like a brand that is also a store name.

Naming Consistency5/5

All tools use lowercase snake_case with a consistent verb-first pattern: get_ for reads, set_/remove_/toggle_ for mutations. The singular/plural variation in get_portal_by_id vs. get_portals_by_name is logical and follows result cardinality.

Tool Count4/5

18 tools is slightly above the typical well-scoped 3-15 range, but each tool covers a distinct access path or lifecycle action. The by-name/by-id variants could be consolidated, but the breadth of the cashback, gift card, portal, and account domains justifies the count.

Completeness5/5

The tool surface covers the full read workflow for countries, stores, rates, gift cards, portals, and deals, plus account lifecycle for favorites and alerts. Store IDs from lookup tools feed directly into ID-based lookups and account mutations, so there are no obvious dead ends.

Resources