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
Last Tested
Transport
Streamable HTTP
URL

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. 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
watch_idYesThe watch_id returned by register_watch.

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, the description adds significant behavioral context: instructing not to fetch/follow product_url, to use product_url_canonical for automated actions, explaining the commissionable session trigger, requiring disclosure display, and specifying error return codes for cancelled and unknown watch IDs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

The description is front-loaded with the purpose, then provides essential operational rules in a logical order, ending with error behavior. Every sentence adds necessary information, and the structure is clear and efficient despite its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of explaining the response. It lists the main status fields, URL handling, disclosure, and error codes. However, it does not provide the complete response structure or all possible fields, so a fully precise agent might need to infer some details.

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

Parameters3/5

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

The parameter watch_id is already fully described in the schema as 'The watch_id returned by register_watch.' The tool description only mentions 'by watch_id' in the purpose, adding no additional semantic detail beyond what the schema provides. With 100% schema coverage, this meets the baseline but adds no extra value.

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 precisely that the tool returns the status of a watch by watch_id, listing the key data fields. This clearly distinguishes it from siblings like register_watch and cancel_watch, which create or mutate watches.

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 context that this is for checking watch status, and it includes specific handling instructions for the returned URLs. However, it does not explicitly state when to use this tool versus alternatives, such as when to prefer check_watch over get_deal or search_deals.

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. 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.
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

A4.4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so the write/non-idempotent nature is already disclosed. The description adds valuable behavior beyond annotations: it writes to the sourcing pipeline, returns a one-time token-gated feed plus optional webhook, and explains auto-promotion vs. review. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

The description is three sentences, front-loads the core verb and resource, and each sentence earns its place: delivery channels, check_watch linkage, auto-promotion/review behavior, and the conditions default. No wasted words.

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 complexity (8 params, nested objects, 0 enums in top-level, no output schema), the description covers the key agent-relevant workflow: what the tool does, what it returns conceptually, where to check results, the model_number nuance, and the conditions default. It does not enumerate all delivery channel details or error cases, but the schema covers parameter semantics and the description provides enough operational context for an agent to call it correctly.

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

Parameters4/5

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

Schema description coverage is 100%, so the schema already documents every parameter. The description adds meaningful context beyond the schema: it explains what the webhook activation timing is ('after interpretation'), clarifies the auto-promotion behavior tied to model_number, and notes the default for conditions ('new and open_box'). This is above baseline because it connects parameters to workflow behavior.

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 ('Register'), a resource ('a standing deal watch'), and the key delivery mechanism ('returns delivery channels: a one-time token-gated Atom feed plus an optional webhook'). It distinguishes itself from check_watch, a sibling, by explicitly naming it as the place to see progress/live matches.

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 provides clear context about when to use this tool: to register a standing watch, with delivery channels and a watch_id for later check_watch calls. It doesn't explicitly exclude alternatives or name when not to use it, but the sibling differentiation is implied through the check_watch reference and the description's overall purpose. It also mentions that a concrete model_number auto-promotes while family intents require review, which helps an agent decide what to include in the intent.

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.

Frequently Asked Questions

Discussions

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

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
    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.

TDQS

A4.4/5.0
Disambiguation5/5

Each tool maps to a distinct operation: discovery (get_deal, latest_deals, search_deals), watch lifecycle (register_watch, check_watch, cancel_watch), and feedback (report_outcome). The potential overlap between latest_deals and search_deals is resolved by their freshness/curation vs keyword-search framing. No two tools appear to do the same thing.

Naming Consistency4/5

Six of seven tools follow a clear verb_noun pattern (register_watch, check_watch, cancel_watch, get_deal, search_deals, report_outcome). 'latest_deals' breaks the pattern by using an adjective_noun noun phrase instead of a verb, but this is a minor deviation. Overall the convention is predictable.

Tool Count5/5

Seven tools is well-scoped for a deals discovery and watch-monitoring server. Each tool covers a distinct need and none feel redundant. This is within the ideal range and not bloated.

Completeness4/5

The core lifecycle is covered: discover deals, get details, register a watch, check its status, cancel it, and report outcomes. Missing a list/update watch operation is a minor gap, but cancel-and-re-register works as a workaround. For the stated purpose, no severe dead ends exist.

Resources