Tenmomo
Server Details
Cashback catalogue of 2,700+ US retailers: store search, rates, deals, tracked activation.
- Status
- Healthy
- Uptime
- 99.7% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 7 tools
Most tools target distinct resources (categories, stores, deals, details), but activate_cashback and get_activation_url both return a URL to open before shopping and could be confused. Additionally, get_deals and get_store_details overlap on coupons, though scoped differently.
All tool names follow a consistent snake_case verb_noun pattern (e.g., activate_cashback, get_deals, list_categories, search_stores). No mixing of conventions or vague verbs.
Seven tools is well-scoped for a cashback shopping server: enough to cover discovery and activation without redundancy. Each tool has a clear place in the workflow.
The surface covers browsing categories, searching stores, viewing details and deals, and activating cashback. Minor gaps exist, such as no tool to check cashback balance or history, but core shopping and earning workflows are supported.
Available Tools
7 toolsactivate_cashbackAInspect
Generate a personalized cashback activation link for a user. Requires the user's Tenmomo API key (sk-tm-...). The returned URL must be opened in a browser to set tracking cookies before shopping.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | User's Tenmomo API key (sk-tm-...) | |
| store_id | Yes | Store ID to activate cashback for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It usefully discloses the cookie-setting browser requirement and the API-key prerequisite, but it does not mention side effects, link expiration, failure modes, or any reversibility concerns. This is meaningful but incomplete context for a tool that creates a personalized activation artifact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with the core purpose front-loaded and no filler. Both sentences contribute necessary information: what the tool generates and the critical follow-up step an agent must communicate to the user.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter generator, the description covers the required credential, the nature of the output URL, and the required post-step. It is slightly incomplete because it never mentions the need to supply a store_id and gives no hint of link validity or failure behavior, and there is no output schema to supply that missing context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 api_key and store_id thoroughly. The description adds the API key format and emphasizes user-level personalization, but it does not add any new semantics for store_id beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Generate') and the deliverable ('personalized cashback activation link') and notes it is for a user. However, it does not distinguish this tool from the sibling get_activation_url, so an agent may have to inspect both to know which to choose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides operational context: the user's API key is required and the returned URL must be opened in a browser to set tracking cookies. It does not explicitly say when to use this tool over siblings or when not to use it, leaving some selection ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_activation_urlAInspect
Get the cashback activation URL for a store. Users must open this link before shopping to earn cashback (Tenmomo may ask them to sign in first).
| Name | Required | Description | Default |
|---|---|---|---|
| store_id | Yes | Store ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose that Tenmomo may ask users to sign in first, which is a useful behavioral trait. It does not, however, clarify whether the tool itself requires authentication, whether the URL is user-specific or expires, or other operational details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, followed by essential usage context in parentheses. No wasted words and the structure is easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter getter with a fully described schema and no output schema, the description covers the purpose and key usage requirement. It lacks minor details like URL validity or any error behavior, but is largely complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter store_id is fully documented in the schema. The description adds no meaning beyond what the schema already provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: get the cashback activation URL for a store. It distinguishes from the sibling activate_cashback by focusing on URL retrieval rather than performing activation, but it does not explicitly name or differentiate against alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear contextual usage: users must open the link before shopping to earn cashback, implying when to use it. However, it offers no explicit comparison with siblings like activate_cashback or get_store_details, nor any when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dealsAInspect
Find active coupon codes and deals. Optionally filter by store ID or search by keyword.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20, max 50) | |
| query | No | Search keyword for deals | |
| store_id | No | Filter deals for a specific store |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It signals a read-only search over active deals and names two filtering dimensions, which is helpful, but it does not mention result shape, pagination, sort order, or whether expired deals are excluded beyond the word 'active.'
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single concise sentence places the core purpose first and appends the optional filters. Every word earns its place; no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only search with 100% documented parameters, the description is adequate for invocation. However, there is no output schema and the description does not describe what a result contains or how results are ordered/paginated, so an agent must infer the response shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all three parameters. The description adds only a light mapping of store_id and query to filter/search behavior, which is useful but not above the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: find active coupon codes and deals. It is clearly distinct from sibling tools about stores and categories, but it never names an alternative or states what it is not, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the main use case: retrieving active deals, optionally filtered by store_id or keyword. It gives no explicit when-to-use or when-not-to-use guidance relative to search_stores, get_store_details, or the cashback tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_store_detailsAInspect
Get full details for a specific store including all cashback tiers, active coupons, and categories.
| Name | Required | Description | Default |
|---|---|---|---|
| store_id | Yes | Store ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It implies a read-only operation via 'Get' and lists returned content, but does not explicitly state that it has no side effects, nor does it mention error behavior or authentication requirements. For a simple get, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It immediately states the action and key content, making it easy for an agent to parse quickly. Every word contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description does a good job of hinting at the response contents (cashback tiers, coupons, categories). However, 'full details' is somewhat vague and could be more explicit about what else is included. Still, it is sufficiently complete for a simple single-store retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents store_id as 'Store ID' (100% coverage). The description adds minor context by tying the parameter to 'a specific store', but it does not explain format or any special semantics beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Get') and resource ('full details for a specific store'), and enumerates the content (cashback tiers, active coupons, categories), which distinguishes it from sibling tools like get_deals or search_stores. An agent can immediately understand what this tool does and how it differs from its neighbors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context—it is for retrieving comprehensive store information—but does not explicitly mention when not to use it or name alternative tools. It implies usage ('when you need full store details'), which is sufficient given the sibling list, but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stores_by_categoryBInspect
Get all cashback stores in a specific category.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 30, max 100) | |
| category_id | Yes | Category ID (use list_categories to find IDs) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It identifies the operation as a read ('Get') but says 'all' while the limit parameter defaults to 30 and no pagination behavior is described, making the 'all' claim potentially misleading. No return format or filtering details are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is front-loaded and contains no filler. It states the action, resource, and scope efficiently, leaving no structural waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter lookup this is reasonably complete, especially with schema descriptions covering the parameters. However, there is no output schema to clarify the return shape, no mention of pagination or default limits, and no annotation-level context to compensate for the missing behavioral details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters having descriptions; category_id usefully references list_categories. The tool description itself adds no parameter meaning beyond the schema. The limit property description is somewhat confusing because it states 'max 100' while the schema maximum is 9007199254740991.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), names the resource ('cashback stores'), and clearly identifies the scope ('in a specific category'). It is distinguishable from the sibling tools like list_categories and search_stores, though it does not explicitly call out those differences.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The category-scoped phrasing implies when this tool should be used, and the category_id parameter description points to list_categories for finding IDs. However, there is no explicit when-not-to-use guidance or contrast with alternatives like search_stores or get_deals.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesBInspect
List all shopping categories with store counts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the basic function and does not mention whether the list is ordered, paginated, includes only active categories, or any rate limits. It also doesn't explicitly state it's a read-only operation, though that is implied. This is insufficient for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the action and resource. Every word contributes to the meaning, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no params, no output schema), the description provides the core purpose. However, it omits any details about the response format, ordering, or potential limitations, leaving an agent uncertain about what to expect. For a simple tool this may be acceptable, but it could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and the schema is empty with 100% coverage (trivially). The description adds no parameter information, but there is nothing to add. Baseline for 0 params is 4, and the description doesn't need to compensate for any missing parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and the resource ('shopping categories'), and specifies it includes store counts. It is distinct from sibling tools like get_stores_by_category (which returns stores per category) and search_stores, though it doesn't explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus siblings. The description only states what it does, leaving the agent to infer when a full category list is needed. There are no exclusions, conditions, or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_storesAInspect
Search for cashback-eligible stores by name or keyword. Returns store name, cashback rate, and category.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20, max 50) | |
| query | Yes | Store name or keyword to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the search behavior and returned fields, but omits any side-effect/safety statement, result limits or pagination behavior, or note that it is read-only. Since search implies non-mutating, this is a moderate gap rather than a contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no redundant phrases, and the action is front-loaded. Every clause adds information: scope, search key, and returned fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search with one required parameter, the description explains the function and return content, though it omits guidance about limit behavior and sibling differentiation. With no output schema, the return-field list is valuable, but the lack of any usage or behavioral context keeps it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes both parameters with 100% coverage, so the baseline is 3. The description adds no extra parameter meaning beyond 'name or keyword', which mirrors the schema. The limit parameter is not mentioned in the description, but the schema documents it adequately despite an internal inconsistency (max 50 in text vs large schema maximum).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the specific verb 'search' with resource 'cashback-eligible stores' and the input type 'name or keyword'. The return fields (name, cashback rate, category) further clarify the function, distinguishing it from sibling tools like get_stores_by_category or get_store_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by name or keyword' implies the tool is for text-based search, but there is no explicit guidance about when to prefer it over siblings like get_stores_by_category. No exclusions or alternative-routing instructions are given, leaving the agent to infer the use case.
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.
3 tool updates
- Changed
get_deals3 fields changed- added
Input schema / properties / limit / maximumAdded value: +9007199254740991 - added
Input schema / properties / limit / minimumAdded value: +1 - changed
Input schema / properties / limit / typePrevious value: -"number"New value: +"integer"
- Changed
get_stores_by_category3 fields changed- added
Input schema / properties / limit / maximumAdded value: +9007199254740991 - added
Input schema / properties / limit / minimumAdded value: +1 - changed
Input schema / properties / limit / typePrevious value: -"number"New value: +"integer"
- Changed
search_stores3 fields changed- added
Input schema / properties / limit / maximumAdded value: +9007199254740991 - added
Input schema / properties / limit / minimumAdded value: +1 - changed
Input schema / properties / limit / typePrevious value: -"number"New value: +"integer"
7 tool updates
- First observed
activate_cashback - First observed
get_activation_url - First observed
get_deals - First observed
get_store_details - First observed
get_stores_by_category - First observed
list_categories - First observed
search_stores
Related MCP Connectors
Compare cashback rates from 100+ portals in 40+ countries and find discounted gift cards.
Search live credit card merchant offers across Amex, Chase, Citi, PayPal, Rakuten, Capital One.
Search 367k+ verified businesses; earn cashback when an agent routes a real purchase.
Verified deals, store policies & a trust score for thousands of online retailers. No auth.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables searching and comparing live credit card merchant offers (cash back, points, statement credits) across Amex, Chase, Citi, PayPal, Rakuten, and Capital One from any AI agent.-
- AlicenseNot gradedqualityNot gradedmaintenanceGo shopping, look up store details, search, compare prices and track purchases, and also serve Universal Commerce Protocol (UCP)MIT
- AlicenseNot gradedqualityDmaintenanceAffiliate product search for AI agents. Indexes structured merchant feeds — real prices, live stock, affiliate links built in. Works with any MCP client.MIT
- AlicenseAqualityAmaintenanceReal Amazon (US, UK, DE, CA, AU) & Walmart shopping data for AI assistants: ranked product shortlists, current prices, live stock, real ratings, and price/BSR history from a 17M+ product warehouse. Free hosted endpoint, no signup — 30 queries a day.31MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.