# Hadacart KR/US product search and purchase links

> Search KR/US products, dated options and unit prices; original merchant affiliate purchase links.

- name: com.hadacart/catalog-snapshots
- version: 1.1.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 79/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.hadacart%2Fcatalog-snapshots
- tools: https://api.protogrid.dev/v1/servers/com.hadacart%2Fcatalog-snapshots/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "catalog-snapshots": {
      "type": "http",
      "url": "https://hadacart.com/api/catalog/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-14d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 79/100 (good)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 5 of 5 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 3,979 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 25 (weight 15)

- warn `stability.changes`: 17 tool changes in 30 days
- fail `stability.rug_pull`: 4 tools kept their name but changed most of their description in 30 days; review before trusting them

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 5, about 3,979 tokens to load them all
- tool set hash: 7321f98515e249f3dad708753f69dd08
- tools last changed: 2026-11-02T17:40:59.826Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.hadacart/catalog-snapshots.svg)](https://protogrid.dev/servers/com.hadacart/catalog-snapshots)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-11-02 `prepare_purchase` added
  - Prepare an exact buyer-selected purchase handoff from dated records. Requires items and actual destinationCountry; US requires destinationRegion. Preserve variant, quantity, budget and benefits. Returns original issued URL and browser-agent steps. Never treats a yes to preparation as payment authority; verify merchant final quote then obtain specific buyer approval. No merchant request, cart, order or payment.
- 2026-10-30 `get_product` changed (description) **meaning changed**
  - before: Read one exact product with dated options, native prices, source evidence and original merchant purchase route. recordedBenefitRestrictions contains dated exact-product purchase exclusions, separate from affiliate commission rules; never remove buyer benefits or assume a discount. Includes dated recordedReturnPolicy declarations or explicit unknown; no buyer return eligibility, current fee/refund quote or inferred return deadline. Read complete product data and all published variants, native currency, capture time and source. recordedUseInstructions is a dated exact-product storage/preparation declaration or null. A valid storage record can have cooking:null when complete steps are not recorded; this never implies no cooking or ready-to-eat. It is not live package verification; component minutes are not total elapsed cooking time, and no temperature/lifetime or quantity scaling is inferred. recordedOptionIdentity reports bounded within-dated-product SKU ambiguity, not global/current uniqueness; keep exact variant ID and full option name even if SKU is unique. SKU alone never confirms size, merchant selection or quantity stock. null means unverified. On tool failure inspect isError and structuredContent.recovery for required fields and exact product-ID sources. KR/US recovery examples are diagnostic documentation only, never buyer defaults or automatic retries.
  - after: Read one exact productId: dated native price, option and source evidence, original issued purchase URL. IDs come from returned products; a merchant URL or variant ID is not a productId.
- 2026-10-30 `search_products` changed (description) **meaning changed**
  - before: Search multiple KR/US merchant catalogs by product keywords or exact identifiers; use affiliateLinkedOnly true to find recorded issued purchase routes. Whole-query exact recorded ISBN13 (optional ISBN prefix), catalog product ID, SKU or variant ID can find parent products. matchedIdentifierEvidence reports source/time and all recorded variant IDs for shared SKUs; it never selects an option or makes the parent minimum the matched-option price. Search public merchant snapshots. Optional optionQuery matches all literal tokens within the same captured option name, requires sellerId/currency and excludes incompatible product-price/unit ranking. Matched IDs and dated price/stock scopes are returned; never selects a different option. Curated Korean/English shopping-term aliases are supported; matchedQueryTerms reports alternatives, unknown words remain literal. Not general translation or product identity. Filter official affiliate links and snapshot age. Unit price filters/sort require currency, unit and referenceQuantity. Currency must be explicit for price filters. Includes original source and capture time. Never places orders. On tool failure inspect isError and structuredContent.recovery for required fields and exact product-ID sources. KR/US recovery examples are diagnostic documentation only, never buyer defaults or automatic retries.
  - after: Search merchant catalogs by keywords or exact identifiers. Set affiliateLinkedOnly=true for recorded issued links. Use find_purchase_candidates with buyer destination and currency for a purchase route.
- 2026-10-30 `find_purchase_candidates` changed (description) **meaning changed**
  - before: Find products with original issued affiliate purchase links for the actual buyer country, currency, quantity and options. Compare dated pack unit prices; use responseMode brief. Zero candidates include noMatchGuidance.catalogCoverage counts: same discovery filters with only issued-link presence removed for counting, never whole-market stock/delivery or purchase fallback. Prefer responseMode brief for compact initial discovery; default full preserves existing clients. Add includeVerificationPlans true when source verification is the next step; original read-only plans remain unexecuted and preserve constraints, avoiding a full-detail lookup for those plans. Brief preserves candidate facts, all matched options and original issued links, omitting only repeated preparation/verification templates and related-guide lists, with unexecuted full-detail requests. Requires an original issued exact-product link record; zero-result originalIssuedRouteCheck distinguishes missing local route evidence from product existence, stock and final approval. No automatic bypass, link activation or substitute. Includes dated within-product recordedOptionIdentity and exact-plan SKU ambiguity evidence. Shared SKU never selects a unique size; keep variant ID and full option name. Unique recorded SKU is not global/current merchant identity or stock. Preserves maxOptionPrice as exact-selection item unitPriceCeiling, or an explicit unitPriceCeiling object (never both). A fresh above-ceiling exact-option price cannot pass because total budget is higher; no currency conversion or substitution. Optional purchasePreferences preserves buyer channel/payment/benefits and independently known store/order country in exact continuation plans. Recorded affiliate benefit restrictions select ordinary merchant verification while issuer URLs remain unchanged; commission exclusions do not forbid purchase. No inferred countries, payment acceptance or earned commission. Optional total budget {amount,currency} is assessed separately for each exact alternative and full merchant quantity; copied to preparation/revalidation/conditions continuation. No currency conversion, selection changes, delivered-budget guarantee or payment authority. Includes dated recordedReturnPolicy declarations or explicit unknown; no buyer return eligibility, current fee/refund quote or inferred return deadline. Compare Korean pack quantities per native reference unit or an exact Keychron option against a USD ceiling; working buyer-task request examples at https://hadacart.com/agents/tasks.json. Read-only bounded product shortlist. Optional optionQuery finds literal terms in the SAME recorded option name, with explicit seller/currency, matching IDs and dated source/price/availability scopes; product-level price/unit ranking is rejected with optionQuery. Not live inventory. Curated Korean/English shopping aliases and matchedQueryTerms preserve literal extra keywords; not general translation. Exact original affiliate URLs, snapshot evidence, same native-currency/unit ranking and explicit destination restrictions. Returned links are not clicks or orders; current option/stock/final total/AI commission recognition remain unverified. Preserve buyer benefits in the subsequent route assessment. On tool failure inspect isError and structuredContent.recovery for required fields and exact product-ID sources. KR/US recovery examples are diagnostic documentation only, never buyer defaults or automatic retries.
  - after: Find exact products with issued affiliate routes. Requires query, destinationCountry and currency; preserve option, quantity, region, budget and benefits. Use responseMode brief. Returned URLs are not current stock or checkout.
- 2026-10-30 `find_buying_guides` changed (description) **meaning changed**
  - before: Discover KR/US buying questions, dated comparison evidence and exact product routes. Find validated reviewed-question text as documentation, with exact FAQ citations. Questions may ask about unsupported claims; answer/exclusion prose is not indexed as positive product evidence. Find existing KR/US buying questions by literal keywords and guide-declared example country, native currency, merchant or unit. Read-only bounded directory. Examples do not replace actual buyer selections or verify product membership, delivery, price, inventory, orders or commission. On tool failure inspect isError and structuredContent.recovery for required fields and exact product-ID sources. KR/US recovery examples are diagnostic documentation only, never buyer defaults or automatic retries.
  - after: Find KR/US buying guides by keywords and destination. Returns dated comparisons, exact product references and cited FAQ answers; an unsupported question is not a product fact. Use find_purchase_candidates for the buyer's chosen constraints.
- 2026-10-24 `get_product` changed (description)
  - before: recordedBenefitRestrictions contains dated exact-product purchase exclusions, separate from affiliate commission rules; never remove buyer benefits or assume a discount. Includes dated recordedReturnPolicy declarations or explicit unknown; no buyer return eligibility, current fee/refund quote or inferred return deadline. Read complete product data and all published variants, native currency, capture time and source. recordedUseInstructions is a dated exact-product storage/preparation declaration or null. A valid storage record can have cooking:null when complete steps are not recorded; this never implies no cooking or ready-to-eat. It is not live package verification; component minutes are not total elapsed cooking time, and no temperature/lifetime or quantity scaling is inferred. recordedOptionIdentity reports bounded within-dated-product SKU ambiguity, not global/current uniqueness; keep exact variant ID and full option name even if SKU is unique. SKU alone never confirms size, merchant selection or quantity stock. null means unverified. On tool failure inspect isError and structuredContent.recovery for required fields and exact product-ID sources. KR/US recovery examples are diagnostic documentation only, never buyer defaults or automatic retries.
  - after: Read one exact product with dated options, native prices, source evidence and original merchant purchase route. recordedBenefitRestrictions contains dated exact-product purchase exclusions, separate from affiliate commission rules; never remove buyer benefits or assume a discount. Includes dated recordedReturnPolicy declarations or explicit unknown; no buyer return eligibility, current fee/refund quote or inferred return deadline. Read complete product data and all published variants, native currency, capture time and source. recordedUseInstructions is a dated exact-product storage/preparation declaration or null. A valid storage record can have cooking:null when complete steps are not recorded; this never implies no cooking or ready-to-eat. It is not live package verification; component minutes are not total elapsed cooking time, and no temperature/lifetime or quantity scaling is inferred. recordedOptionIdentity reports bounded within-dated-product SKU ambiguity, not global/current uniqueness; keep exact variant ID and full option name even if SKU is unique. SKU alone never confirms size, merchant selection or quantity stock. null means unverified. On tool failure inspect isError and structuredContent.recovery for required fields and exact product-ID sources. KR/US recovery examples are diagnostic documentation only, never buyer defaults or automatic retries.
- 2026-10-24 `search_products` changed (description)
  - before: Whole-query exact recorded ISBN13 (optional ISBN prefix), catalog product ID, SKU or variant ID can find parent products. matchedIdentifierEvidence reports source/time and all recorded variant IDs for shared SKUs; it never selects an option or makes the parent minimum the matched-option price. Search public merchant snapshots. Optional optionQuery matches all literal tokens within the same captured option name, requires sellerId/currency and excludes incompatible product-price/unit ranking. Matched IDs and dated price/stock scopes are returned; never selects a different option. Curated Korean/English shopping-term aliases are supported; matchedQueryTerms reports alternatives, unknown words remain literal. Not general translation or product identity. Filter official affiliate links and snapshot age. Unit price filters/sort require currency, unit and referenceQuantity. Currency must be explicit for price filters. Includes original source and capture time. Never places orders. On tool failure inspect isError and structuredContent.recovery for required fields and exact product-ID sources. KR/US recovery examples are diagnostic documentation only, never buyer defaults or automatic retries.
  - after: Search multiple KR/US merchant catalogs by product keywords or exact identifiers; use affiliateLinkedOnly true to find recorded issued purchase routes. Whole-query exact recorded ISBN13 (optional ISBN prefix), catalog product ID, SKU or variant ID can find parent products. matchedIdentifierEvidence reports source/time and all recorded variant IDs for shared SKUs; it never selects an option or makes the parent minimum the matched-option price. Search public merchant snapshots. Optional optionQuery matches all literal tokens within the same captured option name, requires sellerId/currency and excludes incompatible product-price/unit ranking. Matched IDs and dated price/stock scopes are returned; never selects a different option. Curated Korean/English shopping-term aliases are supported; matchedQueryTerms reports alternatives, unknown words remain literal. Not general translation or product identity. Filter official affiliate links and snapshot age. Unit price filters/sort require currency, unit and referenceQuantity. Currency must be explicit for price filters. Includes original source and capture time. Never places orders. On tool failure inspect isError and structuredContent.recovery for required fields and exact product-ID sources. KR/US recovery examples are diagnostic documentation only, never buyer defaults or automatic retries.
- 2026-10-24 `find_purchase_candidates` changed (description)
  - before: Zero candidates include noMatchGuidance.catalogCoverage counts: same discovery filters with only issued-link presence removed for counting, never whole-market stock/delivery or purchase fallback. Prefer responseMode brief for compact initial discovery; default full preserves existing clients. Add includeVerificationPlans true when source verification is the next step; original read-only plans remain unexecuted and preserve constraints, avoiding a full-detail lookup for those plans. Brief preserves candidate facts, all matched options and original issued links, omitting only repeated preparation/verification templates and related-guide lists, with unexecuted full-detail requests. Requires an original issued exact-product link record; zero-result originalIssuedRouteCheck distinguishes missing local route evidence from product existence, stock and final approval. No automatic bypass, link activation or substitute. Includes dated within-product recordedOptionIdentity and exact-plan SKU ambiguity evidence. Shared SKU never selects a unique size; keep variant ID and full option name. Unique recorded SKU is not global/current merchant identity or stock. Preserves maxOptionPrice as exact-selection item unitPriceCeiling, or an explicit unitPriceCeiling object (never both). A fresh above-ceiling exact-option price cannot pass because total budget is higher; no currency conversion or substitution. Optional purchasePreferences preserves buyer channel/payment/benefits and independently known store/order country in exact continuation plans. Recorded affiliate benefit restrictions select ordinary merchant verification while issuer URLs remain unchanged; commission exclusions do not forbid purchase. No inferred countries, payment acceptance or earned commission. Optional total budget {amount,currency} is assessed separately for each exact alternative and full merchant quantity; copied to preparation/revalidation/conditions continuation. No currency conversion, selection changes, delivered-budget guarantee or payment authority. Includes dated recordedReturnPolicy declarations or explicit unknown; no buyer return eligibility, current fee/refund quote or inferred return deadline. Compare Korean pack quantities per native reference unit or an exact Keychron option against a USD ceiling; working buyer-task request examples at https://hadacart.com/agents/tasks.json. Read-only bounded product shortlist. Optional optionQuery finds literal terms in the SAME recorded option name, with explicit seller/currency, matching IDs and dated source/price/availability scopes; product-level price/unit ranking is rejected with optionQuery. Not live inventory. Curated Korean/English shopping aliases and matchedQueryTerms preserve literal extra keywords; not general translation. Exact original affiliate URLs, snapshot evidence, same native-currency/unit ranking and explicit destination restrictions. Returned links are not clicks or orders; current option/stock/final total/AI commission recognition remain unverified. Preserve buyer benefits in the subsequent route assessment. On tool failure inspect isError and structuredContent.recovery for required fields and exact product-ID sources. KR/US recovery examples are diagnostic documentation only, never buyer defaults or automatic retries.
  - after: Find products with original issued affiliate purchase links for the actual buyer country, currency, quantity and options. Compare dated pack unit prices; use responseMode brief. Zero candidates include noMatchGuidance.catalogCoverage counts: same discovery filters with only issued-link presence removed for counting, never whole-market stock/delivery or purchase fallback. Prefer responseMode brief for compact initial discovery; default full preserves existing clients. Add includeVerificationPlans true when source verification is the next step; original read-only plans remain unexecuted and preserve constraints, avoiding a full-detail lookup for those plans. Brief preserves candidate facts, all matched options and original issued links, omitting only repeated preparation/verification templates and related-guide lists, with unexecuted full-detail requests. Requires an original issued exact-product link record; zero-result originalIssuedRouteCheck distinguishes missing local route evidence from product existence, stock and final approval. No automatic bypass, link activation or substitute. Includes dated within-product recordedOptionIdentity and exact-plan SKU ambiguity evidence. Shared SKU never selects a unique size; keep variant ID and full option name. Unique recorded SKU is not global/current merchant identity or stock. Preserves maxOptionPrice as exact-selection item unitPriceCeiling, or an explicit unitPriceCeiling object (never both). A fresh above-ceiling exact-option price cannot pass because total budget is higher; no currency conversion or substitution. Optional purchasePreferences preserves buyer channel/payment/benefits and independently known store/order country in exact continuation plans. Recorded affiliate benefit restrictions select ordinary merchant verification while issuer URLs remain unchanged; commission exclusions do not forbid purchase. No inferred countries, payment acceptance or earned commission. Optional total budget {amount,currency} is assessed separately for each exact alternative and full merchant quantity; copied to preparation/revalidation/conditions continuation. No currency conversion, selection changes, delivered-budget guarantee or payment authority. Includes dated recordedReturnPolicy declarations or explicit unknown; no buyer return eligibility, current fee/refund quote or inferred return deadline. Compare Korean pack quantities per native reference unit or an exact Keychron option against a USD ceiling; working buyer-task request examples at https://hadacart.com/agents/tasks.json. Read-only bounded product shortlist. Optional optionQuery finds literal terms in the SAME recorded option name, with explicit seller/currency, matching IDs and dated source/price/availability scopes; product-level price/unit ranking is rejected with optionQuery. Not live inventory. Curated Korean/English shopping aliases and matchedQueryTerms preserve literal extra keywords; not general translation. Exact original affiliate URLs, snapshot evidence, same native-currency/unit ranking and explicit destination restrictions. Returned links are not clicks or orders; current option/stock/final total/AI commission recognition remain unverified. Preserve buyer benefits in the subsequent route assessment. On tool failure inspect isError and structuredContent.recovery for required fields and exact product-ID sources. KR/US recovery examples are diagnostic documentation only, never buyer defaults or automatic retries.
- 2026-10-24 `find_buying_guides` changed (description)
  - before: Find validated reviewed-question text as documentation, with exact FAQ citations. Questions may ask about unsupported claims; answer/exclusion prose is not indexed as positive product evidence. Find existing KR/US buying questions by literal keywords and guide-declared example country, native currency, merchant or unit. Read-only bounded directory. Examples do not replace actual buyer selections or verify product membership, delivery, price, inventory, orders or commission. On tool failure inspect isError and structuredContent.recovery for required fields and exact product-ID sources. KR/US recovery examples are diagnostic documentation only, never buyer defaults or automatic retries.
  - after: Discover KR/US buying questions, dated comparison evidence and exact product routes. Find validated reviewed-question text as documentation, with exact FAQ citations. Questions may ask about unsupported claims; answer/exclusion prose is not indexed as positive product evidence. Find existing KR/US buying questions by literal keywords and guide-declared example country, native currency, merchant or unit. Read-only bounded directory. Examples do not replace actual buyer selections or verify product membership, delivery, price, inventory, orders or commission. On tool failure inspect isError and structuredContent.recovery for required fields and exact product-ID sources. KR/US recovery examples are diagnostic documentation only, never buyer defaults or automatic retries.
- 2026-10-22 `find_purchase_candidates` changed (description, inputSchema)
  - before: Prefer responseMode brief for compact initial discovery; default full preserves existing clients. Brief preserves candidate facts, all matched options and original issued links, omitting only repeated preparation/verification templates and related-guide lists, with unexecuted full-detail requests. Requires an original issued exact-product link record; zero-result originalIssuedRouteCheck distinguishes missing local route evidence from product existence, stock and final approval. No automatic bypass, link activation or substitute. Includes dated within-product recordedOptionIdentity and exact-plan SKU ambiguity evidence. Shared SKU never selects a unique size; keep variant ID and full option name. Unique recorded SKU is not global/current merchant identity or stock. Preserves maxOptionPrice as exact-selection item unitPriceCeiling, or an explicit unitPriceCeiling object (never both). A fresh above-ceiling exact-option price cannot pass because total budget is higher; no currency conversion or substitution. Optional purchasePreferences preserves buyer channel/payment/benefits and independently known store/order country in exact continuation plans. Recorded affiliate benefit restrictions select ordinary merchant verification while issuer URLs remain unchanged; commission exclusions do not forbid purchase. No inferred countries, payment acceptance or earned commission. Optional total budget {amount,currency} is assessed separately for each exact alternative and full merchant quantity; copied to preparation/revalidation/conditions continuation. No currency conversion, selection changes, delivered-budget guarantee or payment authority. Includes dated recordedReturnPolicy declarations or explicit unknown; no buyer return eligibility, current fee/refund quote or inferred return deadline. Compare Korean pack quantities per native reference unit or an exact Keychron option against a USD ceiling; working buyer-task request examples at https://hadacart.com/agents/tasks.json. Read-only bounded product shortlist. Optional optionQuery finds literal terms in the SAME recorded option name, with explicit seller/currency, matching IDs and dated source/price/availability scopes; product-level price/unit ranking is rejected with optionQuery. Not live inventory. Curated Korean/English shopping aliases and matchedQueryTerms preserve literal extra keywords; not general translation. Exact original affiliate URLs, snapshot evidence, same native-currency/unit ranking and explicit destination restrictions. Returned links are not clicks or orders; current option/stock/final total/AI commission recognition remain unverified. Preserve buyer benefits in the subsequent route assessment. On tool failure inspect isError and structuredContent.recovery for required fields and exact product-ID sources. KR/US recovery examples are diagnostic documentation only, never buyer defaults or automatic retries.
  - after: Zero candidates include noMatchGuidance.catalogCoverage counts: same discovery filters with only issued-link presence removed for counting, never whole-market stock/delivery or purchase fallback. Prefer responseMode brief for compact initial discovery; default full preserves existing clients. Add includeVerificationPlans true when source verification is the next step; original read-only plans remain unexecuted and preserve constraints, avoiding a full-detail lookup for those plans. Brief preserves candidate facts, all matched options and original issued links, omitting only repeated preparation/verification templates and related-guide lists, with unexecuted full-detail requests. Requires an original issued exact-product link record; zero-result originalIssuedRouteCheck distinguishes missing local route evidence from product existence, stock and final approval. No automatic bypass, link activation or substitute. Includes dated within-product recordedOptionIdentity and exact-plan SKU ambiguity evidence. Shared SKU never selects a unique size; keep variant ID and full option name. Unique recorded SKU is not global/current merchant identity or stock. Preserves maxOptionPrice as exact-selection item unitPriceCeiling, or an explicit unitPriceCeiling object (never both). A fresh above-ceiling exact-option price cannot pass because total budget is higher; no currency conversion or substitution. Optional purchasePreferences preserves buyer channel/payment/benefits and independently known store/order country in exact continuation plans. Recorded affiliate benefit restrictions select ordinary merchant verification while issuer URLs remain unchanged; commission exclusions do not forbid purchase. No inferred countries, payment acceptance or earned commission. Optional total budget {amount,currency} is assessed separately for each exact alternative and full merchant quantity; copied to preparation/revalidation/conditions continuation. No currency conversion, selection changes, delivered-budget guarantee or payment authority. Includes dated recordedReturnPolicy declarations or explicit unknown; no buyer return eligibility, current fee/refund quote or inferred return deadline. Compare Korean pack quantities per native reference unit or an exact Keychron option against a USD ceiling; working buyer-task request examples at https://hadacart.com/agents/tasks.json. Read-only bounded product shortlist. Optional optionQuery finds literal terms in the SAME recorded option name, with explicit seller/currency, matching IDs and dated source/price/availability scopes; product-level price/unit ranking is rejected with optionQuery. Not live inventory. Curated Korean/English shopping aliases and matchedQueryTerms preserve literal extra keywords; not general translation. Exact original affiliate URLs, snapshot evidence, same native-currency/unit ranking and explicit destination restrictions. Returned links are not clicks or orders; current option/stock/final total/AI commission recognition remain unverified. Preserve buyer benefits in the subsequent route assessment. On tool failure inspect isError and structuredContent.recovery for required fields and exact product-ID sources. KR/US recovery examples are diagnostic documentation only, never buyer defaults or automatic retries.

Full history: https://api.protogrid.dev/v1/servers/com.hadacart%2Fcatalog-snapshots/changes

## Remotes

- https://hadacart.com/api/catalog/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (5)

- `find_buying_guides`: Find KR/US buying guides by keywords and destination. Returns dated comparisons, exact product references and cited FAQ answers; an unsupported question is not a product fact. Use find_purchase_candidates for the buyer's chosen constraints.
- `find_purchase_candidates`: Find exact products with issued affiliate routes. Requires query, destinationCountry and currency; preserve option, quantity, region, budget and benefits. Use responseMode brief. Returned URLs are not current stock or checkout.
- `get_product`: Read one exact productId: dated native price, option and source evidence, original issued purchase URL. IDs come from returned products; a merchant URL or variant ID is not a productId.
- `prepare_purchase`: Prepare an exact buyer-selected purchase handoff from dated records. Requires items and actual destinationCountry; US requires destinationRegion. Preserve variant, quantity, budget and benefits. Returns original issued URL and browser-agent steps. Never treats a yes to preparation as payment authority; verify merchant final quote then obtain specific buyer approval. No merchant request, cart, order or payment.
- `search_products`: Search merchant catalogs by keywords or exact identifiers. Set affiliateLinkedOnly=true for recorded issued links. Use find_purchase_candidates with buyer destination and currency for a purchase route.
