Skip to main content
Glama

Server Details

Curated, human-reviewed deal feed for AI agents — live deal search + price watches. No auth.

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
Uptime
99.4% over 38 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.2/5.0

Scored across 7 tools

Disambiguation4/5

The tools are mostly distinct: register_watch/check_watch/cancel_watch form a clear lifecycle, get_deal/latest_deals/search_deals cover different retrieval modes, and report_outcome is unique feedback. The only mild overlap is between get_deal and latest_deals/search_deals, but their descriptions make the distinction clear.

Naming Consistency4/5

Tool names follow a consistent verb_noun pattern: cancel_watch, check_watch, get_deal, latest_deals, register_watch, report_outcome, search_deals. The only minor deviation is latest_deals, which uses an adjective rather than a verb, but it is still readable and predictable.

Tool Count5/5

Seven tools is well-scoped for a deal-monitoring server: three watch lifecycle operations, three deal retrieval modes, and one outcome feedback tool. Each tool earns its place and the count is within the ideal range.

Completeness4/5

The surface covers the core domain well: watch registration, status checking, cancellation, deal retrieval (by id, latest, search), and outcome reporting. A minor gap is the lack of an explicit update_watch or pause_watch operation, but the described workflow (cancel and re-register) covers that need.

Available Tools

7 tools
cancel_watchCancel a watchA
DestructiveIdempotent
Inspect

Stop deliveries for a watch: the feed URL dies immediately and the webhook deactivates. Idempotent. Sourcing for an already-promoted product continues (shared watchlist state) — cancellation affects this watch's delivery only.

ParametersJSON Schema
NameRequiredDescriptionDefault
watch_idYesThe watch_id returned by register_watch.

TDQS

A4/5.0
Behavior4/5

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

Adds context beyond annotations: idempotent, immediate feed/webhook deactivation, and that sourcing continues for promoted products. Consistent with destructiveHint and idempotentHint.

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, front-loaded with main purpose, no redundant 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?

Explains key effects and idempotency. For a simple single-parameter tool with no output schema, the description is sufficiently complete.

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% with a clear description for watch_id. The tool description does not add further parameter detail beyond the schema, but none is needed.

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 'Stop deliveries for a watch' and specifies immediate effects (feed URL dies, webhook deactivates), distinguishing it from sibling tools like register_watch and check_watch.

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

Usage Guidelines3/5

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

Implied usage (cancel a watch) but no explicit when-to-use or when-not-to-use compared to alternatives. Does mention idempotent and scope, but lacks direct comparison with siblings.

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

check_watchCheck a watchA
Read-only
Inspect

Status of a watch by watch_id: interpretation progress, channel states, live matches, next_check_recommended_at, and monitoring contract. Pending/review reads are valid states, not fallback triggers. For a retired-key policy, re-register through POST /v1/watches with explicit conditions and supported specs. Confirm the replacement is eligible and monitoring is configured before cancelling the old watch. Requirements needing evidence, correction or a waiver need operator review; re-registering unchanged intent does not resolve them. product_url is the human purchase link. Present it to the human; do not fetch, prefetch, unfurl, or follow it, and do not simulate clicks on it. Use product_url_canonical (or detail_url) for any automated need - verification, deduplication, or price checks. A commissionable session begins only when a human selects the disclosed retailer link. Convey the disclosure string alongside the link. Cancelled watches return WATCH_CANCELLED; unknown ids return NOT_FOUND.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoOpaque live_matches.cursor continuation; an incomplete scan is not a no-match result.
watch_idYesThe watch_id returned by register_watch.

TDQS

A4.8/5.0
Behavior5/5

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

readOnlyHint=true and openWorldHint=false already cover safety, and the description adds real behavioral context: live_matches cursor continuation semantics, incomplete scan no-match warning, retired-key re-registration policy, the human-link vs canonical-link distinction, commission/session disclosure, and the WATCH_CANCELLED return. 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose is front-loaded in the first sentence)Skip and each subsequent sentence covers a distinct operational concern. Dense but not padded; no redundant restating of schema fields.

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 read-only status tool with no output schema, this description covers the main use case, the fields returned, state semantics (pending/review are valid, not errors), error behavior (WATCH_CANCELLED), link-handling policy, and the boundary with register_watch/cancel_watch. Nothing an agent needs to decide whether and how to call it 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?

Schema coverage is 100% and the schema already documents both parameters well. The description adds value by clarifying cursor semantics (incomplete scan does not mean no match) and by anchoring watch_id to a register_watch response. That enrichment pushes it above the baseline of 3.

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 clear verb-plus-object statement ('Status of a watch by watch_id') and enumerates the returned fields (live_matches, channel states, monitoring contract). The name alone is ambiguous (could mean checking existence or health), but the description immediately pins down the exact read action and distinguishes it from sibling tools like cancel_watch or register_watch.

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

Usage Guidelines5/5

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

Gives explicit routing guidance: pending/reviewing states are not fallback triggers; retired-key policies require re-registration via POST /v1/watches; unchanged intent does not fix failed requirements; product_url is for humans while product_url_canonical is for automated consumers. This tells the agent when not to use this tool and when to use siblings/alternatives.

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

get_dealGet one dealA
Read-only
Inspect

Fetch one deal by id. Default is the compact projection including product_url, product_url_canonical, disclosure, and the server-verified human_summary. product_url is the human purchase link. Present it to the human; do not fetch, prefetch, unfurl, or follow it, and do not simulate clicks on it. Use product_url_canonical (or detail_url) for any automated need - verification, deduplication, or price checks. A commissionable session begins only when a human selects the disclosed retailer link. Convey the disclosure string alongside the link. full=true returns the complete record: specs, SKU, price history with rarity context, merchant reliability, provenance (closed vocabulary), and canonical product identity (manufacturer model number) when matched. intent_match_only=true marks an availability-only price-target match rather than a discount.

ParametersJSON Schema
NameRequiredDescriptionDefault
fullNotrue = full ~30-field record with provenance + price history. Default false (compact).
deal_idYesDeal id from search_deals / latest_deals results.

TDQS

A4.5/5.0
Behavior5/5

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

The description provides extensive behavioral context beyond the readOnlyHint annotation: it warns not to fetch or click product_url, explains the commissionable session trigger, and details what full=true returns. It also clarifies intent_match_only semantics. This adds significant value beyond the annotation's simple read-only declaration.

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 somewhat long but every sentence delivers necessary information about URL handling, projections, and special flags. It is front-loaded with the core purpose and then layers details logically. While dense, it is not verbose or redundant, earning a solid score just below maximum.

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?

Given the absence of an output schema, the description effectively explains the return structure for both compact and full modes, including the key fields. It covers the crucial safety and behavioral aspects of product_url handling. The only minor gap is the undocumented intent_match_only parameter, which could leave an agent uncertain about its validity, but the description is otherwise comprehensive.

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% for the listed parameters (full and deal_id). The description adds meaningful semantics by explaining the default projection, what full=true returns (specs, SKU, price history, etc.), and introduces intent_match_only (which appears only in the description, not the schema). This adds value, though the intent_match_only mention could cause confusion due to its absence from 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 clearly states 'Fetch one deal by id' with a specific verb and resource, distinguishing it from sibling tools like search_deals or latest_deals. It also specifies the scope (one deal) and provides detail on default vs full projections, leaving no ambiguity about what the tool does.

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 gives clear usage guidance on when to use full=true versus the default compact projection, and explicitly states to use product_url_canonical for automated needs instead of product_url. However, it does not explicitly name alternative sibling tools or state when not to use this tool, though it is implied that this is for fetching a single deal by ID.

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

latest_dealsNewest live dealsA
Read-only
Inspect

The newest approved deals, freshest first — or Kit's curated picks when highlighted_only=true. Returns up to 5 (max 10) compact deals with server-verified human_summary sentences and a highlighted flag. Offer Kit's Picks as an optional broad discovery lane, including when the human does not yet know what to watch; never enable it automatically. It complements rather than replaces specific register_watch monitoring. Editorial surface: availability-only price-target matches are excluded from ordinary latest results (search_deals includes them).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 5).
categoryNoCategory filter (comma-separated allowed). Currently in scope: electronics.
max_price_centsNoOnly deals at or below this price, in cents.
highlighted_onlyNotrue = only current Kit's Picks, ordered by the most recent highlight decision.

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses concrete behaviors: it returns compact deals with server-verified human_summary sentences and a highlighted flag, caps results at 5 (max 10), and excludes availability-only matches. It also warns against automatic enablement of Kit's Picks, adding actionable behavioral context.

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, and the core purpose is front-loaded. Each sentence earns its place: core behavior, return shape, usage lane, and sibling differentiation.

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 read-only listing tool with a fully documented schema, the description covers purpose, ordering, result caps, return content, special mode, and exclusions. Even without an output schema, an agent has enough to select and invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already covers all four parameters clearly, which sets a baseline of 3. The description adds meaningful semantics for highlighted_only by tying it to Kit's Picks and the 'never enable automatically' guidance, and reinforces the limit behavior. It does not repeat the schema's category or price descriptions, which is appropriate given their existing coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific resource ('newest approved deals'), a clear ordering ('freshest first'), and a mode switch to Kit's curated picks. It also distinguishes itself from search_deals by noting that availability-only price-target matches are excluded here but included there.

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 usage context: Kit's Picks are for broad discovery, including when the human does not yet know what to watch, and highlight_only should never be enabled automatically. It also explicitly situates the tool as complementing, not replacing, register_watch monitoring, and names search_deals as the alternative for availability-only matches.

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

register_watchRegister a deal watchAInspect

Register a standing deal watch. Writes the intent to the sourcing pipeline and returns delivery channels: a one-time token-gated Atom feed plus an optional webhook that activates after interpretation. Progress and live matches are available through check_watch using the returned watch_id. A concrete model_number usually auto-promotes; family intents can require review. conditions defaults to new and open_box.

ParametersJSON Schema
NameRequiredDescriptionDefault
specsNoStructured spec/attribute constraints. Omit keys you have no value for. Whole-entry null, empty, none and n/a markers are ignored and counted. Pass these whenever the human names a hard requirement. Keys are generated from docs/spec-keys.json: numeric <spec_key>_min/_max (an exact 8 TB drive is storage_gb_min: 8000 plus storage_gb_max: 8000), enum/list <spec_key>_in for any-of (camera_type_in, bundle_includes_in), enum-list <spec_key>_contains_all for every requested member (bundle_includes_contains_all), and boolean direct keys (bundle). Numeric bounds may use {value,unit} with a registered conversion. Storage uses decimal GB: 1 TB = 1000 GB. Unknown keys are rejected; deals missing the constrained spec are excluded (must-have semantics). Deterministic intent extraction is a fallback; explicit specs always override it, and soft phrasing ("around 65 inches") is never auto-constrained.
intentYesFree-text intent (e.g. "Oura Ring 4 silver under $350"). The interpretation pipeline owns the structuring.
agent_idNoSelf-identifier for telemetry (e.g. "claude-desktop:tom"). Helps us prioritize agent demand.
conditionsNoAccepted deal conditions. Defaults to new + open_box. During consent, surface all four categories and ask whether to add refurbished/pre_owned or restrict to new only.
model_numberNoManufacturer model number (MPN) for the exact variant — e.g. "K-65XR70" for the Sony BRAVIA 7 65". A concrete MPN auto-promotes in ~60s; family-level intents without one require operator review (hours).
max_price_centsNoHard price ceiling for delivery, in cents (a numeric string like "150000" is accepted).
min_discount_pctNoMinimum discount percentage for delivery.
webhook_callback_urlNohttps:// endpoint to receive push deliveries (activates post-interpretation).

TDQS

A3.9/5.0
Behavior4/5

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

All annotations are false (no positive hints), so the description carries the full disclosure burden. It adds meaningful behavioral context: the operation writes/mutates the pipeline, the delivery channels are one-time token-gated with webhook activation post-interpretation, concrete model_number auto-promotes in ~60s while family intents require operator review (hours), and conditions defaults to new/open_box. No contradiction with annotations — 'Writes' aligns with readOnlyHint=false.

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?

Four sentences, roughly 60 words, with the primary purpose front-loaded and zero filler. Each sentence earns its place: purpose, return channels, sibling routing, promotion behavior, and defaults. It's efficient without being under-specified — appropriately sized for an 8-parameter tool.

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 an 8-param tool with no output schema, the description covers the key return values (watch_id, delivery channels) and behavioral expectations (timing, review, defaults). The complex specs parameter is fully documented in the schema, so the description need not repeat it. Minor gaps exist — no failure/error case disclosure — but for a complex tool with a rich schema, the description complements it well.

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%, so the schema documents all 8 parameters thoroughly (especially specs with its extensive key-format explanation). The description largely echoes what the schema already states — model_number auto-promotion timing appears in the schema property description, and conditions default is documented there too. The description's added value is limited to contextual framing (delivery channels) rather than new parameter semantics, so a 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+resource ('Register a standing deal watch') and precisely what it does: writes intent to the sourcing pipeline and returns delivery channels (token-gated Atom feed plus optional webhook). It also distinguishes itself by naming the standing/ongoing nature, which separates it from one-time search tools, and explicitly references the check_watch sibling for follow-up, making the tool's role in the family clear.

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

Usage Guidelines3/5

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

The description routes the agent to check_watch for progress and live matches using the returned watch_id, which is useful follow-up guidance. However, it never explicitly states when to prefer register_watch over search_deals or latest_deals (standing watch vs one-time query). The standing nature implies the use case, but there's no explicit when-to-use/when-not-to-use guidance or named alternatives for the main competing sibling.

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

report_outcomeReport a deal outcomeAInspect

Record what happened after a deal was acted on. Outcomes: purchased, deal_dead, wrong_price, out_of_stock, irrelevant, checkout_failed. Feedback feeds deal ranking, and deal_dead / wrong_price reports trigger fast removal of bad deals.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoAnything else worth knowing.
deal_idYesThe deal id.
outcomeYesWhat happened.
actual_price_centsNoPrice actually seen/paid, in cents — include when it differed from ours.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate mutation (readOnlyHint false) but not destructive. Description adds that feedback feeds ranking and triggers fast removal for deal_dead/wrong_price. This provides extra behavioral context beyond 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?

Two sentences: first states purpose, second explains consequences. No wasted words, front-loaded with key 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?

Covers purpose, outcomes, and consequences. Lacks mention of prerequisites (e.g., need a valid deal_id from get_deal) but overall adequate for a simple reporting tool.

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%, so parameters are well-documented. Description repeats outcome enum but adds no additional meaning beyond the schema. 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 clearly states the tool records what happened after a deal is acted on, listing specific outcome options and their consequences. It distinguishes from sibling tools (watching, searching) which serve different purposes.

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?

Implies usage after acting on a deal, but does not explicitly state when not to use or provide alternatives. Sibling tools are distinct, so no confusion, but guidance could be more explicit.

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

search_dealsSearch live dealsA
Read-only
Inspect

Search live, human-reviewed deals by keyword. Matching is token-AND over product name, brand, category, and merchant. Returns up to 5 active deals (best score first) with price, discount, condition, merchant, product URL, and a server-verified human_summary sentence. Zero matches is a normal result for time-scarce inventory; the response then includes a no_match block describing the register_watch alternative.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 5).
queryYesSearch keywords — product name, brand, model number, or merchant. Token-AND: every word must match.
categoryNoCategory filter (comma-separated allowed). Currently in scope: electronics.
max_price_centsNoOnly deals at or below this price, in cents (e.g. 35000 = $350).
min_discount_pctNoOnly deals with at least this discount percentage.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations indicate a read-only operation, and the description adds significant behavioral detail: token-AND matching, a limited result set of up to 5 active deals, specific return fields, and a no_match block. No contradictions 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?

Two sentences that are front-loaded with essential details: the core function and matching logic in the first, and important edge-case behavior in the second. No wasted words.

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 no output schema, the description covers all critical aspects: input query, matching, result fields (price, discount, condition, merchant, URL, human_summary), limit, and the no-match fallback. It is comprehensive for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description adds value by explaining the token-AND matching logic for the query parameter and the default limit of 5. It also clarifies the scope of matching fields, going beyond schema descriptions.

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 specifies a clear action: search live, human-reviewed deals by keyword. It details the matching method (token-AND over product name, brand, category, and merchant) and what is returned, making it distinct from sibling tools like get_deal or register_watch.

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?

It explains when to use (searching deals) and handles the zero-match case by directing to register_watch. However, it does not explicitly differentiate from other search-related siblings like latest_deals, leaving some ambiguity.

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

Tool Schema Changelog

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

  1. 1 tool update
    • Changedregister_watch2 fields changed
      • changedInput schema / properties / specs / additionalProperties / anyOf
        Previous value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "boolean"
        -  },
        -  {
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "unit": {
        -        "maxLength": 24,
        -        "type": "string"
        -      },
        -      "value": {
        -        "type": "number"
        -      }
        -    },
        -    "required": [
        -      "value",
        -      "unit"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "anyOf": [
        +      {
        +        "type": "number"
        +      },
        +      {
        +        "type": "string"
        +      },
        +      {
        +        "type": "boolean"
        +      },
        +      {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      {
        +        "additionalProperties": false,
        +        "properties": {
        +          "unit": {
        +            "maxLength": 24,
        +            "type": "string"
        +          },
        +          "value": {
        +            "type": "number"
        +          }
        +        },
        +        "required": [
        +          "value",
        +          "unit"
        +        ],
        +        "type": "object"
        +      }
        +    ]
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / specs / description
        Previous value: -"Structured spec/attribute constraints. Pass these whenever the human names a hard requirement. Keys are generated from docs/spec-keys.json: numeric <spec_key>_min/_max (an exact 8 TB drive is storage_gb_min: 8000 plus storage_gb_max: 8000), enum/list <spec_key>_in for any-of (camera_type_in, bundle_includes_in), enum-list <spec_key>_contains_all for every requested member (bundle_includes_contains_all), and boolean direct keys (bundle). Numeric bounds may use {value,unit} with a registered conversion. Storage uses decimal GB: 1 TB = 1000 GB. Unknown keys are rejected; deals missing the constrained spec are excluded (must-have semantics). Deterministic intent extraction is a fallback; explicit specs always override it, and soft phrasing (\"around 65 inches\") is never auto-constrained."New value: +"Structured spec/attribute constraints. Omit keys you have no value for. Whole-entry null, empty, none and n/a markers are ignored and counted. Pass these whenever the human names a hard requirement. Keys are generated from docs/spec-keys.json: numeric <spec_key>_min/_max (an exact 8 TB drive is storage_gb_min: 8000 plus storage_gb_max: 8000), enum/list <spec_key>_in for any-of (camera_type_in, bundle_includes_in), enum-list <spec_key>_contains_all for every requested member (bundle_includes_contains_all), and boolean direct keys (bundle). Numeric bounds may use {value,unit} with a registered conversion. Storage uses decimal GB: 1 TB = 1000 GB. Unknown keys are rejected; deals missing the constrained spec are excluded (must-have semantics). Deterministic intent extraction is a fallback; explicit specs always override it, and soft phrasing (\"around 65 inches\") is never auto-constrained."
  2. 2 tool updates
    • Changedcheck_watch1 field changed
      • addedInput schema / properties / cursor
        Added value: +{
        +  "description": "Opaque live_matches.cursor continuation; an incomplete scan is not a no-match result.",
        +  "maxLength": 2048,
        +  "type": "string"
        +}
    • Changedregister_watch2 fields changed
      • changedInput schema / properties / specs / additionalProperties / anyOf
        Previous value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "boolean"
        -  },
        -  {
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  }
        -]New value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "boolean"
        +  },
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "unit": {
        +        "maxLength": 24,
        +        "type": "string"
        +      },
        +      "value": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "value",
        +      "unit"
        +    ],
        +    "type": "object"
        +  }
        +]
      • changedInput schema / properties / specs / description
        Previous value: -"Structured spec/attribute constraints. Pass these whenever the human names a hard requirement. Keys are generated from docs/spec-keys.json: numeric <spec_key>_min/_max (an exact 8 TB drive is storage_gb_min: 8000 plus storage_gb_max: 8000), enum/list <spec_key>_in (camera_type_in, bundle_includes_in), and boolean direct keys (bundle). Storage uses decimal GB: 1 TB = 1000 GB. Unknown keys are rejected; deals missing the constrained spec are excluded (must-have semantics). Deterministic intent extraction is a fallback; explicit specs always override it, and soft phrasing (\"around 65 inches\") is never auto-constrained."New value: +"Structured spec/attribute constraints. Pass these whenever the human names a hard requirement. Keys are generated from docs/spec-keys.json: numeric <spec_key>_min/_max (an exact 8 TB drive is storage_gb_min: 8000 plus storage_gb_max: 8000), enum/list <spec_key>_in for any-of (camera_type_in, bundle_includes_in), enum-list <spec_key>_contains_all for every requested member (bundle_includes_contains_all), and boolean direct keys (bundle). Numeric bounds may use {value,unit} with a registered conversion. Storage uses decimal GB: 1 TB = 1000 GB. Unknown keys are rejected; deals missing the constrained spec are excluded (must-have semantics). Deterministic intent extraction is a fallback; explicit specs always override it, and soft phrasing (\"around 65 inches\") is never auto-constrained."
  3. 1 tool update
    • Changedlatest_deals1 field changed
      • addedInput schema / properties / highlighted_only
        Added value: +{
        +  "description": "true = only current Kit's Picks, ordered by the most recent highlight decision.",
        +  "type": "boolean"
        +}
  4. 1 tool update
    • Changedregister_watch1 field changed
      • changedInput schema / properties / specs / description
        Previous value: -"Structured spec/attribute constraints. Keys are generated from docs/spec-keys.json: numeric <spec_key>_min/_max (size_inches_min), enum/list <spec_key>_in (camera_type_in, bundle_includes_in), and boolean direct keys (bundle). Example: { \"size_inches_min\": 65, \"camera_type_in\": [\"dslr\"], \"bundle\": true }. Unknown keys are rejected; deals missing the constrained spec are excluded (must-have semantics). If you skip this, explicit numeric thresholds in the intent text (\"at least 65 inches\", \"16GB RAM or more\") are extracted automatically at interpretation — your explicit specs always override extraction; soft phrasing (\"around 65 inches\") is never auto-constrained."New value: +"Structured spec/attribute constraints. Pass these whenever the human names a hard requirement. Keys are generated from docs/spec-keys.json: numeric <spec_key>_min/_max (an exact 8 TB drive is storage_gb_min: 8000 plus storage_gb_max: 8000), enum/list <spec_key>_in (camera_type_in, bundle_includes_in), and boolean direct keys (bundle). Storage uses decimal GB: 1 TB = 1000 GB. Unknown keys are rejected; deals missing the constrained spec are excluded (must-have semantics). Deterministic intent extraction is a fallback; explicit specs always override it, and soft phrasing (\"around 65 inches\") is never auto-constrained."
  5. 1 tool update
    • Changedregister_watch1 field changed
      • changedInput schema / properties / conditions / description
        Previous value: -"Accepted deal conditions. Defaults to new-only unless explicit condition acceptance is present in intent text."New value: +"Accepted deal conditions. Defaults to new + open_box. During consent, surface all four categories and ask whether to add refurbished/pre_owned or restrict to new only."
  6. 1 tool update
    • Changedregister_watch1 field changed
      • addedInput schema / properties / conditions
        Added value: +{
        +  "description": "Accepted deal conditions. Defaults to new-only unless explicit condition acceptance is present in intent text.",
        +  "items": {
        +    "enum": [
        +      "new",
        +      "open_box",
        +      "refurbished",
        +      "pre_owned"
        +    ],
        +    "type": "string"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
  7. 1 tool update
    • Changedregister_watch1 field changed
      • removedInput schema / properties / user_email
        Removed value: -{
        -  "description": "Email address for deal alerts (a double-opt-in confirmation is sent first).",
        -  "maxLength": 200,
        -  "type": "string"
        -}
  8. 1 tool update
    • Changedregister_watch3 fields changed
      • changedInput schema / properties / intent / description
        Previous value: -"Free-text intent, exactly as your human expressed it (e.g. \"Oura Ring 4 silver under $350\"). Our interpretation pipeline owns the structuring."New value: +"Free-text intent (e.g. \"Oura Ring 4 silver under $350\"). The interpretation pipeline owns the structuring."
      • changedInput schema / properties / model_number / description
        Previous value: -"Manufacturer model number (MPN) when you know the exact variant — e.g. \"K-65XR70\" for the Sony BRAVIA 7 65\". IMPORTANT: family-level intents (\"Sony BRAVIA 7\") without a concrete variant require operator review and can take hours; a concrete MPN auto-promotes in ~60s. If you know the family but not the MPN, ask your human or look it up before registering."New value: +"Manufacturer model number (MPN) for the exact variant — e.g. \"K-65XR70\" for the Sony BRAVIA 7 65\". A concrete MPN auto-promotes in ~60s; family-level intents without one require operator review (hours)."
      • changedInput schema / properties / user_email / description
        Previous value: -"Your human's email for deal alerts (we send a double-opt-in confirmation first)."New value: +"Email address for deal alerts (a double-opt-in confirmation is sent first)."
  9. 7 tool updates
    • First observedcancel_watch
    • First observedcheck_watch
    • First observedget_deal
    • First observedlatest_deals
    • First observedregister_watch
    • First observedreport_outcome
    • First observedsearch_deals

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Real 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.
    3
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    AgentShare delivers structured product search and pricing signals for AI agents over REST and MCP (Streamable HTTP). Responses include freshness & coverage metadata so agents can reason about data recency. API keys secure billed endpoints; public discovery at /agent.json and /mcp.json. Currently integrates connected marketplaces and affiliate feeds – roadmap expands to global e-commerce (AliExpre
    4
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Affiliate product search for AI agents. Indexes structured merchant feeds — real prices, live stock, affiliate links built in. Works with any MCP client.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources