# Rozo Checkout (remote · mcp.rozo.ai)

Pay OpenRouter and Coinbase payment links with USDC, USDT, ETH, BNB, POL, SOL or BTC Lightning.

- Trust score: 83/100 (high trust)
- Change this week: +2
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `mcp.rozo.ai`: 83/100 (this document), [markdown](https://verifymcp.io/servers/rozoai-checkout/mcp.md), [page](https://verifymcp.io/servers/rozoai-checkout/mcp)

## Channel facts

- Endpoint: `https://mcp.rozo.ai/mcp?src=registry`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.2.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 74/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 62/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2906 tokens (~290/item across 10 items; 10 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 100/100
  - No destabilizing schema changes in the last 30 days.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 10 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 11 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Rozo Checkout MCP server?

Rozo Checkout is a hosted endpoint at https://mcp.rozo.ai/mcp?src=registry, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http rozoai-checkout 'https://mcp.rozo.ai/mcp?src=registry'
```

### Cursor

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

### VS Code

```json
{
  "servers": {
    "rozoai-checkout": {
      "type": "http",
      "url": "https://mcp.rozo.ai/mcp?src=registry"
    }
  }
}
```

### Codex

```toml
[mcp_servers.rozoai-checkout]
url = "https://mcp.rozo.ai/mcp?src=registry"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "rozoai-checkout": {
      "type": "remote",
      "url": "https://mcp.rozo.ai/mcp?src=registry",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add rozoai-checkout --url 'https://mcp.rozo.ai/mcp?src=registry' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  rozoai-checkout:
    url: "https://mcp.rozo.ai/mcp?src=registry"
```

### Netclaw

```json
{
  "McpServers": {
    "rozoai-checkout": {
      "Transport": "http",
      "Url": "https://mcp.rozo.ai/mcp?src=registry"
    }
  }
}
```

### Vellum

```bash
assistant mcp add rozoai-checkout -t streamable-http -u 'https://mcp.rozo.ai/mcp?src=registry'
```

### Other

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

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 83, +1)

- [security] Stability: 0.97 → pass

### 2026-11-04 (score 82, −1)

- [functional] Stability: pass → 0.97

### 2026-11-03 (score 83, +1)

- [security] Stability: 0.97 → pass

### 2026-11-01 (score 82, +1)

No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-30 (score 81, 0)

- [security] Tool “payment_status” rewrote its description, which is the text the model reads
- [security] Tool “quote_invoice” rewrote its description, which is the text the model reads
- [security] Tool “supported_coins” rewrote its description, which is the text the model reads
- [cosmetic] “create_deposit_order” reworded the description of “url”
- [cosmetic] “quote_invoice” reworded the description of “url”
- [cosmetic] Tool “quote_invoice” changed its title: Quote a Coinbase invoice → Quote an AI service invoice

### 2026-10-29 (score 81, +1)

No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-27 (score 80, +1)

No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-25 (score 79, +1)

No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (10)

### `supported_coins` (~254 tokens)

Supported coins

Answers which cryptocurrencies and chains can pay an OpenRouter credit top-up or another AI service invoice through Rozo Checkout: USDC and USDT on Ethereum, BNB Chain, Polygon, Arbitrum and Solana; USDC on Base and Stellar; native ETH (Ethereum, Base, Arbitrum), BNB, POL and SOL; BTC over Lightning. Returns each chain id, token symbol and token decimals. Static list, needs no payment link and makes no network call; quote_invoice reports which of these a specific invoice accepts. Native coins (ETH on Ethereum, Base, Arbitrum; BNB on BNB Chain; POL on Polygon; SOL on Solana) are exact-out like Lightning: the order states the exact coin amount, priced at the current rate plus an FX spread on top of the service fee, and that price holds only until quoteExpiresAt. Native orders are capped at $3500 per invoice (native ETH on Ethereum needs at least $1), and a native coin is offered only when quote_invoice lists it for that invoice. ZEC on Zcash (Beta) is not available through this server: send a payer holding ZEC to https://checkout.rozo.ai/zec.

### `quote_invoice` (~182 tokens)

Quote an AI service invoice

Answers what a specific OpenRouter top-up or other AI service invoice charges, whether it can still be paid through Rozo Checkout, and which coins can pay it. Takes the payment link URL and returns the merchant, invoice amount, callerPays (the USD amount the invoice charges), the link expiry, payability and supportedSources: the coins THIS invoice can be paid with. The exact amount to send in a given coin, including the service fee, bridge and network fees, or the FX spread on a native coin, comes from create_deposit_order. Offer a native coin (ETH, BNB, POL, SOL) only when it appears in supportedSources. Creates nothing and moves no funds.

Input parameters:

- `url` (string, required): Payment link: https://payments.coinbase.com/payment-links/pl_... or https://payments.coinbase.com/payment-sessions/paymentSession_...

### `create_deposit_order` (~454 tokens)

Create a deposit order

Creates a one-time deposit order; you pay from your own wallet. Returns the deposit address (or Lightning invoice), the exact amount to send (also in base units with the token decimals), any required memo, the expiry and the rozoPaymentId. This server holds no keys and sends nothing. Send exactly the amount, on exactly that chain and token, before expiresAt. An unfunded order simply expires at no cost. For a native coin the result also carries quoteExpiresAt (the end of the price lock, which expiresAt equals): send the exact coin amount before it. Native coins (ETH on Ethereum, Base, Arbitrum; BNB on BNB Chain; POL on Polygon; SOL on Solana) are exact-out like Lightning: the order states the exact coin amount, priced at the current rate plus an FX spread on top of the service fee, and that price holds only until quoteExpiresAt. Native orders are capped at $3500 per invoice (native ETH on Ethereum needs at least $1), and a native coin is offered only when quote_invoice lists it for that invoice. ZEC on Zcash (Beta) is not available through this server: send a payer holding ZEC to https://checkout.rozo.ai/zec.

Input parameters:

- `chainId` (string, required): Source chain id from supported_coins: "1" Ethereum, "56" BNB Chain, "137" Polygon, "42161" Arbitrum, "900" Solana, "8453" Base, "1500" Stellar, "lightning".
- `email` (string): Optional contact email so ROZO can reach the payer if the payment needs attention. Ask the user once if they are present; never required, omit it if they decline.
- `tokenSymbol` (string, required): Token you will pay with: USDC, USDT, BTC (Lightning), or the chain native coin ETH (1, 8453, 42161), BNB (56), POL (137), SOL (900).
- `url` (string, required): Payment link: https://payments.coinbase.com/payment-links/pl_... or https://payments.coinbase.com/payment-sessions/paymentSession_...

### `payment_status` (~62 tokens)

Payment status

Check a Rozo order by rozoPaymentId: whether the deposit arrived, bridging/payout progress, and whether the OpenRouter or other AI service invoice settled. Read-only.

Input parameters:

- `rozoPaymentId` (string, required): Order UUID returned by create_deposit_order.

### `funding_capabilities` (~176 tokens)

Stellar wallet funding capabilities

What the keyless ROZO Funding API supports right now: whether stellar_onboarding is on, the source chains and USDC assets, the Stellar USDC output, the usdGas options (XLM amounts) and per-order limits. Read-only, creates nothing. Fees come from the quote (fees and totals): never assume a fee. The receiving Stellar address signs ONE transaction (only when it is new or has no USDC trustline). The one-time deposit address is the same on Base, Ethereum, Arbitrum and Polygon; USDC or USDT is accepted 1:1. Follow deposit.amountPolicy: exact or missing means pay the EXACT deposit amount; any_amount uses the suggested amount and returned min/max bounds. Pay once, before payBefore. This server never holds keys: your own wallet pays and signs.

### `stellar_wallet_quote` (~385 tokens)

Quote: fund a Stellar wallet

Price sending USDC/USDT from Base, Ethereum, Arbitrum or Polygon to USDC on a Stellar address. If the address is new or has no USDC trustline, the same plan opens the account, adds the trustline and (with usdGas) gives XLM, in one transaction the address signs once. Returns quoteId and planDigest (needed by stellar_wallet_create_order), the USDC and XLM amounts the receiver gets, every fee line and totals, and whether a signature will be needed. Valid about 10 minutes. Read-only: no deposit address, nothing reserved. usdGas: "0" no XLM, "0.5" or "1" buys XLM (see funding_capabilities for amounts); omitted = the server default. Fees come from the quote (fees and totals): never assume a fee. The receiving Stellar address signs ONE transaction (only when it is new or has no USDC trustline). The one-time deposit address is the same on Base, Ethereum, Arbitrum and Polygon; USDC or USDT is accepted 1:1. Follow deposit.amountPolicy: exact or missing means pay the EXACT deposit amount; any_amount uses the suggested amount and returned min/max bounds. Pay once, before payBefore. This server never holds keys: your own wallet pays and signs.

Input parameters:

- `amountUsd` (string, required): Amount you will send, as a decimal string in USD, e.g. "10" or "10.50". Limits come from funding_capabilities (1 to 1000 today).
- `receiverAddress` (string, required): Stellar PUBLIC address (G...) that receives the USDC. Never a secret key.
- `sourceChain` (string, required): Chain you will pay from.
- `usdGas` (string): USD of XLM for fees. Omit to use the server default.

### `stellar_wallet_create_order` (~341 tokens)

Create a Stellar wallet funding order

Turn an approved quote into a payable order. Returns fundingId (keep it private: it is the only handle to the order), the one-time deposit address, the suggested amount and amountPolicy with minAcceptedAmount/maxPricedAmount when any_amount, payBefore and the accepted chains and tokens. orderId is your own reference: the server derives the upstream order id and Idempotency-Key from quoteId plus orderId, so it only has to be unique among your own orders. Retrying with the same quoteId and orderId returns the same order instead of a second one. Creates an order but moves no funds; an unpaid order expires at no cost. Fees come from the quote (fees and totals): never assume a fee. The receiving Stellar address signs ONE transaction (only when it is new or has no USDC trustline). The one-time deposit address is the same on Base, Ethereum, Arbitrum and Polygon; USDC or USDT is accepted 1:1. Follow deposit.amountPolicy: exact or missing means pay the EXACT deposit amount; any_amount uses the suggested amount and returned min/max bounds. Pay once, before payBefore. This server never holds keys: your own wallet pays and signs.

Input parameters:

- `orderId` (string, required): Your own order reference, 8 to 128 chars of A-Z a-z 0-9 _ . : -, unique among your orders (for example agent-order-0001). Reuse it with the same quoteId to retry safely.
- `planDigest` (string, required): planDigest from the same quote.
- `quoteId` (string, required): quoteId from stellar_wallet_quote.

### `stellar_wallet_order_status` (~91 tokens)

Stellar wallet funding order status

Read a funding order by fundingId: status, pendingActions (sign_stellar_onboarding means the receiver must sign), the deposit, and each leg (USDC, XLM) with its own status, delivered amount and tx hash. Read-only. Poll about every 15 seconds; completed only when every leg is confirmed.

Input parameters:

- `fundingId` (string, required): fundingId from stellar_wallet_create_order.

### `stellar_wallet_get_signing_request` (~580 tokens)

Get the Stellar transaction to sign

When an order shows sign_stellar_onboarding, build the one transaction the receiving address must sign (creates the account if needed, adds the USDC trustline, claims the USDC, delivers XLM). Returns signingRequestId, the unsigned XDR, networkPassphrase, a readable operations list and expiresAt (at most 5 minutes). Sign it with the receiver wallet YOU control (Stellar SDK, Freighter, any wallet); do not modify it. Check the operations first, and decode the XDR locally to confirm it matches them exactly. The transaction source must NOT be your address (it is a ROZO channel account, so ROZO pays the network fee). Allowed, nothing else: ROZO-sourced beginSponsoringFutureReserves and createAccount for your address; from your address, changeTrust for USDC (issuer GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN), endSponsoringFutureReserves, claimClaimableBalance, and at most one payment: the sponsor fee in USDC to ROZO claim custody GBLTI2TTQXUAYNKGCQ63YA55KTFEAOQJ3DPBPELNPWCJVE76ADWMXUAE; and a ROZO-sourced XLM payment to your address. Any other operation type or source (setOptions, extra payments): refuse. Amounts: the claimed USDC (gross) equals the current stable leg minimumAmount (order.legs, after repricing) plus the sponsor fee; the sponsor fee is fixed at quote time (0.0000001 USDC with a paid usdGas tier, the quoted stellar_sponsor_fee with usdGas "0", no fee payment if the address needed no onboarding); the XLM payment equals the native (XLM) leg minimumAmount. The XDR shows only the claimable balance id; its amount is in the operations list and on Horizon /claimable_balances/{id}. The hash of the locally decoded transaction (tx.hash() as hex) must equal the txHash of this signing request. Every ROZO-sourced operation and the transaction source must be one of funding_capabilities rozoAccounts (reserveSponsor, xlmPayer, transactionSources). Do not echo fundingId into logs. Expired, or submit failed: just call this tool again; it supersedes the old requ…

Input parameters:

- `fundingId` (string, required): fundingId of the order.
- `walletAddress` (string, required): The order's receiving Stellar PUBLIC address (G...).

### `stellar_wallet_submit_signed` (~157 tokens)

Submit the signed Stellar transaction

Submit the XDR your own wallet signed for a signing request. This is the claim: the account, trustline, USDC and XLM land in that one transaction. Submitting the same signed XDR again is safe (idempotent). Accepts only the signed transaction envelope, never a secret key. "submitted" is not delivery: poll stellar_wallet_order_status until completed. If it answers template_expired or failed, call stellar_wallet_get_signing_request again and sign the new XDR.

Input parameters:

- `signedXdr` (string, required): Signed transaction envelope, base64, as returned by your wallet. NOT a secret key.
- `signingRequestId` (string, required): signingRequestId from stellar_wallet_get_signing_request.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/rozoai-checkout/mcp#diagnostics

## Score history

- 2026-11-05: 83
- 2026-11-04: 82
- 2026-11-03: 83
- 2026-11-02: 82
- 2026-11-01: 82
- 2026-10-31: 81
- 2026-10-30: 81
- 2026-10-29: 81
- 2026-10-28: 80
- 2026-10-27: 80
- 2026-10-26: 79
- 2026-10-25: 79
- 2026-10-24: 78
- 2026-10-23: 78
- 2026-10-22: 77
- 2026-10-21: 77
- 2026-10-20: 76
- 2026-10-19: 76
- 2026-10-18: 75
- 2026-10-17: 75
- 2026-10-16: 74
- 2026-10-15: 74
- 2026-10-14: 73
- 2026-10-13: 73
- 2026-10-12: 73
- 2026-10-10: 72
- 2026-10-07: 73
- 2026-10-04: 72

## Common questions

### What is the Rozo Checkout MCP server?

Rozo Checkout is an MCP server listed in the public MCP registry as io.github.RozoAI/checkout. Pay OpenRouter and Coinbase payment links with USDC, USDT, ETH, BNB, POL, SOL or BTC Lightning. This page covers its hosted endpoint (https://mcp.rozo.ai/mcp?src=registry).

### Is the Rozo Checkout MCP server safe to use?

Rozo Checkout scores 83 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Rozo Checkout MCP server expose?

Rozo Checkout exposes 10 tools: supported_coins, quote_invoice, create_deposit_order, payment_status, funding_capabilities, and 5 more. Their descriptions and schemas cost roughly 2,682 tokens of context every time the server is loaded.

### Does the Rozo Checkout MCP server require authentication?

No. We connected to Rozo Checkout without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Rozo Checkout MCP server still maintained?

Rozo Checkout is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://mcp.rozo.ai/mcp?src=registry
- Repository: https://github.com/RozoAI/rozo-checkout-mcp
- Website: https://checkout.rozo.ai/
- Changelog RSS feed: https://verifymcp.io/servers/rozoai-checkout/mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/rozoai-checkout/mcp.json
- HTML version of this page: https://verifymcp.io/servers/rozoai-checkout/mcp
