Tenmomo
Server Details
Cashback catalogue of 2,700+ US retailers: store search, rates, deals, tracked activation.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 7 tools
Most tools map cleanly to categories, stores, and deals, but activate_cashback and get_activation_url both return cashback activation URLs and could easily be confused. The descriptions hint that one is personalized and the other store-level, but the boundary is not obvious.
All tool names use a consistent snake_case verb_noun pattern (get/list/search/activate), making the API predictable. There are no mixed conventions or vague verbs.
Seven tools is a well-scoped size for a cashback discovery and activation server. Each tool addresses a distinct part of the user journey without unnecessary bloat.
The surface covers browsing categories, searching stores, viewing store details, fetching deals, and generating activation links. A minor gap is the lack of any post-activation verification or status tool, but the core workflow is complete.
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 click this link before shopping to earn cashback.
| Name | Required | Description | Default |
|---|---|---|---|
| store_id | Yes | Store ID |
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 does not disclose whether the operation is read-only, requires authentication, or has any side effects or expiration details. It only states the action and purpose, which is minimal for a tool with no structured safety hints.
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 with no filler. The core purpose and the critical prerequisite are front-loaded, making it highly efficient and easy to scan.
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?
With no output schema, the description implies the return value (a URL) and states the usage requirement. It does not specify the URL format or any edge cases, but for a simple one-parameter getter, it covers the essential information an agent needs to invoke it correctly.
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% for the single store_id parameter, with a basic 'Store ID' description. The tool description adds no additional meaning about the parameter, so it meets the baseline of 3 but does not elevate it.
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 (get), the resource (cashback activation URL for a store), and the purpose (must be clicked before shopping to earn cashback). It distinguishes itself from siblings like activate_cashback by specifying it returns a URL rather than performing activation.
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 context on when to use (before shopping) and why (to earn cashback), but does not explicitly mention alternatives or when not to use it. The sibling activate_cashback might be confused, but the description implies this tool is for obtaining the URL, leaving the distinction implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dealsBInspect
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 provided, the description carries the full burden of behavioral disclosure. It states deals are 'active' but does not disclose return format, pagination, sorting, rate limits, or side effects. For a read-style tool (get_deals) this is a gap; a simple note that it returns a list or that it is read-only would be expected.
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 no filler. The first sentence states the core purpose and the second adds optional filters. Information is front-loaded and every word earns its place.
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 has 3 optional parameters, no output schema, and no annotations, the description is adequate but thin. It lacks any statement about return values, result format, or behavior when no filters are applied. For an agent, this may be enough for a simple lookup, but a bit more context would improve completeness.
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 baseline is 3. The description adds slight value by explicitly saying 'filter by store ID or search by keyword', mapping to store_id and query, but does not add meaning beyond the schema for limit. Overall it meets the baseline without exceeding it.
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 tool finds active coupon codes and deals, using the verb 'find'. It also mentions optional filtering by store ID or keyword, which distinguishes it from sibling store-search tools. However, it does not explicitly name a sibling or contrast with alternatives, so slightly short of a 5.
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 usage for finding deals, optionally filtered by store_id or query. It gives context for when to use the parameters, but does not explicitly state when not to use it or mention alternatives among siblings. No exclusions or direct comparisons.
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_categoryCInspect
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 does not state that the operation is read-only, does not explain the effect of the limit parameter (and even contradicts it by claiming 'all' stores while a limit is imposed), and does not mention response format or any side effects. This is a significant gap for a simple listing tool.
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, direct sentence that front-loads the action and resource. It is concise and readable. However, it is so terse that it omits critical details, though this does not penalize conciseness itself. It earns a high score for efficiency, though not perfection.
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 absence of an output schema and annotations, the description is incomplete for an agent to call correctly. It fails to clarify pagination behavior (the limit parameter), what fields are returned, or any limitations. The claim of returning 'all' stores is misleading given the default limit of 30. The description does not cover enough context for reliable 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%, with both category_id and limit fully described in the input schema. The description adds no extra semantic value beyond the schema, so the baseline of 3 applies. It does not clarify relationships between parameters or provide usage nuances.
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 (get) and resource (cashback stores) filtered by category. It is unambiguous about the core purpose. However, it does not explicitly differentiate from siblings like search_stores or get_deals, though the specific 'by_category' phrasing implies a distinct use case.
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 offers no guidance on when to use this tool versus alternatives such as search_stores or get_deals. It lacks any contextual cues, prerequisites, or exclusions. An agent is left to infer when this tool is the right choice.
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_storesBInspect
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?
With no annotations, the description carries the full behavioral burden. It discloses the output fields and the cashback-eligible scope, but does not state that it is a read-only operation, nor address result limits, pagination, or error behavior. For an unannotated tool, this is a meaningful gap.
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, front-loaded sentence that immediately states the tool's purpose and output. No filler or redundant phrasing, making it easy to parse quickly.
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 two-parameter search tool, the description covers the core purpose and return fields, but is incomplete in guiding the agent on when to choose this over siblings and in disclosing operational behavior. The schema covers parameter details, but external context such as read-only safety and pagination is missing.
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 provides 100% description coverage for both query and limit, so the baseline is 3. The description adds no extra semantics about match behavior (e.g., partial vs exact, case sensitivity). It does reiterate the query keyword concept, but that adds little beyond the schema.
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 a specific action ('Search for cashback-eligible stores') with a clear resource and input method ('by name or keyword'). It also lists the returned fields, which further distinguishes it from sibling get_stores_by_category. However, it does not explicitly name any sibling or contrast itself, so it stops short of full 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?
No when-to-use or when-not-to-use guidance is provided. The description does not mention alternatives like get_stores_by_category for category-based searches, nor any prerequisites for cashback eligibility. The usage context is only implied by the action itself.
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.
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 across portals and discounted gift cards for stores in 30+ countries.
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 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
- AlicenseNot gradedqualityDmaintenanceQuery 13,000+ US consumer lenders with eligibility criteria, rates, CFPB complaints, and ratings. Find matching lenders by borrower profile, get full profiles, compare lenders, and check eligibility.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.