@botwallet/mcp exposes Botwallet as Model Context Protocol tools over stdio. It works with Claude Desktop, Cursor, Windsurf, Cline and any MCP-compatible client. Source: botwallet-co/mcp .
"args" : [ " -y " , " @botwallet/mcp " ]
With a global install (npm install -g @botwallet/mcp) use "command": "botwallet-mcp" and no args. Client-specific file locations are in Agent setup .
Variable Default Purpose BOTWALLET_API_KEY— API key (alternative to the config file) BOTWALLET_WALLET— Which wallet to use if you have several BOTWALLET_BASE_URLhttps://api.botwallet.co/v1Custom API endpoint
All optional. The server reads ~/.botwallet/config.json, shared with the CLI, and figures out the rest.
36 tools in 8 groups. Amounts are USD (USDC); usernames are passed without the @.
Tool Parameters What it does botwallet_ping— Check API connectivity (no auth) botwallet_registername, owner_email?, agent_model?, description?, metadata?Create a wallet with FROST key generation; saves the key share to ~/.botwallet/seeds/ and returns the claim link botwallet_info— Wallet metadata, status, owner and claim info botwallet_balance— On-chain balance, budget, amount spent and remaining allowance botwallet_update_ownerowner_emailSet the owner email of an unclaimed wallet botwallet_renamenameChange the display name botwallet_wallet_list— List local wallets botwallet_wallet_usenameSwitch the active wallet
Tool Parameters What it does botwallet_lookupusernameCheck that a recipient exists botwallet_can_i_affordto, amountPre-flight balance and guard-rail check botwallet_payto + amount or payment_request_id, note?, reference?, idempotency_key?Pay a bot, merchant or paylink. Within guard rails it signs and completes immediately (paid: true); otherwise it returns needs_approval: true with a transaction_id and approval_url botwallet_confirm_paymenttransaction_idComplete a payment after the owner approved it (FROST signing) botwallet_list_payments— List outgoing payments botwallet_cancel_paymenttransaction_idCancel a pending or pre-approved payment
Tool Parameters What it does botwallet_create_paylinkdescription, amount?, items?, reference?, expires_in?, reveal_owner?Create a payment request or itemized invoice botwallet_send_paylinkrequest_id, to_email? or to_wallet?, message?Send it by email or to a bot’s inbox botwallet_get_paylinkrequest_id? or reference?Check whether it has been paid botwallet_list_paylinks— List your paylinks botwallet_cancel_paylinkrequest_idCancel a pending paylink
Tool Parameters What it does botwallet_get_deposit_address— USDC deposit address on Solana botwallet_request_fundsamount, reasonAsk the owner for funds botwallet_list_fund_requests— Past fund requests and their status
Tool Parameters What it does botwallet_withdrawamount, to_address, reason, idempotency_key?Request a withdrawal to an external Solana address botwallet_confirm_withdrawaltransaction_idComplete it after approval botwallet_get_withdrawalwithdrawal_idStatus, fees and, when complete, the Solana signature
Tool Parameters What it does botwallet_x402_discoverquery?Search the curated catalog of paid APIs botwallet_x402_fetchurl, method?, headers?, body?Probe a URL. Free content is returned directly; a 402 response yields the price and a fetch_id. Nothing is spent botwallet_x402_pay_and_fetchfetch_id, headers?, body?Pay, fetch the content and settle
Tool Parameters What it does botwallet_transactions— Full transaction ledger botwallet_my_limits— Spending limits set by the owner botwallet_pending_approvals— Actions waiting for approval, with approval URLs botwallet_approval_statusapproval_idpending, approved, rejected or expired; when approved, includes the tool and arguments to confirmbotwallet_eventstypes?, limit?, unread_only?, since?, mark_read?Wallet notifications
Tool Parameters What it does botwallet_wallet_exportoutput_pathExport the wallet to an encrypted .bwlt file botwallet_wallet_importfile_pathImport a .bwlt file botwallet_wallet_backup— Reveal the 12-word backup phrase of the local key share. Sensitive: only on explicit user request
URI What it returns botwallet://statusWallet summary: balance, limits, deposit address and local key-share status
botwallet_pay (or a withdrawal or x402 purchase) returns needs_approval: true with a transaction_id, approval_id and approval_url.
The agent stores the transaction_id and polls botwallet_approval_status, or watches botwallet_events for approval_resolved.
Once approved, the agent calls botwallet_confirm_payment (or botwallet_confirm_withdrawal) with the transaction_id.
The server runs locally on the agent’s machine and talks to api.botwallet.co over HTTPS. Key shares stay in ~/.botwallet/seeds/ and are never sent over the network; the server co-signs with Botwallet and submits the combined signature to Solana. Spending limits are enforced server-side, so the agent cannot bypass them.
The MCP server and the CLI share ~/.botwallet/config.json, ~/.botwallet/seeds/*.seed and the .bwlt export format. A wallet created with one works with the other.