Hadacart KR/US product search and purchase links
Search KR/US products, dated options and unit prices; original merchant affiliate purchase links.
使うべきか
品質と安全性
検出事項(2)
- HIGH
- MEDIUMfind_purchase_candidates 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"catalog-snapshots": {
"url": "https://hadacart.com/api/catalog/mcp"
}
}
}リモートエンドポイント
https://hadacart.com/api/catalog/mcpstreamable-httpできること
ツール一覧
ツール(4)
🟢find_buying_guides(query, destinationCountry, currency, sellerId, unit, ...)
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.
入力スキーマ
{
"type": "object",
"properties": {
"query": {
"type": "string",
"maxLength": 160,
"description": "Literal validated reviewed-question text, guide keywords and dated primary/option labels or SKUs of explicitly referenced products, honoring the guide option filter. Question text can ask about unsupported claims; answers are not positive feature evidence. Finds documentation only, not exact candidate membership, current stock or compatibility; not general translation."
},
"destinationCountry": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "Filter guide example country only, never product shipping eligibility or the actual buyer address."
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "Exact native currency of guide examples; no exchange-rate conversion."
},
"sellerId": {
"type": "string",
"maxLength": 80,
"pattern": "^[a-z0-9_-]+$",
"description": "Exact guide-declared merchant or catalog merchant of an explicitly referenced guide product ID; never inferred from search text, ID prefixes or unrestricted candidate membership."
},
"unit": {
"type": "string",
"enum": [
"sheet",
"mL",
"g",
"egg",
"pair",
"piece"
],
"description": "Guide-declared comparison unit, not guessed contents or product equivalence."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
},
"additionalProperties": false
}🟢find_purchase_candidates(productCondition, purchaseMode, productId, optionQueryMode, query, ...)
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.
入力スキーマ
{
"type": "object",
"properties": {
"productCondition": {
"type": "string",
"enum": [
"new",
"used",
"refurbished"
],
"description": "Exact recorded merchant-declared product condition. Unknown or mixed/unclassified condition is excluded when supplied. Not independent inspection, grade equivalence, current availability or a selected-option guarantee."
},
"purchaseMode": {
"type": "string",
"enum": [
"one-time-purchase-advertisement"
],
"description": "Exact recorded advertised purchase mode. Unknown modes are excluded when supplied. Normal-purchase advertised price is not a rental/monthly quote or buyer-specific selected-option/final total."
},
"productId": {
"type": "string",
"minLength": 1,
"maxLength": 160,
"pattern": "^[A-Za-z0-9_.-]+$",
"description": "Exact case-sensitive Hadacart catalog product ID. Applied together with every other filter; an unknown ID or mismatch returns zero candidates without falling back to title search. Not a provider variant ID."
},
"optionQueryMode": {
"type": "string",
"enum": [
"terms",
"exact"
],
"description": "Requires optionQuery. Default terms is literal-token discovery. exact matches the entire case-sensitive recorded option name, including spaces and punctuation; no trimming, normalization or variant substitution. terms allows up to100characters; exact allows up to200characters."
},
"query": {
"type": "string",
"maxLength": 200,
"description": "Recorded product name, brand, merchant/category and identity-reviewed primary title and exact-product dated primary-source labels; literal reviewed weights, no general conversion or SKU/option matching. Use optionQuery for recorded exact options."
},
"optionQuery": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Literal terms in one recorded option name. Requires sellerId; incompatible with product-price/unit filters. Revalidate exact option before budgeting or purchase."
},
"category": {
"type": "string"
},
"maxOptionPrice": {
"type": "number",
"minimum": 0,
"description": "Nonnegative ceiling on a dated exact Keychron option unit price. Requires optionQuery, sellerId keychron and USD; excludes unknown prices, shipping and tax. Zero candidate results include bounded optionBudgetEvidence for the same named option, preserving destination and buyer ceiling. Not current inventory, final total or buyer spending authorization."
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$"
},
"destinationCountry": {
"type": "string",
"pattern": "^[A-Z]{2}$"
},
"destinationRegion": {
"type": "string",
"maxLength": 10
},
"sellerId": {
"type": "string"
},
"unit": {
"type": "string",
"enum": [
"sheet",
"mL",
"g",
"egg",
"pair",
"piece"
]
},
"referenceQuantity": {
"type": "number",
"exclusiveMinimum": 0
},
"maxPrice": {
"type": "number",
"minimum": 0
},
"maxUnitPrice": {
"type": "number",
"minimum": 0
},
"minPackageQuantity": {
"type": "number",
"minimum": 0
},
"maxSnapshotAgeHours": {
"type": "number",
"exclusiveMinimum": 0
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20
},
"quantity": {
"type": "integer",
"minimum": 1,
"maximum": 99,
"description": "Requested number of merchant listing configurations or packages, not individual contents. When omitted, quantity1 is explicitly an example. Preserved in read-only verification/preparation plans. Does not reserve stock, apply a merchant selection, change per-unit price ceilings or authorize payment."
},
"budget": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000000000000
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$"
}
},
"additionalProperties": false,
"description": "Buyer spending ceiling in one explicit currency; preserved locally, never payment authorization or a delivered-total quote."
},
"unitPriceCeiling": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$"
}
},
"additionalProperties": false,
"description": "Buyer ceiling per one exact selected merchant listing/configuration, in explicit native currency. Not a per-100g/reference-unit filter or total budget. Preserve quantity, option, benefits and currency; no conversion, current quote or payment permission."
},
"purchasePreferences": {
"type": "object",
"properties": {
"channel": {
"type": "string",
"enum": [
"PC",
"Mobile Web",
"APP(AOS)",
"APP(IOS)"
]
},
"paymentMethod": {
"type": "string",
"enum": [
"naver-pay",
"card",
"bank-transfer",
"other"
],
"description": "Buyer payment preference only; not payment credentials or proof of merchant acceptance. Preserve this preference even when commission is excluded."
},
"benefits": {
"type": "array",
"maxItems": 8,
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"merchant-coupon",
"points",
"voucher",
"store-credit",
"cart-coupon",
"product-coupon",
"stackable-coupon"
]
},
"description": "Purchase benefits intended by the buyer. Omitted means unknown; [] means no benefits selected. Never drop buyer benefits to obtain commission."
},
"merchantStoreCountry": {
"type": "string",
"pattern": "^[A-Z]{2}$",
"description": "Actual country storefront selected at merchant; not inferred from buyer language or shipping destination."
},
"orderCountry": {
"type": "string",
"pattern": "^[A-Z]{2}$",
"description": "Order geography as recognized by the affiliate provider; do not infer this from IP or language."
}
},
"additionalProperties": false,
"description": "Buyer choices for this product. Not payment credentials or authorization. Store/order country must be independently known; never inferred from destination. Preserve benefits even when commission is excluded."
},
"responseMode": {
"type": "string",
"enum": [
"full",
"brief"
],
"description": "Use brief for candidate discovery with lower response volume. Retains all candidate facts, source dates, buyer constraints, destination/benefit/affiliate assessments and original issued URLs; omits repeated preparation/verification templates and related-guide lists. Full detail requests are returned without execution. Default full preserves existing clients. Neither mode verifies current stock, delivery, payment or revenue."
},
"includeVerificationPlans": {
"type": "boolean",
"description": "With responseMode brief only, true includes original read-only source verification plans, preserving exact product/variant, quantity, destination, budget, per-unit ceiling and benefits. Avoid an extra full-detail query when the buyer or client wants source verification next. Plans may be unsupported or blocked; no source/affiliate/cart/payment request executes. Default false."
}
},
"required": [
"query",
"currency",
"destinationCountry"
],
"additionalProperties": false
}🟢search_products(productCondition, purchaseMode, query, market, currency, ...)
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.
入力スキーマ
{
"type": "object",
"properties": {
"productCondition": {
"type": "string",
"enum": [
"new",
"used",
"refurbished"
],
"description": "Exact recorded merchant-declared product condition. Unknown or mixed/unclassified condition is excluded when supplied. Not independent inspection, grade equivalence, current availability or a selected-option guarantee."
},
"purchaseMode": {
"type": "string",
"enum": [
"one-time-purchase-advertisement"
],
"description": "Exact recorded advertised purchase mode. Unknown modes are excluded when supplied. Normal-purchase advertised price is not a rental/monthly quote or buyer-specific selected-option/final total."
},
"query": {
"type": "string",
"maxLength": 200
},
"market": {
"type": "string",
"enum": [
"all",
"domestic",
"international"
]
},
"currency": {
"type": "string"
},
"category": {
"type": "string",
"enum": [
"전체",
"리빙·키친",
"디지털",
"문구·데스크",
"패션",
"신발",
"뷰티·생활",
"식품·커피"
]
},
"sellerId": {
"type": "string"
},
"maxPrice": {
"type": "number",
"minimum": 0
},
"minPrice": {
"type": "number",
"minimum": 0
},
"availableOnly": {
"type": "boolean"
},
"offset": {
"type": "integer",
"minimum": 0
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"affiliateLinkedOnly": {
"type": "boolean",
"description": "Only products with an official issued affiliate link; final approval can be pending."
},
"maxSnapshotAgeHours": {
"type": "number",
"exclusiveMinimum": 0
},
"unit": {
"type": "string",
"enum": [
"sheet",
"mL",
"g",
"egg",
"pair",
"piece"
]
},
"referenceQuantity": {
"type": "number",
"exclusiveMinimum": 0
},
"maxUnitPrice": {
"type": "number",
"minimum": 0
},
"minPackageQuantity": {
"type": "number",
"minimum": 0
},
"sort": {
"type": "string",
"enum": [
"default",
"priceAsc",
"priceDesc",
"unitPriceAsc"
]
},
"maxOptionPrice": {
"type": "number",
"minimum": 0,
"description": "Nonnegative ceiling on a dated exact Keychron option unit price. Requires optionQuery, sellerId keychron and USD; excludes unknown prices, shipping and tax. Zero candidate results include bounded optionBudgetEvidence for the same named option, preserving destination and buyer ceiling. Not current inventory, final total or buyer spending authorization."
},
"productId": {
"type": "string",
"minLength": 1,
"maxLength": 160,
"pattern": "^[A-Za-z0-9_.-]+$",
"description": "Exact case-sensitive Hadacart catalog product ID. Applied together with every other filter; an unknown ID or mismatch returns zero candidates without falling back to title search. Not a provider variant ID."
},
"optionQueryMode": {
"type": "string",
"enum": [
"terms",
"exact"
],
"description": "Requires optionQuery. Default terms is literal-token discovery. exact matches the entire case-sensitive recorded option name, including spaces and punctuation; no trimming, normalization or variant substitution. terms allows up to100characters; exact allows up to200characters."
},
"optionQuery": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Literal tokens must match the same captured option name. Requires sellerId and explicit currency. No product-price/unit ranking filters; revalidate exact option for budgets. Does not infer current stock."
},
"destinationCountry": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "Shipping destination; market denotes merchant grouping, not buyer country"
},
"destinationRegion": {
"type": "string"
}
},
"additionalProperties": false
}🟢get_product(productId)
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.
入力スキーマ
{
"type": "object",
"properties": {
"productId": {
"type": "string"
}
},
"required": [
"productId"
],
"additionalProperties": false
}コミュニティ
エビデンス