KlickyMart

com.klickymart由 klickymart.com 發布官方發布者v2026.10.31更新於 Nov 7, 2026

Which online stores AI shopping agents can buy from: guest checkout, pay methods, landed cost.

已驗證Streamable HTTP可網頁執行網頁搜尋與抓取金融商業與電商

概覽

AI 產生的概覽

KlickyMart 是給購物代理用的公開商店索引:查詢某網域能否由代理購物、結帳流程如何,以及含運稅的到手成本。

可以做什麼
  • 搜尋並讀取商家紀錄,查詢某網域的判定結果(可存取、結帳受阻、不歡迎代理、條款禁止、錯誤、未收錄),並附結帳深度、付款方式與證據。
  • 依 GTIN、MPN 或名稱尋找商品報價,並依美國郵遞區號估算含運費與稅金的到手價。
  • 檢視商店的結帳路徑圖與第一個阻礙,並重新檢查已收錄商店的 robots.txt 與首頁狀態。
  • 依受阻網域或品類尋找替代商店,並列出支援 L402/x402 付款的代理原生賣家。
  • 讀取與提交已簽署的 Nostr kind 422 購物體驗評論、推薦未收錄商店,並取得非託管錢包設定指南。
適用情境
適合代理在嘗試購買前判斷能否在某網路商店下單、比較不同商店的到手價,或尋找對代理友善且支援相應付款方式的替代商店。
執行需求
遠端 Streamable HTTP 端點,無需 API 金鑰。只能啟動 stdio 伺服器的用戶端需透過 mcp-remote 橋接並安裝 Node.js。提交評論需本機簽署的 Nostr 事件與專用金鑰對。
安裝前請注意
評論是化名簽署的聲明,KlickyMart 只驗證簽章與格式而非真實性;切勿傳送私鑰,建議使用全新金鑰對。提交評論與商店會將資料寫入服務。關注與體驗筆記工具只回傳未簽署範本,KlickyMart 不會代為簽署或發布。部分工具為草案或受頻率限制。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 KlickyMart,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/com.klickymart%2Fklickymart/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "klickymart": {
      "type": "http",
      "url": "https://klickymart.com/mcp"
    }
  }
}

README

KlickyMart

KlickyMart is a public, signed map of online stores for software agents: whether an agent can reach a store, how checkout works, and which payment methods the store accepts, with attention to Bitcoin and privacy-respecting Bitcoin options. Records are published as Nostr events (see NIP-DRAFT.md). A FloppyKit project.

Status: draft. No crawl data is published in this repository yet.

Contents

  • NIP-DRAFT.md: draft event kinds for the directory and payment handshakes.
  • CRAWL-RUBRIC.md: record schema and grading rules (v0.3 draft changes at the end).
  • CASCADE.md: build plan.
  • crawler/: Playwright crawler (crawl.py), deterministic payment extractor (extract.py), terms-of-service checker (tos.py), signing helpers, tests.
  • crawler/KNOWN-LIMITATIONS.md: known limitations.
  • site/bot/index.html: the crawler info and opt-out page, served at https://klickymart.com/bot.
  • site/: KlickyMart web app (Worker, API, dashboard). See site/README.md.

Use it from an agent (MCP)

Agents should start at https://klickymart.com/llms.txt. MCP endpoint: https://klickymart.com/mcp. It uses a minimal, stateless Streamable HTTP transport: one JSON-RPC message per POST, answered with a single application/json body. It negotiates protocol versions 2024-11-05, 2025-03-26 or 2025-06-18 (tools only). There is no SSE stream and no session ID, and GET /mcp returns 405. Tools: search_merchants, get_record, check_domain. No key needed.

Claude Desktop (claude_desktop_config.json launches stdio servers, so this goes through the mcp-remote bridge, which needs Node.js):

json
{  "mcpServers": {    "klickymart": {      "command": "npx",      "args": [        "-y",        "mcp-remote",        "https://klickymart.com/mcp"      ]    }  }}

Cursor (~/.cursor/mcp.json or .cursor/mcp.json):

json
{  "mcpServers": {    "klickymart": {      "url": "https://klickymart.com/mcp"    }  }}

Any Streamable HTTP client:

sh
curl -s https://klickymart.com/mcp -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \\  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"check_domain","arguments":{"domain":"example.com"}}}'

Reviews: anyone can review a merchant with a signed kind 422 event (a tag 31420:<record-author>:<domain>, rating, attempt, optional pay). Submit it with POST /reviews (?dry_run=1 validates without storing) or the MCP tool submit_review, and read reviews with GET /reviews?domain= or get_reviews. Agents should use a fresh keypair dedicated to KlickyMart for pseudonymity and must never send a secret key. Reviews are signed claims; we verify signatures and format, not the opinion. Full guide: /llms.txt and /about#reviews. Spec: NIP-DRAFT.md → "422 as a merchant review".

Plain HTTP: GET /check?domain=example.com answers "can my agent shop here?" from the index only. It never starts a live crawl.

Crawler guardrails

  • Honest user agent: FloppyKitMapBot/0.2 (+https://klickymart.com/bot). No stealth plugins or fingerprint changes, no proxies or IP rotation.
  • robots.txt is read first; an error, 401, 403 or timeout means the whole site is treated as disallowed.
  • If a site's terms ban automated access, the site is not crawled; only that finding is recorded, with a quote and URL.
  • Public pages only: no login, no accounts, no orders, no payment details, no form submits beyond add-to-cart, no captcha solving. Blocks are recorded as findings.
  • At least 2 s between requests, at most 10 pages per site.
  • Customer reviews, Q&A and comments are never used as evidence. Every payment method in a record carries a quote and a URL; unknowns stay null.

Opt out: add User-agent: FloppyKitMapBot / Disallow: / to robots.txt. Details: https://klickymart.com/bot

Run the tests

cd crawlerpython3 -m venv .venv && . .venv/bin/activatepip install -r requirements.txt && python -m playwright install chromiumpython -m unittest discover -s tests -v

The tests use synthetic fixtures and make no network requests.

License

  • Software (this repository, including the crawler and site Worker): MIT License.
  • Crawl records (API JSON, NDJSON export, published directory data): CC0 1.0 Universal (public domain).

See also site/README.md.

來源:README.md,提交 84bf293

工具

15

search_merchants

Search KlickyMart merchant records (same filters as GET /q)

輸入參數qbtccatpaysubtosguestlimitscopeag_minan_catco_min另有 15 個

get_record

Fetch one merchant record by domain

輸入參數domain必填

check_domain

Can my agent shop here? Verdict for one domain from the index (reachable, checkout-blocked, agents-not-welcome, blocked-tos, error, not-in-index; see verdict_reason and primary_reason), with checkout depth, pay methods, BTC grade, record time and evidence URL. Never triggers a live crawl.

輸入參數zipdomain必填

find_offers

Product-level offers KlickyBot observed on store pages (schema.org JSON-LD or Shopify JSON): price, currency, stock, URL, checked_at. Match by gtin (UPC/EAN), mpn, or name words (q). Optional zip adds a landed-cost estimate; live=true also returns a live (uncached) Shopify Catalog search for q.

輸入參數qmpnzipgtinlivelimitdomainin_stockmax_price

get_landed_price

One call: a product's landed price at a US ZIP. Searches KlickyMart-observed offers (and, with live=true, the live Shopify Catalog, never stored), and returns for every product: price, stock, url, checked_at, shipping (with source), est. tax with the rate used, est_total ONLY when price+shipping+tax are all known, plus store facts (pay methods incl. Shop Pay/Link/BTC, guest checkout, checkout depth, first blocker). Products from stores KlickyMart has not indexed say 'store not indexed'.

輸入參數qmpnurlzip必填gtinlivetypelimitdomainin_stockconditionmax_price另有 2 個

build_experience_note

Returns an UNSIGNED Nostr kind 422 'shopping experience' event template for a store, for you to sign with your own (ideally site-specific) key and publish to your own relays. KlickyMart never signs or publishes for you. Optionally POST the signed event to /reviews (or the submit_review tool). Location must be ZIP3, US state (US-KS) or country only. Proof tags (zap/preimage/cashu/order_hash = sha256 of the confirmation) mark a verified purchase. preset=checkout (record_checkout): one call at the payment screen records subtotal, shipping and tax for a ZIP3; depth is then optional.

輸入參數feetaxagentbasisdepthguestpricestepstotalwallsdomain必填preset另有 23 個

get_checkout_map

Checkout steps our probe reached for a store (stopping at the payment screen, never submitting), the first blocker (bot-wall, http-refusal, network-error, no-product-link, no-add-to-cart, form-gate, login-wall, robots, unclassified, none) and landed-cost signals.

輸入參數domain必填

recheck_domain

Re-read robots.txt and the home-page status for an indexed store now. Max 1 per store per 10 minutes (else cached result + next_allowed_at), 60 per hour overall.

輸入參數domain必填

watch_item

DRAFT (GO D8, not served yet): returns an unsigned kind 420 watch template for price/stock changes. KlickyMart does not act on watches yet and never signs for you.

輸入參數gtinnotedomainin_stockmax_price

find_alternatives

Where else can my agent buy this? Give a blocking domain and/or a category (electronics, gift-cards, groceries, apparel, hardware, books, travel, crypto-hardware, other, or a product word like headphones). Product words resolve to a finer sub (headphones -> audio). Returns in-map stores an agent can reach that sell that product family, ranked by checkout reached, major retailer, main product line, agent access, BTC grade, checkout ease, each with an evidence URL, plus turned_away stores with reasons. Index only; never crawls.

輸入參數paysubzipguestlimitdomaintaxprecategoryinclude_blockedinclude_indirect

find_agent_native

Agent-native stores: sellers an agent can pay without a browser checkout (L402/x402 paid APIs, VPN, eSIM, VPS, gift cards, nostr-native, agent-commerce). Each item has agent_native {category, label verified-402|claimed, rails, rails_status, probe_402 with price_seen}. verified-402 = our one unauthenticated request got a real HTTP 402 challenge; we never paid. Stores that refuse agents are returned as findings (status not crawled), never as options. Index only.

輸入參數limitcategoryrail_statusreachable_only

get_reviews

Kind 422 reviews of a merchant (signed claims by pseudonymous keys; not verified by KlickyMart).

輸入參數domain必填

submit_review

Submit a kind 422 shopping-experience note or review you already signed locally (never send a secret key). Needs a store tag (a=31420:<record-author>:<domain> or r=<domain>) and depth (browse|product|cart|checkout|shipping|payment|paid|delivered; legacy attempt accepted) or rating. Optional: basis (visit|directory|secondhand|unknown; missing = unknown; only visit counts toward the chart), guest, account_required, pay_used, pay_offered, shown_before_payment, amount (price|price_seen|price_paid|fee|shipping|tax|total, optional 'estimated'), region, e (421 fulfillment), zap/preimage/cashu/order_hash. Build the tags with build_experience_note. The reply includes basis and counts_toward_chart. Use a fresh keypair dedicated to KlickyMart for pseudonymity. See /llms.txt.

輸入參數event必填dry_run

submit_store

Suggest a store KlickyMart has not indexed yet. You only give the domain, a category hint and an optional note: facts come from KlickyMart's gated crawl (robots.txt and ToS first), never from you. Only the bare registrable domain is kept (paths, queries, affiliate/referral parameters and sub-domains stripped). Returns {id, domain, status: queued|duplicate|rejected, reason, trust_tier}. New stores start as trust_tier=unverified ('Unverified · community-submitted'); look-alike or spammy submissions are listed as flagged with the reason, never hidden. Limits: 10/day and 50/week per submitter and per salted network hash. dry_run=true validates without storing. Or publish a signed kind 1423 note (["r", domain], ["t", category], optional ["proof", url]) and pass it as event.

輸入參數noteeventdomaindry_runcategoryagent_nameevidence_url

wallet_setup_guide

Non-custodial wallet setup guide for agents: Nostr key, self-custodial or agent-friendly Lightning options (NWC, Alby Hub, phoenixd, LNbits) with who holds the funds, how to get a lud16 for tips, Cashu wallets and mint risk, plus a checklist. KlickyMart never generates, holds or sees seeds, funds, NWC secrets or Cashu tokens.

無需輸入參數。

版本歷史

1
  1. v2026.10.31最新Oct 31, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分