Model Context Protocol · read-only

Let any AI client read your Keeve account — safely.

A hosted MCP endpoint over the Keeve platform. Build your own dashboards, ask questions about your customers and payouts in plain language, and ship agents on top of your account — without us ever handing out a credential that can move money.

{ "mcpServers": { "keeve": { "type": "http", "url": "https://<this-site>/api/public/mcp", "headers": { "Authorization": "Bearer smp_live_..." } } } }
01

Connect your Keeve account

Enter the email and password of a Keeve user with the API role. We verify them, find your company, and store the password encrypted.

02

Issue an API key

Each key is bound to one connection and one company. Keys are stored hashed and shown to you once; revoke any key instantly.

03

Point your AI client at the endpoint

Claude, Cursor, or your own agent over the OpenAI API. Twelve read-only tools show up automatically.

What your agent can do

12 read-only tools

get_company_overview

Get company overview

Company profile, custodial wallet status and transaction count for this Keeve company.

list_customers

List customers

List Keeve customers (members) in this company. Contact details are masked. Filter by name/email search, account type, or KYC application status.

get_customer

Get customer

Get one customer's profile, KYC/card status, smart-wallet addresses and recent card/payment transactions.

get_wallets

Get wallets

List the company's custodial (Portal MPC) wallet address and its whitelisted external wallets. Addresses are public; no keys or shares are ever returned.

get_wallet_balance

Get wallet balance

Current balance of the company's custodial Portal wallet on Base (USDC) and Ethereum.

get_card_balance

Get card balance

Rain card-issuing balances (credit limit, spend, collateral) for one customer, by rain_id.

get_transactions

Get transactions

Transaction history for this company (card spend, collateral deposits, payments), newest first. Optionally filter by customer rain_id, type, status or date range.

get_transaction

Get transaction

One transaction by its transaction_id (Rain, Stripe or on-chain reference).

get_payment_status

Get payment status

Status of a payment and where it is in the processing pipeline. payment_type: domestic_bank_payout (US ACH/RTP via Brale), international_bank_payout, manual_transfer, or card_or_wallet_transaction.

list_payouts

List payouts

List bank payouts or manual transfers for this company, newest first, optionally by status.

get_bank_accounts

Get bank accounts

Beneficiary bank accounts this company has paid out to (domestic and international), de-duplicated, with account numbers masked to the last 4 digits.

get_supported_assets

Get supported assets

Stablecoins, blockchains, fiat rails and card issuing supported by Keeve, with USDC contract addresses.

Safety model

Nothing here can move money.

  • Read-only by construction. No tool calls a write, approve or transfer endpoint. There is no code path to one.
  • Company-scoped twice. Every record returned is re-checked against the company your key belongs to, even where the underlying API doesn't check.
  • Field allow-lists. Responses are built from explicit field lists, then scrubbed again for anything resembling a key, token, PIN or national ID.
  • Masked by default. Bank accounts, IBANs, routing numbers, emails and phone numbers come back masked.
  • Keys you control. Stored as hashes, revocable at any moment, rate-limited to 120 calls a minute.
  • Full audit trail. Every call is logged with tool, arguments, outcome and duration — visible in your dashboard.