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