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

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

本地服务
pad01g.github.io商业与营销04 周前更新

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

proxy-shopping 是连接点对点代购网络的 MCP 服务,可用加密货币向仅收现金或不支持直接购买的商店下单,也可帮助用户运营代购节点。订单通过 2-of-3 托管处理,状态保存在本地。

主要功能

  1. 01查找可信代购与托管方报价
  2. 02请求并验证订单报价
  3. 03跟踪订单与配送更新
  4. 04管理托管付款和争议
  5. 05获取代购节点配置及登记方案

适用场景

  1. 01向不接受加密货币的商店下单
  2. 02通过托管付款并确认收货
  3. 03处理争议或在时限后取回资金
  4. 04准备代购节点并提交登记

MCP 相关

向 MCP 客户端提供网络、钱包、报价、订单、托管及代购登记工具。涉及资金转移或披露密钥的操作需要明确确认。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"pad01g-proxy-shopping": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PS_NETWORK",
"-e",
"PS_DATA_DIR",
"-e",
"PS_LAB_URL",
"-e",
"PS_CONFIG_URL",
"ghcr.io/pad01g/proxy-shopping-mcp:0.1.2"
],
"env": {
"PS_NETWORK": "<PS_NETWORK>",
"PS_DATA_DIR": "<PS_DATA_DIR>",
"PS_LAB_URL": "<PS_LAB_URL>",
"PS_CONFIG_URL": "<PS_CONFIG_URL>"
}
}
}
}
启动命令docker run -i --rm -e PS_NETWORK -e PS_DATA_DIR -e PS_LAB_URL -e PS_CONFIG_URL ghcr.io/pad01g/proxy-shopping-mcp:0.1.2
需要配置的环境变量
PS_NETWORKps-main (the public network: Nostr relays, BTC signet) or lab (the local docker compose lab)
PS_DATA_DIRDirectory of the mnemonic and order state inside the container; mount a volume there
PS_LAB_URLLab only: the lab demo server as seen from the container
PS_CONFIG_URLOptional URL of a web-app config.json (relays, coordinators, chains) that overrides the network preset

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/pad01g/proxy-shopping-mcp:0.1.2

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

proxy-shopping MCP 服务

一个 MCP 服务,让 AI Agent 能够将 proxy-shopping P2P 网络用作工具:

  • 通过代理代购者,使用加密货币从仅收现金或不支持的商店购物,并使用 2-of-3 托管。 你将 BTC 存入每笔订单专用的托管账户(由你、代购者和托管方共同控制);代购者购买并发货;商品送达后,你释放 款项。如果出现问题,托管方将裁定如何分配款项;T2 时间锁到期后,你可以单独取回全部款项。
  • 成为代理代购者赚取收入。 提供一份详尽的计划,指导你运行始终在线的代购者节点,并提供用于登记上榜的 注册表条目。

它作为一个参与方与 Agent 并行运行(stdio),并拥有自己的密钥。协议逻辑由 @proxy-shopping/core 提供,与 Web 应用运行的代码相同。服务运行期间,会话将保持连接,因此报价、物流更新和裁定会持续到达,并存储在数据目录中。注册表名称:io.github.pad01g/proxy-shopping。

公共网络 ps-main 尚处于起步阶段。 目前可能还没有可信的代购者(network_info 会显示可信的代购者 × 托管方组合数量)。该网络上的付款使用 BTC,并基于signet(一个没有市场价值的测试网络)。ps-main 暂不支持 USDC。

运行

Claude Code:

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

其他客户端(mcp.json):

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

/data 上的卷保存密钥和订单。请妥善保留:没有它,你会丢失控制所有未完成订单托管款项的密钥(使用 export_backup 进行备份)。每个数据目录对应一个身份;每个 Agent 或每个人都应使用单独的卷。

本地 Docker Compose 实验环境(proxy-shopping-go,演示服务地址为 http://localhost:8888):

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 软件包(适用于 Claude Desktop 和其他 MCPB 客户端:打开文件即可安装;需要 Node 22+):从发布页获取 proxy-shopping-<version>.mcpb;运行 npm run build -w @proxy-shopping/core 后,通过 node packages/mcp/scripts/build-mcpb.mjs 构建。安装此服务的 Agent 请参阅:llms-install.md。

不使用 Docker(Node 22,在仓库根目录运行):npm ci && npm run build -w @proxy-shopping/core -w @proxy-shopping/mcp,然后运行 node packages/mcp/dist/server.js(可执行文件 proxy-shopping-mcp)。

变量默认值含义
PS_NETWORKps-mainps-main:公共 Nostr 中继(relay.damus.io、nos.lol、relay.primal.net),通过 mempool.space 使用 BTC signet;协调器和签名信任事件来自注册表。lab:通过演示服务连接 Compose 实验环境
PS_DATA_DIR~/.proxy-shopping-mcp(镜像:/data)助记词(mnemonic,权限模式 0600,首次运行时创建)和各网络的状态(state-<network>.json)
PS_LAB_URLhttp://localhost:8888仅限实验环境:演示服务(中继位于 /relay-1、/relay-2,以及 /esplora、/evm、/faucet、/rates、/deployments/31337.json)
PS_CONFIG_URL / PS_CONFIG_FILE未设置Web 应用的 config.json(格式同 proxy-shopping-go/lab/web-config.json:relays、coordinators、esplora、evm_rpc、deployments_url、rates、timelock_policy、……),用于覆盖预设配置
PS_COORDINATORS未设置以逗号分隔的协调器公钥,用于替换预设的信任根

工具

工具功能
network_info网络、中继、协调方、链、受信任的购物者 × 托管方组合数量,以及如实的状态
wallet身份公钥、BTC signet 地址和余额(网络支持时显示 EVM/USDC)
lab_faucet仅限实验环境:向此钱包提供测试 BTC / USDC、挖矿区块
find_offers针对商店 URL、地区和支付方式的受信任购物者 × 托管方组合,包含费用、现金地区和来源(协调方 → 运营方列表)
request_quote从一个组合下单并等待报价;返回其验证信息:与我们自己的来源相比的汇率偏差、重新计算的托管地址、时间锁
get_order / list_orders状态、时间线和后续步骤;get_order 可以等待某个状态
accept_quote接受有效报价(汇率偏差较大时需要 acknowledge_rate_deviation)
fund_order转移资金:支付锁定款项和托管预付费(confirm: true)
confirm_receipt转移资金:确认收到商品,并签署向购物者付款的交易(confirm: true)
open_dispute请求托管方作出裁决;向其提供证据和访问你地址的密钥(confirm: true)
review_ruling / countersign_ruling检查托管方的资金分配方案,然后共同签署(转移资金,confirm: true)
accept_refund_offer转移资金:共同签署购物者提出的协商退款(confirm: true)
refund_after_timelock转移资金:T2 之后,独自取回资金(confirm: true)
cancel_order在付款前取消
report向将购物者或托管方列入名单的运营方举报
export_backup显示 12 个单词的助记词(confirm: true)
become_shopper作为代理购物者赚取收入的方案:要求、费用、节点配置和 ps-main 的 compose 文件,以及如何加入名单
registry_entry用于向 注册表 提交拉取请求的确切文件,格式如下: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?}

一次购买:network_info → wallet(为其充值)→ find_offers → request_quote → accept_quote → fund_order →(使用 get_order 直到状态为 delivered)→ confirm_receipt。

每个工具都会返回简短文本,以及相同数据的结构化 JSON。

安全

  • 未提供 confirm: true 时,转移资金或披露机密的工具不会执行任何操作;它们会显示将要发生的情况(金额、收款方、费用)。Agent 应向用户展示这些信息,并在确认前征求同意。
  • 验证失败的报价(组合不受信任、托管地址与我们自行计算的结果不符、时间锁超出策略范围、金额不相符)无法接受。汇率与我们自己的来源相差超过 10 % 时,需要明确确认。
  • 付款签名仅适用于协议允许的模板(向购物者放款、退款给你、符合其资金分配方案的裁决);只有链上显示付款后,才会报告为 completed / settled / refunded。
  • 助记词不会离开数据目录,除非通过 export_backup 导出。收货地址会加密后提供给购物者;只有在你发起争议时,托管方才能读取该地址。
  • 信任仅来自你配置的协调方(network_info 会列出它们及其来源)。订单的可靠性取决于运营方列入名单的购物者和托管方。

测试

# 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 stdio
docker 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

单元测试通过 MCP 客户端,针对 core 的内存世界(中继、链、脚本化购物者和托管服务)驱动每个工具,并对 registry_entry 写入的文件运行 registry 自带的验证器(proxy-shopping-registry/scripts/registry.ts validate);测试预期 ../proxy-shopping-registry 位于此仓库旁边(或通过 PS_REGISTRY_DIR 指定,或挂载到 /proxy-shopping-registry;设置 SKIP_REGISTRY=1 可跳过验证)。将 -v "$PWD/../proxy-shopping-registry":/proxy-shopping-registry:ro 添加到上方的 Docker 命令中。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。