Rozo Checkout

io.github.RozoAIv0.1.0更新於 Oct 4, 2026

Pay OpenRouter top-ups with USDC/USDT on 6 chains or BTC Lightning. Never holds funds.

已驗證Streamable HTTP可網頁執行FinanceBusiness & Commerce

概覽

AI 產生的概覽

讓助理為 OpenRouter 儲值連結詢價並建立一次性加密貨幣付款訂單,本身不持有資金。

功能
這是一個遠端 MCP 伺服器,協助代理使用使用者手上已有的幣種支付 OpenRouter 儲值的 Coinbase 付款連結。工具可列出支援的鏈與代幣、讀取連結報價(商家、金額、付款方實付金額、有效期、是否仍可付款)、建立一次性入金訂單並回傳入金地址或 BOLT11 閃電發票及精確金額、備註與到期時間,以及查詢付款狀態(含跨鏈與結算進度)。它不持有私鑰、不簽章、不送出任何交易,由使用者從自己的錢包付款。
適用情境
當使用者希望助理協助以 USDC、USDT 或閃電網路 BTC 完成 OpenRouter 儲值,並確認連結是否仍可付款、款項是否已結算時使用。日常呼叫 OpenRouter API 不需要安裝。
執行需求
遠端 streamable HTTP 端點;未宣告本機執行環境、套件、帳號、API 金鑰或標頭。用戶端連線至託管的 MCP 網址,可選擇加上 src 查詢參數作為渠道歸因。
安裝前請注意
它會建立真實付款訂單:create_deposit_order 會回傳入金地址或閃電發票,需由使用者從自己的錢包付款,付款前應確認金額與有效期。它不要求任何密鑰、不保存狀態,但會把付款連結與訂單資訊送往第三方端點(MPP Router 與 Rozo)。未入金的訂單會到期且不產生費用。

安裝

在 SourceWeft 中

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

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

其他 MCP 客戶端

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

{
  "mcpServers": {
    "checkout": {
      "type": "http",
      "url": "https://mcp.rozo.ai/mcp?src=registry"
    }
  }
}

README

rozo-checkout-mcp

A small remote MCP server that lets an AI agent help a user pay an OpenRouter top-up (a Coinbase payment link, payments.coinbase.com/payment-links/pl_* or payment-sessions/paymentSession_*) with the coin they already hold:

  • USDC or USDT on Solana, BNB Chain, Ethereum, Polygon
  • USDC on Base or Stellar
  • BTC over Lightning

It runs as a Cloudflare Worker and speaks MCP streamable HTTP at /mcp.

It never custodies funds

This server holds no private keys, signs nothing and sends nothing. It only:

  1. reads a quote for the Coinbase link,
  2. asks Rozo (through MPP Router) for a one-time deposit order, and
  3. reads order status.

The user pays from their own wallet. An order that is never funded expires and costs nothing. There are no secrets, no auth and no stored state; each request is handled statelessly.

Tools

ToolInputWhat it does
supported_coinsnoneStatic list of supported chains and tokens (mirrors the @rozoai/checkout CLI).
quote_invoice{ url }Merchant, invoice amount, what the payer pays, link expiry, and whether the link is still payable. Creates nothing.
create_deposit_order{ url, chainId, tokenSymbol }Creates a one-time deposit order; you pay from your own wallet. Returns the deposit address (or BOLT11 invoice for Lightning), the exact amount, any required memo, expiresAt and rozoPaymentId.
payment_status{ rozoPaymentId }Pay-in, bridging/payout progress, and whether the Coinbase invoice settled.

create_deposit_order applies the same guards as the CLI before it returns a deposit address: link payability (not used, not expired, v3 session still CREATED), an existing order must be payment_unpaid with no pay-in and the same coin, the address must not be on the compromised-address list, and at least 10 minutes must remain on both the order and the link.

Upstream endpoints (identical request shapes to the CLI, all keyless):

  • POST https://apiserver.mpprouter.dev/v1/services/rozo-agent-api/quote-invoice
  • POST https://apiserver.mpprouter.dev/v1/services/rozo-agent-api/create-invoice
  • GET https://apiserver.mpprouter.dev/v1/services/rozo-agent-api/invoice-status?rozo_payment_id=...
  • GET https://intentapiv4.rozo.ai/functions/v1/payment-api/payments/<uuid> (read-only)

Channel attribution: ?src=

Every create-invoice call carries

json
{ "client": "rozo-checkout-mcp/<version>",  "attribution": { "client": "rozo-checkout-mcp/<version>", "utm_source": "<src>" } }

<src> comes from the src query parameter of the MCP URL the client connected to. It is lowercased, limited to [a-z0-9._-] and 100 characters, and defaults to mcp. Give each channel its own URL so orders can be split by channel:

ChannelURL
Official MCP registryhttps://mcp.rozo.ai/mcp?src=registry
Docs / READMEhttps://mcp.rozo.ai/mcp?src=docs
A directory or partnerhttps://mcp.rozo.ai/mcp?src=<name>

Connect

Claude Desktop / Claude.ai

Settings, Connectors, Add custom connector, URL https://mcp.rozo.ai/mcp?src=claude.

For a local claude_desktop_config.json through the mcp-remote bridge:

json
{  "mcpServers": {    "rozo-checkout": {      "command": "npx",      "args": ["-y", "mcp-remote", "https://mcp.rozo.ai/mcp?src=claude-desktop"]    }  }}

Claude Code

bash
claude mcp add --transport http rozo-checkout "https://mcp.rozo.ai/mcp?src=claude-code"

Cursor

~/.cursor/mcp.json:

json
{ "mcpServers": { "rozo-checkout": { "url": "https://mcp.rozo.ai/mcp?src=cursor" } } }

MCP Inspector

bash
npx @modelcontextprotocol/inspector# Transport: Streamable HTTP, URL: http://127.0.0.1:8787/mcp?src=inspector (local) or the prod URL

Develop

bash
npm installnpm test            # vitestnpm run typechecknpx wrangler dev    # http://127.0.0.1:8787/healthz and /mcp

Raw handshake with curl:

bash
curl -s -X POST 'http://127.0.0.1:8787/mcp?src=dev' \  -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"0"}}}'curl -s -X POST 'http://127.0.0.1:8787/mcp?src=dev' \  -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \  -H 'MCP-Protocol-Version: 2025-06-18' \  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'

Deploy

Deployment and the mcp.rozo.ai custom domain need owner approval and are not automated here. wrangler.toml pins the Cloudflare account that owns the rozo.ai zone and keeps the custom domain route commented out until then.

MCP registry

server.json describes this server for the official MCP registry as io.github.RozoAI/checkout, with the remote https://mcp.rozo.ai/mcp?src=registry. Publishing under the ai.rozo namespace requires proving control of rozo.ai (DNS or HTTP verification with mcp-publisher).

來源:README.md,提交 b785b06

工具

0
工具後設資料尚未被收錄。

版本歷史

1
  1. v0.1.0最新Oct 4, 2026