Madhouse Wallet

Madhouse Wallet MCP Server

Send global payouts from any AI assistant using natural language.

The Madhouse Wallet MCP (Model Context Protocol) server connects AI assistants like Claude, Cursor, Copilot, and Windsurf to the Madhouse Wallet payout API β€” letting you send USDC payouts to 85+ currencies, manage bank recipients, and get live FX quotes entirely through chat.

⚑

Natural language

Just describe what you want. Your AI figures out which tool to call.

🌍

85+ currencies

Pay out to bank accounts across emerging and developed markets.

πŸ”‘

Your API key

Multi-tenant β€” each user provides their own Madhouse API key.

MCP Endpoint
https://main.d2sl38naixknlb.amplifyapp.com/api/mcp

Quick Start

Get up and running in under 2 minutes.

  1. 1

    Get your API key

    Log in to the Madhouse Wallet dashboard and navigate to Developers β†’ API Keys to generate a key. It starts with mw_live_.
  2. 2

    Add the MCP server to your AI client

    Paste the endpoint URL and your API key as a Bearer token. See the Installation section for client-specific instructions.
  3. 3

    Start sending in chat

    Type something like β€œSend $500 to my recipient in Kenya” and your AI will handle the rest.

Authentication

Every request is authenticated with your Madhouse Wallet API key.

Pass your API key as a Bearer token in the Authorization header of every request. This is handled automatically by your AI client once you complete the setup.

HTTP Header
Authorization: Bearer mw_live_your_key
⚠
Keep your API key private. Never share it in public repositories, screenshots, or with untrusted parties. Each key is tied to your account and authorizes real money movement.
β„Ή
The MCP server is multi-tenant β€” each user connects with their own key. There is no shared server-side secret.

Installation

Choose your AI client below for specific setup instructions.

Replace mw_live_your_key with your actual API key in all examples below.

Run this command in your terminal. Claude Code stores the config automatically.

Terminal
claude mcp add --transport http madhouse https://main.d2sl38naixknlb.amplifyapp.com/api/mcp \
  --header "Authorization: Bearer mw_live_your_key"
β„Ή
Claude Code CLI is a separate tool from the Claude desktop app. Install it with npm install -g @anthropic-ai/claude-code.

Tools Reference

12 tools covering the full payout workflow β€” from quoting to recipient management.

Quotes & Limits
madhouse_get_limits

Returns the min and max USD amounts your account can send per transfer.

No parameters required.

Example prompt

β€œWhat are my Madhouse transfer limits?”

madhouse_get_quote

Get a live USD β†’ target currency exchange rate. Returns a quoteId valid for 5 minutes required by create_transfer.

Parameters

ParameterTypeRequiredDescription
source_amountnumberYesUSD amount to send (e.g. 500)
target_currencystringYesISO 4217 code β€” e.g. "KES", "GBP", "EUR"

Example prompt

β€œGet me a quote to send $500 to Kenya.”

Transfers
madhouse_create_transfer

Initiate a USDC payout. Returns a deposit_address β€” send USDC there to trigger the bank transfer.

Parameters

ParameterTypeRequiredDescription
quote_idstring (UUID)YesFrom madhouse_get_quote β€” valid 5 min
amountnumberYesUSD amount β€” must match the quote exactly
recipient_idnumberYesRecipient ID from madhouse_list_recipients
wallet_addressstringYesEVM (0x...) or Solana address sending USDC
user_idstringYesYour Madhouse Wallet user ID (from account settings)
customer_uuidstring (UUID)YesYour unique reference for this transfer
customer_emailstringNoNotification email (defaults to account email)
source_tokenstringNoToken to send β€” default "usdc"
source_networkstringNoNetwork β€” default "base". Options: base, arbitrum, ethereum, optimism, polygon, solana

Example prompt

β€œSend $200 to John in Kenya using my Base wallet.”

madhouse_get_transfer

Poll the current status of a transfer. Status lifecycle: ready_to_process β†’ processing β†’ transfer_created β†’ completed | failed.

Parameters

ParameterTypeRequiredDescription
transfer_idstringYesTransfer ID returned by madhouse_create_transfer

Example prompt

β€œWhat's the status of my transfer abc-123?”

madhouse_cancel_transfer

Cancel a pending transfer before USDC is sent. Omit transfer_id to cancel all pending transfers.

Parameters

ParameterTypeRequiredDescription
transfer_idstringNoTransfer ID to cancel. Omit to cancel ALL pending transfers.

Example prompt

β€œCancel all my pending transfers.”

Recipients
madhouse_list_recipients

List all active bank recipients on your account.

No parameters required.

Example prompt

β€œShow me all my recipients.”

madhouse_get_recipient

Get details of a single recipient by ID.

Parameters

ParameterTypeRequiredDescription
recipient_idnumberYesRecipient ID from madhouse_list_recipients

Example prompt

β€œShow details for recipient 12345.”

madhouse_create_recipient

Add a new bank account recipient. Call madhouse_get_account_requirements first to know which fields to provide.

Parameters

ParameterTypeRequiredDescription
user_idstringYesYour Madhouse Wallet user ID
currencystringYesISO 4217 code β€” e.g. "GBP", "KES"
typestringYesAccount type from madhouse_get_account_requirements β€” e.g. "sort_code", "iban"
account_holder_namestringYesFull legal name of the account holder
detailsobjectYesBank account fields β€” keys vary by currency/type

Example prompt

β€œAdd a GBP recipient for Jane Smith with sort code 20-00-00 and account 12345678.”

madhouse_update_recipient

Update the name or bank details of an existing recipient.

Parameters

ParameterTypeRequiredDescription
recipient_idnumberYesRecipient ID to update
account_holder_namestringNoNew full legal name
detailsobjectNoUpdated bank account fields

Example prompt

β€œUpdate recipient 12345's name to Jane Doe.”

madhouse_delete_recipient

Permanently remove a bank recipient. Cannot delete while a transfer to them is in-flight.

Parameters

ParameterTypeRequiredDescription
recipient_idnumberYesRecipient ID to delete

Example prompt

β€œDelete recipient 12345.”

Account Requirements
madhouse_get_account_requirements

Returns the bank fields required to create a recipient for a given currency β€” including validation rules and allowed values.

Parameters

ParameterTypeRequiredDescription
currencystringYesISO 4217 code β€” e.g. "GBP", "NGN", "KES"

Example prompt

β€œWhat fields do I need to create a Nigerian Naira recipient?”

madhouse_refresh_account_requirements

Refresh required fields after filling in a field that triggers conditional requirements (e.g. selecting bank country reveals more fields).

Parameters

ParameterTypeRequiredDescription
currencystringYesISO 4217 currency code
typestringYesAccount type β€” e.g. "iban", "sort_code"
detailsobjectYesPartial details filled in so far

Example prompt

β€œRefresh the requirements for an IBAN recipient after selecting Germany as the bank country.”

Examples

How your AI chains tools together to complete real payout workflows.

Check transfer limits

β€œWhat are my Madhouse transfer limits?”

Tool call sequence

  1. 1madhouse_get_limits β†’ returns min/max USD amounts

Get an FX quote

β€œGet me a quote to send $500 to Kenya.”

Tool call sequence

  1. 1madhouse_get_limits β†’ verify $500 is within limits
  2. 2madhouse_get_quote(500, "KES") β†’ returns rate, fees, and quoteId

Send a payout end-to-end

β€œSend $200 to John in Kenya using my Base wallet.”

Tool call sequence

  1. 1madhouse_list_recipients β†’ find John's recipient ID
  2. 2madhouse_get_quote(200, "KES") β†’ get quoteId
  3. 3madhouse_create_transfer β†’ returns deposit_address
  4. β†’You send USDC to the deposit_address
  5. 5madhouse_get_transfer β†’ poll until completed

Add a new recipient

β€œAdd a UK GBP recipient for Jane Smith, sort code 20-00-00, account 12345678.”

Tool call sequence

  1. 1madhouse_get_account_requirements("GBP") β†’ get required fields
  2. 2madhouse_create_recipient β†’ creates the recipient

Supported Currencies

Pay out to 85+ currencies across emerging and developed markets.

AEDARSALLAUDBAMBDTBGNBHDBMDBOBBRLBWPCADCHFCLPCNYCOPCRCCVECZKDKKDOPEGPEURGBPGELGHSGMDGNFGTQHKDHNLHUFIDRILSINRISKJPYKESKGSKHRKRWKWDLAKLKRMADMNTMOPMURMXNMYRNADNGNNIONOKNPRNZDOMRPENPHPPKRPLNPYGQARRONRSDRWFSARSCRSEKSGDSRDTHBTNDTRYTZSUAHUGXUSDUYUVNDZAR

Use madhouse_get_account_requirements with any currency code to see what bank fields are required for that country.