loading…
Search for a command to run...
loading…
Enables AI agents to make payments and manage subscriptions by converting USDC stablecoin balances into virtual cards for online checkouts. It provides tools fo
Enables AI agents to make payments and manage subscriptions by converting USDC stablecoin balances into virtual cards for online checkouts. It provides tools for wallet management, card issuance, and secure transaction handling through the Clawallex payment API.
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.
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"clawallex-mcp-server": {
"command": "npx",
"args": []
}
}
}