Skip to content

MCP Server Reference

@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.

{
"mcpServers": {
"botwallet": {
"command": "npx",
"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.

VariableDefaultPurpose
BOTWALLET_API_KEYAPI key (alternative to the config file)
BOTWALLET_WALLETWhich 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 @.

ToolParametersWhat it does
botwallet_pingCheck 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_infoWallet metadata, status, owner and claim info
botwallet_balanceOn-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_listList local wallets
botwallet_wallet_usenameSwitch the active wallet
ToolParametersWhat 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_paymentsList outgoing payments
botwallet_cancel_paymenttransaction_idCancel a pending or pre-approved payment
ToolParametersWhat 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_paylinksList your paylinks
botwallet_cancel_paylinkrequest_idCancel a pending paylink
ToolParametersWhat it does
botwallet_get_deposit_addressUSDC deposit address on Solana
botwallet_request_fundsamount, reasonAsk the owner for funds
botwallet_list_fund_requestsPast fund requests and their status
ToolParametersWhat 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
ToolParametersWhat 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
ToolParametersWhat it does
botwallet_transactionsFull transaction ledger
botwallet_my_limitsSpending limits set by the owner
botwallet_pending_approvalsActions waiting for approval, with approval URLs
botwallet_approval_statusapproval_idpending, approved, rejected or expired; when approved, includes the tool and arguments to confirm
botwallet_eventstypes?, limit?, unread_only?, since?, mark_read?Wallet notifications
ToolParametersWhat it does
botwallet_wallet_exportoutput_pathExport the wallet to an encrypted .bwlt file
botwallet_wallet_importfile_pathImport a .bwlt file
botwallet_wallet_backupReveal the 12-word backup phrase of the local key share. Sensitive: only on explicit user request
URIWhat it returns
botwallet://statusWallet summary: balance, limits, deposit address and local key-share status
  1. botwallet_pay (or a withdrawal or x402 purchase) returns needs_approval: true with a transaction_id, approval_id and approval_url.
  2. The agent stores the transaction_id and polls botwallet_approval_status, or watches botwallet_events for approval_resolved.
  3. 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.