About mcp-rapyd
mcp-rapyd is an MCP server for the Rapyd payments platform, covering global collect and disburse flows across 100+ countries. It adds cash pickup and managed wallets, which suit merchants serving unbanked recipients or end-user balances, and it supports sandbox and production environments.
Key features
- 01Global collect and disburse across 100+ countries
- 02Cash pickup networks for unbanked recipients
- 03Managed ewallet creation and fund transfers
- 04Payments, refunds, payouts and saved payment methods
- 05Sandbox and production environment switching
- 06stdio and HTTP run modes
Use cases
- 01Paying creators or marketplace sellers in multiple countries
- 02Offering cash pickup to recipients without bank accounts
- 03Provisioning sub-wallets for end users and managing their balances
MCP support
The server exposes 22 tools to MCP clients for creating payments, refunds, payouts, wallets and payment methods.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y @codespar/mcp-rapydRAPYD_ACCESS_KEYSecretRapyd access key (sent in the access_key header)RAPYD_SECRET_KEYSecretRapyd secret key used to sign HMAC-SHA256 requests (never transmitted)RAPYD_ENVRapyd environment: 'sandbox' (https://sandboxapi.rapyd.net) or 'production' (https://api.rapyd.net). Defaults to sandbox.Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
22Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| amount | number | Yes | Amount in major units of the currency (e.g. 100 = 100 USD) |
| country | string | Yes | ISO-3166 alpha-2 country code of the buyer (US, MX, BR, IN, NG, etc) |
| currency | string | Yes | ISO-4217 currency code (USD, EUR, MXN, BRL, INR, NGN, etc) |
| customer | string | No | Rapyd customer id (cus_xxx). Optional — omit to let Rapyd create a one-off customer. |
| language | string | No | ISO-639 language code for the hosted page (en, es, pt, ...) |
| description | string | No | Human-readable description shown on the page |
| cancel_checkout_url | string | No | URL Rapyd redirects the payer to if they cancel |
| payment_method_type | string | No | Optional: restrict to a single method type (e.g. 'mx_oxxo_cash'). Omit for Rapyd to show all eligible methods. |
| complete_checkout_url | string | No | URL Rapyd redirects the payer to after a successful payment |
| merchant_reference_id | string | No | Merchant-side order id (appears in reports) |
| payment_method_types_exclude | array | No | Blacklist of method types to hide |
| payment_method_types_include | array | No | Whitelist of method types to show |
Details
From the project README@codespar/mcp-rapyd
MCP server for Rapyd — global collect + disburse across 100+ countries.
Rapyd is the global counterpart to dLocal. Where dLocal is LatAm-deep (15+ countries, Pix/OXXO/PSE/SPEI), Rapyd is worldwide-wide: Asia, Africa, Europe, the Middle East, and LatAm via a single API — and crucially covers two categories dLocal doesn't:
- Cash pickup — OXXO Pay, 7-Eleven, and country-specific cash networks for unbanked recipients
- Managed wallets — the merchant holds a master account and provisions sub-wallets per end user (marketplace balances, creator payouts, cross-border P2P without opening a bank account per user)
Use dLocal when LatAm depth is the requirement. Use Rapyd when global reach, cash pickup, or wallet infrastructure is the requirement.
Tools (22)
| Tool | Purpose |
|---|---|
create_checkout_page | Create a Rapyd hosted checkout page. |
create_payment | Create a direct payment with a fully-specified payment_method. |
get_payment | Retrieve a payment by Rapyd payment id (payment_xxx). |
cancel_payment | Cancel a payment that has not yet been captured/completed. |
create_refund | Refund a completed payment. |
create_payout | Create a payout (disbursement) to a beneficiary. |
get_payout | Retrieve a payout by Rapyd payout id (payout_xxx). |
confirm_payout | Second step of Rapyd's two-step payout approval. |
list_payment_methods_by_country | List all inbound (collect) payment methods Rapyd supports for a given country + currency. |
list_payout_methods_by_country | List all outbound (disburse) payout method types Rapyd supports for a given beneficiary country. |
create_wallet | Create a Rapyd managed wallet (user) for an end user. |
list_payments | List payments with optional filters. |
update_payment | Update metadata / descriptor / receipt details on an existing payment. |
create_payment_method | Save a reusable payment method (card token, bank account, wallet) against a Rapyd customer. |
delete_payment_method | Remove a saved payment method from a Rapyd customer. |
list_payouts | List payouts (disbursements) with optional filters. |
cancel_payout | Cancel a payout that is still in 'Created' state (before confirm_payout releases funds). |
get_wallet | Retrieve a Rapyd ewallet (user) by id. |
update_wallet | Update profile fields on a Rapyd ewallet (user). |
list_wallets | List Rapyd ewallets under the merchant account. |
wallet_contact_verify | Submit a verification token (usually received via SMS/email) to verify a wallet contact's identity. |
transfer_between_wallets | Move funds between two Rapyd ewallets (source_ewallet → destination_ewallet). |
Install
npm install @codespar/mcp-rapyd
Environment
RAPYD_ACCESS_KEY="..." # Public access key (sent in the access_key header)
RAPYD_SECRET_KEY="..." # Secret key (used to sign requests; never transmitted)
RAPYD_ENV="sandbox" # Optional. 'sandbox' (default) or 'production'
Base URLs:
- sandbox →
https://sandboxapi.rapyd.net - production →
https://api.rapyd.net
Authentication
Every request is signed with HMAC-SHA256 per Rapyd's signature recipe:
toSign = http_method_lowercase + url_path + salt + timestamp + access_key + secret_key + body_string
hmac_hex = HMAC-SHA256(secret_key, toSign).digest('hex')
signature = Buffer.from(hmac_hex).toString('base64') // hex → base64, not raw digest
Required headers on every request:
Content-Type: application/json
access_key: <access_key>
salt: <random 8-16 char string, unique per request>
timestamp: <Unix seconds, within 60s of server time>
signature: <computed per recipe above>
idempotency: <unique per request>
The server handles salt, timestamp, signature, and idempotency generation automatically — you only configure RAPYD_ACCESS_KEY, RAPYD_SECRET_KEY, and (optionally) RAPYD_ENV.
Gotchas the server handles for you:
body_stringis the compact JSON body with no whitespace, or""when empty — never"{}".url_pathincludes the query string when present.http_methodis lowercased in the signature string but UPPERCASE on the wire.
Run
# stdio (default — for Claude Desktop, Cursor, etc)
npx @codespar/mcp-rapyd
# HTTP (for server-to-server testing)
MCP_HTTP=true MCP_PORT=3000 npx @codespar/mcp-rapyd
When to use Rapyd vs dLocal
| Requirement | Choose |
|---|---|
| LatAm depth (Pix, OXXO, PSE, SPEI, Boleto) | dLocal |
| Global reach (Asia, Africa, Europe + LatAm) | Rapyd |
| Cash pickup for unbanked recipients | Rapyd |
| Managed wallet infrastructure | Rapyd |
| Single-country PSP (BR-only, MX-only) | Per-country server (Mercado Pago, Conekta, etc) |
Enterprise
Need governance, budget limits, and audit trails for agent payments? CodeSpar Enterprise adds policy engine, payment routing, and compliance templates on top of these MCP servers.
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.