Connects Claude to the Clawallex payment API for creating USDC-backed virtual cards that work at any online checkout. Exposes wallet balance checks, one-time card creation via clawallex_pay, recurring subscription cards with clawallex_subscribe, and card refills. Each card gets encrypted PAN/CVV details you can decrypt and use programmatically. Handles agent identity binding through client_id so your cards stay isolated even if you rotate API keys. Built for agents that need to autonomously pay for API credits, cloud subscriptions, or any merchant that takes cards. Includes transaction history, MCC controls, and x402 on-chain payment support for advanced flows.
Public tool metadata for what this MCP can expose to an agent.
batch_card_balancesCheck balances for multiple cards in one call.1 paramsCheck balances for multiple cards in one call.
card_idsarrayclawallex_payPay for a product or service using USDC. Creates a single-use flash virtual card (card_type=100), deducts from wallet balance, returns card details for checkout. Mode A (mode_code=100, default): wallet balance → flash card. Immediate settlement. Mode B (mode_code=200): for cal...15 paramsPay for a product or service using USDC. Creates a single-use flash virtual card (card_type=100), deducts from wallet balance, returns card details for checkout. Mode A (mode_code=100, default): wallet balance → flash card. Immediate settlement. Mode B (mode_code=200): for cal...
extraobjectamountnumbertx_limitstringmode_codeintegerchain_codestringtoken_codestringallowed_mccstringblocked_mccstringdescriptionstringx402_versionintegerpayer_addressstringpayment_payloadobjectclient_request_idstringx402_reference_idstringpayment_requirementsobjectclawallex_refillTop up the balance of a subscription (stream) card. Only stream cards (card_type=200) can be refilled. Refill mode follows the card's creation mode. Mode A: deducts from wallet balance. client_request_id is the idempotency key (auto-generated if omitted). Mode B: x402 settle (...8 paramsTop up the balance of a subscription (stream) card. Only stream cards (card_type=200) can be refilled. Refill mode follows the card's creation mode. Mode A: deducts from wallet balance. client_request_id is the idempotency key (auto-generated if omitted). Mode B: x402 settle (...
amountnumbercard_idstringx402_versionintegerpayer_addressstringpayment_payloadobjectclient_request_idstringx402_reference_idstringpayment_requirementsobjectclawallex_subscribeSet up a reloadable virtual card for recurring/subscription payments. Creates a stream card (card_type=200) that stays active and can be refilled via clawallex_refill. Mode A (mode_code=100, default): wallet balance → stream card. Immediate settlement. Mode B (mode_code=200):...15 paramsSet up a reloadable virtual card for recurring/subscription payments. Creates a stream card (card_type=200) that stays active and can be refilled via clawallex_refill. Mode A (mode_code=100, default): wallet balance → stream card. Immediate settlement. Mode B (mode_code=200):...
extraobjecttx_limitstringmode_codeintegerchain_codestringtoken_codestringallowed_mccstringblocked_mccstringdescriptionstringx402_versionintegerpayer_addressstringinitial_amountnumberpayment_payloadobjectclient_request_idstringx402_reference_idstringpayment_requirementsobjectcreate_card_orderAdvanced: create a virtual card with full control over payment mode and card type. Most agents should use clawallex_pay or clawallex_subscribe instead. Mode A (mode_code=100): wallet balance deduction, immediate settlement. Mode B (mode_code=200): for callers with self-custody...16 paramsAdvanced: create a virtual card with full control over payment mode and card type. Most agents should use clawallex_pay or clawallex_subscribe instead. Mode A (mode_code=100): wallet balance deduction, immediate settlement. Mode B (mode_code=200): for callers with self-custody...
extraobjectamountstringtx_limitstringcard_typeintegermode_codeintegerchain_codestringfee_amountstringtoken_codestringallowed_mccstringblocked_mccstringx402_versionintegerpayer_addressstringpayment_payloadobjectclient_request_idstringx402_reference_idstringpayment_requirementsobjectget_card_balanceGet the current balance and status of a virtual card. Returns available_balance, card_currency, status, and updated_at.1 paramsGet the current balance and status of a virtual card. Returns available_balance, card_currency, status, and updated_at.
card_idstringget_card_detailsGet full card details including PAN, CVV, expiry, balance, cardholder info, billing address, and risk controls.1 paramsGet full card details including PAN, CVV, expiry, balance, cardholder info, billing address, and risk controls.
card_idstringget_walletGet the wallet details for the current API key. Each API key has exactly one wallet — shared across all agents using the same API key. Returns available_balance, frozen_balance, low_balance_threshold, currency (USD), and status. Use this to check if there is sufficient balance...Get the wallet details for the current API key. Each API key has exactly one wallet — shared across all agents using the same API key. Returns available_balance, frozen_balance, low_balance_threshold, currency (USD), and status. Use this to check if there is sufficient balance...
No parameter schema in public metadata yet.
get_wallet_recharge_addressesGet the on-chain deposit addresses for a wallet. Send USDC to one of these addresses to top up the wallet balance. If the result is empty, no deposit address has been created yet — ask the user to visit https://app.clawallex.com to create one.1 paramsGet the on-chain deposit addresses for a wallet. Send USDC to one of these addresses to top up the wallet balance. If the result is empty, no deposit address has been created yet — ask the user to visit https://app.clawallex.com to create one.
wallet_idstringget_x402_payee_addressGet the system receiving address for x402 on-chain payments. When to use: MUST call this before Mode B Refill to obtain payee_address and asset_address. Not needed for Mode B card creation — the 402 quote response already includes both addresses. Returns: payee_address (paymen...2 paramsGet the system receiving address for x402 on-chain payments. When to use: MUST call this before Mode B Refill to obtain payee_address and asset_address. Not needed for Mode B card creation — the 402 quote response already includes both addresses. Returns: payee_address (paymen...
chain_codestringtoken_codestringlist_cardsList virtual cards created by this agent (scoped to the server's client_id). Cards created by other agents using the same API key are not visible. Returns: card_id, mode_code, card_type (flash/stream), status, masked PAN, balance, and expiry.2 paramsList virtual cards created by this agent (scoped to the server's client_id). Cards created by other agents using the same API key are not visible. Returns: card_id, mode_code, card_type (flash/stream), status, masked PAN, balance, and expiry.
pageintegerpage_sizeintegerlist_transactionsList card transactions for this agent (scoped to the server's client_id). Transactions from other agents using the same API key are not visible. All filter parameters are optional — omit all to list recent transactions across all cards.5 paramsList card transactions for this agent (scoped to the server's client_id). Transactions from other agents using the same API key are not visible. All filter parameters are optional — omit all to list recent transactions across all cards.
pageintegercard_idstringpage_sizeintegercard_tx_idstringissuer_tx_idstringupdate_cardUpdate card risk controls: per-transaction limit and MCC whitelist/blacklist. At least one field must be provided.5 paramsUpdate card risk controls: per-transaction limit and MCC whitelist/blacklist. At least one field must be provided.
card_idstringtx_limitstringallowed_mccstringblocked_mccstringclient_request_idstringwhoamiQuery the current MCP connection status. Returns user_id, api_key_id, and client_id bound to this MCP token.Query the current MCP connection status. Returns user_id, api_key_id, and client_id bound to this MCP token.
No parameter schema in public metadata yet.
MCP Server for the Clawallex payment API. Pay for anything with USDC — Clawallex converts your stablecoin balance into virtual cards that work at any online checkout.
npm install -g @clawallex/mcp-server
Or use directly via npx (no install needed).
Sign up at Clawallex and create an API Key pair (api_key + api_secret).
Choose your client and add the configuration:
Add to your claude_desktop_config.json:
{
"mcpServers": {
"clawallex": {
"command": "npx",
"args": ["@clawallex/mcp-server"],
"env": {
"CLAWALLEX_API_KEY": "your_api_key",
"CLAWALLEX_API_SECRET": "your_api_secret"
}
}
}
}
claude mcp add --scope local clawallex -- npx @clawallex/mcp-server \
--api-key your_api_key \
--api-secret your_api_secret
Add to your ~/.codex/config.toml or .codex/config.toml:
[mcp_servers.clawallex]
command = "npx"
args = [
"@clawallex/mcp-server",
"--api-key",
"your_api_key",
"--api-secret",
"your_api_secret",
]
Add to your ~/.gemini/settings.json:
{
"mcpServers": {
"clawallex": {
"command": "npx",
"args": [
"@clawallex/mcp-server",
"--api-key", "your_api_key",
"--api-secret", "your_api_secret"
]
}
}
}
Add to your opencode.json:
{
"mcp": {
"clawallex": {
"type": "local",
"command": ["npx", "@clawallex/mcp-server", "--api-key", "your_api_key", "--api-secret", "your_api_secret"],
"enabled": true
}
}
}
After configuring, tell your AI agent:
"Run clawallex_setup to check the connection"
clawallex_setup verifies your API Key and automatically binds a client_id for data isolation. You only need to do this once.
One-time payment:
"Pay $50 for OpenAI API credits"
Agent calls clawallex_pay → creates virtual card → get_card_details → decrypt_card_data → fills checkout.
Subscription:
"Set up a $100 card for AWS monthly billing"
Agent calls clawallex_subscribe → creates reloadable card → clawallex_refill when balance is low.
Verify everything works:
clawallex_setup → should show "ready" with bound client_id
get_wallet → should return wallet balance
list_cards → should return card list (empty if no cards yet)
1. clawallex_setup → verify connection & bind identity
2. get_wallet → check USDC balance
3. clawallex_pay({ amount, description }) → create a one-time virtual card
4. get_card_details({ card_id }) → get encrypted card data
5. decrypt_card_data({ nonce, ciphertext }) → decrypt PAN/CVV for checkout
1. clawallex_setup → verify connection
2. get_wallet → check USDC balance
3. clawallex_subscribe({ initial_amount, description }) → create reloadable card
4. get_card_details({ card_id }) → get card number
5. clawallex_refill({ card_id, amount }) → top up when needed
| Tool | Description |
|---|---|
clawallex_setup | Check connection status and bind agent identity |
clawallex_pay | One-time payment — creates a single-use virtual card |
clawallex_subscribe | Recurring subscription — creates a reloadable card |
clawallex_refill | Top up a subscription card balance |
| Tool | Description |
|---|---|
whoami | Query current API Key binding status (read-only) |
bootstrap | Bind a client_id to this API Key |
| Tool | Description |
|---|---|
get_wallet | Get wallet balance and status |
get_wallet_recharge_addresses | Get on-chain USDC deposit addresses |
list_cards | List virtual cards created by this agent |
get_card_balance | Get card balance and status |
batch_card_balances | Check balances for multiple cards in one call |
update_card | Update card risk controls (tx_limit, allowed_mcc, blocked_mcc) |
get_card_details | Get card details including risk controls, cardholder info, and encrypted PAN/CVV |
decrypt_card_data | Decrypt PAN/CVV from get_card_details |
list_transactions | List card transactions with optional filters |
| Tool | Description |
|---|---|
get_x402_payee_address | Get on-chain receiving address for x402 payments |
create_card_order | Create a card with full control (supports Mode B two-stage) |
refill_card | Refill a stream card with x402 or custom idempotency keys |
| Option | Env Variable | Required | Default | Description |
|---|---|---|---|---|
--api-key | CLAWALLEX_API_KEY | Yes | — | Clawallex API Key |
--api-secret | CLAWALLEX_API_SECRET | Yes | — | Clawallex API Secret (HMAC-SHA256 signing) |
--base-url | CLAWALLEX_BASE_URL | No | https://api.clawallex.com | API base URL |
--client-id | CLAWALLEX_CLIENT_ID | No | auto-generated | Agent identity UUID. See Client ID section. |
--transport | — | No | stdio | Transport mode: stdio, sse, http |
--port | — | No | 18080 | HTTP port for sse / http transport |
CLI arguments take precedence over environment variables. You can mix both — e.g. set credentials via env vars and override --transport via CLI.
client_id is the agent's stable identity, separate from the API Key. It is sent as X-Client-Id on every /payment/* request.
Key concept: An agent can have multiple API Keys (for rotation/revocation), but the client_id never changes. When switching to a new API Key, keep using the same client_id — the new key auto-binds on first request.
Data isolation:
client_id-scoped — each agent only sees data it createdBinding rules:
clawallex_setup automatically calls bootstrap to bind client_id on first useclient_id cannot be changed for that API Key (TOFU — Trust On First Use)client_id = losing access to all cards created under itResolution order at startup:
--client-id <value> CLI argument (must be >= 36 characters)~/.clawallex-mcp/client_ids.json local file (from a previous run)Recommendation: Always pass --client-id explicitly in production to avoid relying on the local file.
npx @clawallex/mcp-server \
--api-key your_api_key \
--api-secret your_api_secret
npx @clawallex/mcp-server \
--api-key your_api_key \
--api-secret your_api_secret \
--transport sse \
--port 18080
Agent connects to: http://localhost:18080/sse
npx @clawallex/mcp-server \
--api-key your_api_key \
--api-secret your_api_secret \
--transport http \
--port 18080
Agent connects to: http://localhost:18080/mcp
npm install
npm run build
# List all tools (stdio)
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' \
| node dist/index.js \
--api-key your_api_key \
--api-secret your_api_secret \
2>/dev/null
Every API request is signed with HMAC-SHA256:
canonical = METHOD + "\n" + PATH + "\n" + TIMESTAMP + "\n" + hex(sha256(body))
X-Signature = base64(hmac_sha256(api_secret, canonical))
Signing is handled automatically by the MCP server.
get_card_details returns encrypted_sensitive_data containing card PAN and CVV. Use decrypt_card_data to decrypt:
HKDF-SHA256(ikm=api_secret, info="clawallex/card-sensitive-data/v1", length=32)AES-256-GCM(key, nonce, ciphertext){ "pan": "4111...", "cvv": "123" }Decrypted PAN/CVV must NEVER be displayed to the user — only used for filling checkout forms.
CLAWALLEX_API_KEY*secretClawallex API Key
CLAWALLEX_API_SECRET*secretClawallex API Secret for HMAC-SHA256 signing
io.github.shelvick/shopify-subscription-reconciliation
zleventer/google-ads-mcp
csoai-org/meok-stripe-acp-checkout-mcp
io.github.mharnett/google-ads
csoai-org/stripe-billing-mcp
co.pipeboard/google-ads-mcp