@gideondevrel/madhousewallet-mcp
v1.0.1
Published
MCP server for the Madhouse Wallet payout API — quote, transfer, and recipient management via Claude or any MCP-compatible client.
Maintainers
Readme
Madhouse Wallet MCP Server
An MCP (Model Context Protocol) server that exposes the Madhouse Wallet payout API as tools for Claude Desktop, Claude Code, and any MCP-compatible client.
Tools
| Tool | Description |
|---|---|
| madhouse_get_limits | Get your account's min/max USD transfer limits |
| madhouse_get_quote | Get a live USD → target currency quote (required before creating a transfer) |
| madhouse_create_transfer | Initiate a USDC payout to a bank recipient |
| madhouse_get_transfer | Poll transfer status by ID |
| madhouse_cancel_transfer | Cancel a pending transfer (or all pending transfers) |
| madhouse_list_recipients | List your saved bank recipients |
| madhouse_get_recipient | Get details of a single recipient |
| madhouse_create_recipient | Add a new bank recipient |
| madhouse_update_recipient | Update name or bank details of a recipient |
| madhouse_delete_recipient | Delete a recipient |
| madhouse_get_account_requirements | Get required fields for a target currency |
| madhouse_refresh_account_requirements | Refresh requirements after filling in a dynamic field |
Prerequisites
- Node.js 18+
- A Madhouse Wallet API key (
mw_live_…) — get one from Dashboard → Developers → API Keys
Setup
# From the mcp/ directory
npm install
npm run buildUsage
Claude Desktop (stdio — recommended)
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"madhouse-wallet": {
"command": "node",
"args": ["/absolute/path/to/stripe-direct-debit/mcp/dist/index.js"],
"env": {
"MADHOUSE_API_KEY": "mw_live_your_key_here"
}
}
}
}Restart Claude Desktop. You should see the Madhouse Wallet tools available.
Claude Code (CLI)
# Add the MCP server to this project
MADHOUSE_API_KEY=mw_live_your_key_here claude mcp add madhouse-wallet \
node /absolute/path/to/stripe-direct-debit/mcp/dist/index.jsOr in your project's .mcp.json:
{
"mcpServers": {
"madhouse-wallet": {
"command": "node",
"args": ["./mcp/dist/index.js"],
"env": {
"MADHOUSE_API_KEY": "mw_live_your_key_here"
}
}
}
}HTTP transport (optional)
For remote hosting or multi-client scenarios:
MADHOUSE_API_KEY=mw_live_your_key_here TRANSPORT=http PORT=3100 node dist/index.jsThe server will accept POST requests at http://localhost:3100/mcp and respond to GET http://localhost:3100/health.
Environment variables
| Variable | Required | Default | Description |
|---|---|---|---|
| MADHOUSE_API_KEY | Yes | — | API key from Madhouse Wallet dashboard |
| MADHOUSE_BASE_URL | No | https://app.madhousewallet.com | Override API base URL (for self-hosted instances) |
| TRANSPORT | No | stdio | stdio or http |
| PORT | No | 3100 | HTTP port (only when TRANSPORT=http) |
Payout workflow
- Check limits —
madhouse_get_limitsto confirm your amount is within bounds - Get requirements —
madhouse_get_account_requirementswith the target currency - Create recipient —
madhouse_create_recipientwith the bank details - Get a quote —
madhouse_get_quotewith the USD amount and target currency (valid 5 min) - Create transfer —
madhouse_create_transferwith the quote ID and recipient ID - Send USDC — send USDC to the
deposit_addressreturned in step 5 - Monitor — poll
madhouse_get_transferuntil status iscompletedorfailed
Development
# Watch mode
npm run dev
# Type-check without emitting
npx tsc --noEmit