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 分