Heartly Deals — Live Flash Sales (Shopify & WooCommerce)
Server Details
Live flash-sale inventory from verified Shopify and WooCommerce merchants worldwide.
- Status
- Healthy
- Uptime
- 100.0% over 76 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 3 tools
get_deal_by_id is clearly distinct (single deal by UUID), but list_active_deals and search_deals_by_category overlap heavily since listing supports optional filters that include category. The descriptions clarify that category is required in one and optional in the other, which mostly resolves the confusion, but an agent could still reasonably pick either for a category-filtered listing.
All three tools follow a consistent verb_noun pattern (get_deal_by_id, list_active_deals, search_deals_by_category) with snake_case throughout. The suffixes (_by_id, _active_, _by_category) predictably signal the lookup mode.
Three tools is on the thin side for a deals discovery server; the surface feels like a minimal read-only slice. It is not egregiously wrong for a scoped flash-sale lookup service, but it borders on under-scoped.
Coverage is read-only: no merchant lookup despite merchant_verified being surfaced per deal, no category enumeration to feed the required category argument, and no deal detail expansion (products, store link) beyond the ID lookup. Agents can work around these gaps but will hit dead ends when they need merchant context or valid category values.
Available Tools
3 toolsget_deal_by_idGet deal by idBInspect
Look up a single active deal by its Heartly internal id (UUID).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Heartly internal deal id (UUID). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It only states the tool looks up an 'active deal', but does not disclose behavior for missing IDs (e.g., returns null/error), permissions required, or any side effects. For a read operation, basic transparency is missing.
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 concise sentence of 13 words with no redundancy. It front-loads the key information without any extra fluff.
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?
There is no output schema, and the description does not mention what the tool returns (e.g., full deal object, fields included). For a simple lookup tool, missing return information reduces 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 coverage is 100% with the 'id' parameter description already stating it is a UUID. The description repeats 'Heartly internal id (UUID)' and adds 'active deal', but does not add new meaning beyond the schema. Baseline 3 applies.
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 verb 'look up', the resource 'single active deal', and the identifier 'Heartly internal id (UUID)'. It effectively distinguishes itself from siblings 'list_active_deals' and 'search_deals_by_category' by specifying the lookup method.
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 when a specific UUID is available, but it does not explicitly state when to prefer this tool over siblings or provide exclusions (e.g., 'use search_deals_by_category if you have a category name'). Guidance is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_active_dealsList active dealsBInspect
List currently active flash-sale deals from Heartly merchants (see merchant_verified per deal). Returns deals sorted by ending soonest. Filters are optional and combinable.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | ISO 3166-1 alpha-2 country code. Filters to merchants whose shipping_countries include this code, plus merchants who ship worldwide. | |
| category | No | Top-level product category, e.g. "fashion", "beauty", "electronics". | |
| min_discount_pct | No | Minimum discount percentage. Only return deals at or above this value. | |
| ending_within_hours | No | Only return deals ending within this many hours from now. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full behavioral burden. It does disclose the default sort order and that each deal carries a merchant_verified flag, but it says nothing about result-set size, pagination, rate limits, or what happens when many deals match — gaps that matter for a list tool with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the resource and scope, with ordering and filter behavior following. The parenthetical '(see merchant_verified per deal)' is slightly awkward without an output schema to anchor it, but nothing is padded or redundant.
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 four-parameter read tool with no annotations and no output schema, the definition covers scope, ordering, and filter combinability adequately. It is thin on the shape of the returned deals beyond the ordering and the merchant_verified flag, which leaves the agent guessing about result size and payload fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the description adds genuine meaning on top: filters are optional (all four are non-required) and combinable (AND semantics across country/category/discount/time). That AND-combination rule is not stated anywhere in the schema and is exactly what an agent needs to build a multi-filter call.
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 gives a specific verb and resource ('List currently active flash-sale deals') plus the data source ('Heartly merchants') and default ordering ('sorted by ending soonest'). It does not explicitly contrast itself with search_deals_by_category, so an agent must infer that the difference is 'active only' vs 'search by category'.
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?
'Filters are optional and combinable' tells the agent it can call with zero arguments and stack filters, which is useful context. However, it never says when to prefer this tool over search_deals_by_category or get_deal_by_id, and there are no exclusions or prerequisites named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_deals_by_categorySearch deals by categoryAInspect
Search active deals filtered by category. The category argument is required. Other filters (country, min_discount_pct, ending_within_hours) are optional.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | ISO 3166-1 alpha-2 country code. Filters to merchants whose shipping_countries include this code, plus merchants who ship worldwide. | |
| category | Yes | Top-level product category, e.g. "fashion", "beauty", "electronics". | |
| min_discount_pct | No | Minimum discount percentage. Only return deals at or above this value. | |
| ending_within_hours | No | Only return deals ending within this many hours from now. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only states 'Search active deals' without disclosing behavior like rate limits, result ordering, pagination, or what 'active' means. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff, front-loaded with action and required filter. Clearly structured.
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?
Schema is rich, but description lacks context on return behavior, pagination, or what 'active' implies. No output schema exists, so description should cover more. Adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions. Description adds minimal value beyond stating category is required and others optional, which is already in schema. Baseline 3 holds.
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?
Clearly states verb 'search' and resource 'active deals' with filter by category. Distinguishes from siblings: get_deal_by_id is single deal, list_active_deals is unfiltered.
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?
States required argument and optional filters, but does not explicitly describe when to use this tool vs alternatives. Could mention that list_active_deals is for unfiltered listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
get_deal_by_id - First observed
list_active_deals - First observed
search_deals_by_category
Related MCP Connectors
Live product discovery for AI shopping agents, with shopper-approved retailer handoff.
Live sneaker & streetwear prices and in-stock sizes across 600+ US stores, by style code.
AI-agent product catalog: search, lookup & purchase routing over verified merchant data.
Shopify store catalog, SKU/price/availability & collections
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceDTC competitor intelligence: catalog snapshots, price history, cross-brand product comparison, and drop/restock detection for 84 Shopify-powered brands. Pay-per-call via Apify.-
- AlicenseAqualityCmaintenanceConnects conversational AI agents to live inventories of verified neighborhood retail stores through GPS-radius catalog search, zero-PII order reservations with direct merchant checkout links, real-time fulfillment tracking, and store trust reporting. Shoppers settle payment directly with merchants while orders trigger counter terminals and courier dispatch slips.241MIT
- AlicenseBqualityCmaintenanceMulti-channel inventory intelligence for Shopify and Amazon sellers. 28 tools for stockout risk, demand forecasts, purchase order management, and sales analytics — with human-in-the-loop safeguards.5089 npm2MIT

dentro MCPofficial
AlicenseAqualityDmaintenanceProvides structured commerce data for AI agents, enabling real-time product searches and brand discovery across 22,000+ DTC brands without scraping or hallucination.538 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.