Skip to content

KlickyMart

com.klickymart/klickymartklickymart.comstreamable-httpv2026.10.31Scanned

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

15 tools: 7 change things and 8 only read.

Tools: 0 delete, 0 irreversible, 7 write, 8 read.
  • Reads private data · 1
  • Reads text others write · 5
  • Can send data out · 1
  • No findings

Anlyon alternative

7 of these tools change something. Run those as governed actions.

Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.

Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.

Import an OpenAPI spec →

Tools

Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.

15 tools

Changes things 7Claude Code: ask
  • check_domainCan my agent shop here?No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    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.
  • get_checkout_mapCheckout 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-t…Reads text others writeNo findings

    Why it is in this group

    • The name "get_checkout_map" says "get": a word for reading.
    • The description's first verb is "checkout": a word for a change.

    What it can reach

    • untrusted-inputThe description's first sentence says "checkout" and "http": it reads web pages, which anyone can write.
    Description, as the server wrote it
    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.
  • recheck_domainRe-read robots.txt and the home-page status for an indexed store now.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    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.
  • submit_reviewSubmit a kind 422 shopping-experience note or review you already signed locally (never send a secret key).No findings

    Why it is in this group

    • The name "submit_review" says "submit": a word for a change.
    Description, as the server wrote it
    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.
  • submit_storeSuggest a store KlickyMart has not indexed yet.No findings

    Why it is in this group

    • The name "submit_store" says "submit": a word for a change.
    Description, as the server wrote it
    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.
  • wallet_setup_guideNon-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 …No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    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.
  • watch_itemDRAFT (GO D8, not served yet): returns an unsigned kind 420 watch template for price/stock changes.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    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.
Only reads 8Show 8 read-only tools
  • build_experience_noteReturns 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.Reads private dataNo findings

    Why it is in this group

    • The description's first verb is "return": a word for reading.

    What it can reach

    • private-dataThe name "build_experience_note" says "note": it reads notes.
    Description, as the server wrote it
    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.
  • find_agent_nativeAgent-native stores: sellers an agent can pay without a browser checkout (L402/x402 paid APIs, VPN, eSIM, VPS, gift cards, nostr-native, agent-commerce).Reads text others writeNo findings

    Why it is in this group

    • The name "find_agent_native" says "find": a word for reading.

    What it can reach

    • untrusted-inputThe description's first sentence says "browser": it reads web pages, which anyone can write.
    Description, as the server wrote it
    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.
  • find_alternativesWhere else can my agent buy this?No findings

    Why it is in this group

    • The name "find_alternatives" says "find": a word for reading.
    Description, as the server wrote it
    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.
  • find_offersProduct-level offers KlickyBot observed on store pages (schema.org JSON-LD or Shopify JSON): price, currency, stock, URL, checked_at.Reads text others writeNo findings

    Why it is in this group

    • The name "find_offers" says "find": a word for reading.

    What it can reach

    • untrusted-inputThe description's first sentence says "url": it reads web pages, which anyone can write.
    Description, as the server wrote it
    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.
  • get_landed_priceOne call: a product's landed price at a US ZIP.Reads text others writeCan send data outNo findings

    Why it is in this group

    • The name "get_landed_price" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe input takes a URL (input.url), and the tool reads it: it reads web pages, which anyone can write.
    • outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.

    Claude Code: ask, because it is tagged outbound.

    Description, as the server wrote it
    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'.
  • get_recordFetch one merchant record by domainNo findings

    Why it is in this group

    • The name "get_record" says "get": a word for reading.
    Description, as the server wrote it
    Fetch one merchant record by domain
  • get_reviewsKind 422 reviews of a merchant (signed claims by pseudonymous keys; not verified by KlickyMart).Reads text others writeNo findings

    Why it is in this group

    • The name "get_reviews" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe name "get_reviews" says "get" and "review": it reads comments, which other people can write.
    • untrusted-inputThe description's first sentence says "review": it reads comments, which other people can write.
    Description, as the server wrote it
    Kind 422 reviews of a merchant (signed claims by pseudonymous keys; not verified by KlickyMart).
  • search_merchantsSearch KlickyMart merchant records (same filters as GET /q)No findings

    Why it is in this group

    • The name "search_merchants" says "search": a word for reading.
    Description, as the server wrote it
    Search KlickyMart merchant records (same filters as GET /q)

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

5 paths in this server alone from private data, through text someone else wrote, to a way out. Denying 1 outbound tool breaks every one.

Reads private data1
Reads files, mail, messages, databases, secrets, calendars or repositories.
Reads text others write5
Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
Can send data out1
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
deny to break every path
{
  "permissions": {
    "deny": [
      "mcp__klickymart__get_landed_price"
    ]
  }
}

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Findings

Matches of fixed checks, with the text they matched.

No check matched anything in these tool definitions. That is not a safety guarantee.

History

Changes to its tool definitions and to its remote endpoint, newest first.

No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.

Install

Pinned to version 2026.10.31. Values in angle brackets are yours to fill in.

claude mcp add --transport http klickymart https://klickymart.com/mcp
claude mcp add --transport http klickymart https://klickymart.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__klickymart__search_merchants",
      "mcp__klickymart__get_record",
      "mcp__klickymart__find_offers",
      "mcp__klickymart__build_experience_note",
      "mcp__klickymart__find_alternatives",
      "mcp__klickymart__find_agent_native",
      "mcp__klickymart__get_reviews"
    ],
    "ask": [
      "mcp__klickymart__check_domain",
      "mcp__klickymart__get_landed_price",
      "mcp__klickymart__get_checkout_map",
      "mcp__klickymart__recheck_domain",
      "mcp__klickymart__watch_item",
      "mcp__klickymart__submit_review",
      "mcp__klickymart__submit_store",
      "mcp__klickymart__wallet_setup_guide"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as klickymart. Review it before you use it.

Capability tags behind 6 rules
  • mcp__klickymart__find_offers untrusted-input
  • mcp__klickymart__get_landed_price untrusted-input, outbound
  • mcp__klickymart__build_experience_note private-data
  • mcp__klickymart__get_checkout_map untrusted-input
  • mcp__klickymart__find_agent_native untrusted-input
  • mcp__klickymart__get_reviews untrusted-input

Pin

Keep the decision: fail CI when the tools change, follow every change, or show a badge.

Pin in CI

Fail a build when the tools you reviewed are not the tools the server serves today.

curl -s "https://anlyon.dev/api/v1/servers/com.klickymart/klickymart/verify?hash=98029d6679725ed6cb8a8e8c8af896c70f272af26183315304a388c19dd4d922" | jq -e '.changed == false'

Pinned hash 98029d667972, from Oct 31, 2026, 13:18 UTC.

Watch

Get told when its tools change: a new tool, a new description, a new class.

https://anlyon.dev/servers/com.klickymart/klickymart/changes.xml

An Atom feed. Works in any feed reader or Slack's RSS app.

Badge

anlyon.dev badge for com.klickymart/klickymart
[![anlyon.dev](https://anlyon.dev/badge/com.klickymart/klickymart.svg)](https://anlyon.dev/servers/com.klickymart/klickymart)

Source: MCP Registry · repository. Synced Oct 31, 2026, 13:17 UTC.