proxy-shopping: buy anywhere with crypto through a proxy shopper

io.github.pad01g由 GitHub 帳號 pad01g 發布v0.1.2更新於 Oct 24, 2026

Buy at cash-only or unsupported shops with BTC via a proxy shopper and 2-of-3 escrow, or earn as one

已驗證STDIO僅桌面金融商業與電商

概覽

AI 產生的概覽

讓助理透過代購者以 BTC 在只收現金或不支援的商店下單,款項由 2-of-3 託管保管,並管理這些訂單。

可以做什麼
  • 檢視網路、中繼、協調者與受信任的代購者×託管組合,並查詢錢包身分、地址與餘額
  • 依商店網址、地區與付款方式尋找報價組合,請求報價並核對其驗證結果,然後接受報價
  • 追蹤訂單狀態、時間軸與下一步,在付款前取消訂單,或檢舉代購者與託管方
  • 在明確確認後轉移資金:注資託管、確認收貨、提出爭議、聯簽裁決或退款、逾時後自行取回
  • 匯出錢包助記詞備份,並取得成為代購者的方案與註冊表檔案
適用情境
適合讓助理在只收現金或不支援你付款方式的商店安排購買,並具備託管與爭議處理;也適合評估是否要運行代購者節點。不適用於一般刷卡結帳或主流零售購物。
執行需求
以 stdio 在本機執行,通常使用 Docker 映像並在 /data 掛載磁碟區以保存金鑰與訂單(沒有 Docker 時需 Node 22)。選用環境變數:PS_NETWORK(ps-main 或 lab)、PS_DATA_DIR、PS_LAB_URL、PS_CONFIG_URL、PS_COORDINATORS。需要連線 Nostr 中繼與 BTC signet 鏈服務。
安裝前請注意
多個工具會轉移資金且需 confirm: true:fund_order、confirm_receipt、open_dispute、countersign_ruling、accept_refund_offer、refund_after_timelock。export_backup 會顯示 12 個單字的助記詞。資料目錄保存控制所有未結訂單託管的金鑰,須妥善保留並備份。提出爭議會把你的地址金鑰交給託管方。公共網路尚新,可能尚無受信任的代購者,且以無市場價值的 signet BTC 付款,該網路暫不支援 USDC。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 proxy-shopping: buy anywhere with crypto through a proxy shopper,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

proxy-shopping MCP server

An MCP server that lets an AI agent use the proxy-shopping P2P network as tools:

  • Buy from cash-only or unsupported shops with crypto through a proxy shopper, with a 2-of-3 escrow. You pay BTC into a per-order escrow (you, the shopper, an escrow); the shopper buys and ships; you release the payment when the items arrive. If something goes wrong the escrow rules a split, and after the T2 timelock you can take everything back alone.
  • Earn as a proxy shopper. A precise plan for running the always-online shopper node, and the registry entry for getting listed.

It runs next to the agent (stdio) as one participant with its own key. Protocol logic is @proxy-shopping/core, the same code the web app runs. The session stays up while the server runs, so quotes, shipping updates and rulings keep arriving and are stored in the data directory. Registry name: io.github.pad01g/proxy-shopping.

The public network ps-main is new. There may be no trusted shoppers yet (network_info says how many shopper × escrow combinations are trusted). Payments there are BTC on signet, a test network whose coins have no market value. USDC is not available on ps-main yet.

Run

Claude Code:

sh
claude mcp add proxy-shopping -- docker run -i --rm -v proxy-shopping-mcp:/data ghcr.io/pad01g/proxy-shopping-mcp:0.1.2

Other clients (mcp.json):

json
{  "mcpServers": {    "proxy-shopping": {      "command": "docker",      "args": ["run", "-i", "--rm", "-v", "proxy-shopping-mcp:/data", "ghcr.io/pad01g/proxy-shopping-mcp:0.1.2"]    }  }}

The volume at /data holds the key and the orders. Keep it: without it you lose the key that controls the escrow of every open order (back it up with export_backup). One data dir = one identity; use a separate volume per agent or per person.

The local docker compose lab (proxy-shopping-go, demo server on http://localhost:8888):

sh
claude mcp add proxy-shopping-lab -- docker run -i --rm --add-host=host.docker.internal:host-gateway \  -v proxy-shopping-mcp-lab:/data -e PS_NETWORK=lab -e PS_LAB_URL=http://host.docker.internal:8888 \  ghcr.io/pad01g/proxy-shopping-mcp:0.1.2

MCPB bundle (Claude Desktop and other MCPB clients: open the file to install; needs Node 22+): proxy-shopping-<version>.mcpb from the releases; build it with node packages/mcp/scripts/build-mcpb.mjs after npm run build -w @proxy-shopping/core. Agents installing the server: llms-install.md.

Without Docker (Node 22, from the repository root): npm ci && npm run build -w @proxy-shopping/core -w @proxy-shopping/mcp, then node packages/mcp/dist/server.js (bin proxy-shopping-mcp).

VariableDefaultMeaning
PS_NETWORKps-mainps-main: public Nostr relays (relay.damus.io, nos.lol, relay.primal.net), BTC signet via mempool.space, coordinators and signed trust events from the registry. lab: the compose lab through its demo server
PS_DATA_DIR~/.proxy-shopping-mcp (image: /data)the mnemonic (mnemonic, mode 0600, created on first run) and the state per network (state-<network>.json)
PS_LAB_URLhttp://localhost:8888lab only: the demo server (relays at /relay-1 /relay-2, /esplora, /evm, /faucet, /rates, /deployments/31337.json)
PS_CONFIG_URL / PS_CONFIG_FILEunseta web-app config.json (format of proxy-shopping-go/lab/web-config.json: relays, coordinators, esplora, evm_rpc, deployments_url, rates, timelock_policy, …) that overrides the preset
PS_COORDINATORSunsetcomma-separated coordinator pubkeys that replace the preset's trust roots

Tools

ToolWhat it does
network_infonetwork, relays, coordinators, chains, how many shopper × escrow combinations are trusted, an honest status
walletidentity pubkey, BTC signet address and balance (EVM/USDC where the network has it)
lab_faucetlab only: test BTC / USDC to this wallet, mine blocks
find_offerstrusted shopper × escrow combinations for a shop URL, region and payment, with fees, cash regions and provenance (coordinator → operator list)
request_quoteorder from one combination and wait for the quote; returns its validation: rate deviation from our own sources, the recomputed escrow address, the timelocks
get_order / list_ordersstatus, timeline and next steps; get_order can wait for a status
accept_quoteaccept a valid quote (a strong rate deviation needs acknowledge_rate_deviation)
fund_ordermoves money: pay the lock and the escrow upfront fee (confirm: true)
confirm_receiptmoves money: items received, sign the payout to the shopper (confirm: true)
open_disputeask the escrow to decide; hands it the evidence and the key to your address (confirm: true)
review_ruling / countersign_rulingcheck the escrow's split, then co-sign it (moves money, confirm: true)
accept_refund_offermoves money: co-sign the shopper's cooperative refund (confirm: true)
refund_after_timelockmoves money: after T2, take the funds back alone (confirm: true)
cancel_ordercancel before funding
reportreport the shopper or escrow to the operator that listed them
export_backupshow the 12-word mnemonic (confirm: true)
become_shopperthe plan for earning as a proxy shopper: requirements, fees, node config and compose file for ps-main, how to get listed
registry_entrythe exact file for a pull request to the registry, in its format: shoppers/<name>.json {pk, contact, description, regions (cash regions), payments, escrows}, escrows/<name>.json {pk, contact, description, sla_days}, operators/<name>.json {pk, contact, description, regions}, coordinators/<name>.json {pk, contact, description, url?, bundle?}

A purchase: network_info → wallet (fund it) → find_offers → request_quote → accept_quote → fund_order → (get_order until delivered) → confirm_receipt.

Every tool answers with a short text plus the same data as structured JSON.

Safety

  • Tools that move money or disclose secrets do nothing without confirm: true; without it they show what would happen (amounts, recipients, fees). An agent should show that to its human and ask before confirming.
  • A quote that fails validation (combination not trusted, escrow address that does not match our own computation, timelocks outside the policy, amounts that do not add up) cannot be accepted. A rate more than 10 % away from our own sources needs an explicit acknowledgement.
  • Payouts are signed only for the template the protocol allows (release to the shopper, a refund to you, a ruling that matches its split); completed / settled / refunded are reported only once the chain shows the payment.
  • The mnemonic never leaves the data dir except through export_backup. The delivery address is encrypted for the shopper; the escrow can read it only when you open a dispute.
  • Trust comes only from the coordinators you configure (network_info lists them and where they came from). Orders are only as good as the shoppers and escrows that operators list.

Test

sh
# from the repository root, in Docker (no host Node needed)docker run --rm -v "$PWD":/src -v ps-npm:/root/.npm -w /src node:22-bookworm \  sh -c "npm ci && npm run build -w @proxy-shopping/core && npm test -w @proxy-shopping/mcp"
# end to end against the running compose lab: a BTC order through MCP tool calls over stdiodocker run --rm --add-host=host.docker.internal:host-gateway -v "$PWD":/src -v ps-npm:/root/.npm -w /src/packages/mcp \  -e PS_LAB_URL=http://host.docker.internal:8888 node:22-bookworm npm run test:lab

The unit tests drive every tool through an MCP client against core's in-memory world (relays, chain, a scripted shopper and an escrow), and run the registry's own validator (proxy-shopping-registry/scripts/registry.ts validate) on the files registry_entry writes; they expect ../proxy-shopping-registry next to this repository (or PS_REGISTRY_DIR, or mounted at /proxy-shopping-registry; SKIP_REGISTRY=1 skips it). Add -v "$PWD/../proxy-shopping-registry":/proxy-shopping-registry:ro to the Docker command above.

來源:packages/mcp/README.md,提交 0185c47

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

3
  1. v0.1.2最新Sep 30, 2026
  2. v0.1.1Sep 30, 2026
  3. v0.1.0Sep 29, 2026

評分

已滿足適用檢查項的 50%

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

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分