← Back to Mali

Plug your AI into Mali via MCP

Last updated: May 3, 2026

The 30-second version. Mali speaks the Model Context Protocol. Generate an access token, paste it into your AI client's config, ask your AI about your money. Read-only — Mali never lets external clients move money.

Who this is for

If you already use Claude Desktop, ChatGPT (with custom GPTs / plugins), Cursor, Cline, Perplexity, or any other MCP-compatible client, you can plug Mali in as a data source. Your AI will be able to ask questions like *"what's my checking balance?"* or *"summarize my last month of dining spending"* and Mali will answer with your real bank data — without ever sending your data to anyone you didn't already trust.

If you'd rather just talk to Mali directly (voice or text), go back to the app — no setup needed.

What Mali exposes

ToolWhat it returns
get_accountsAll linked bank accounts with balances, types (checking/savings/credit/loan), and masked account numbers.
get_recent_transactionsNewest first, up to 100 transactions across all linked accounts. Each entry has date, description, amount, currency, category, merchant, and pending status.

More tools (recurring-charge detection, monthly summaries, file content) will land as we ship features in the main app.

Setup (5 minutes)

Step 1: Generate an access token

You need a token that authorizes your AI client to read your data. Today, the way to issue one is via curl + your Firebase ID token. We're shipping an in-app "Connect external AI" button soon.

  1. Open malimoney.com, sign in, and open Chrome DevTools (Cmd-Opt-I on Mac, F12 on Windows).
  2. In the Console tab, paste:
    firebase.auth().currentUser.getIdToken().then(t => navigator.clipboard.writeText(t))
    The Firebase ID token is now on your clipboard.
  3. In a terminal, run:
    curl -X POST https://malimoney.com/v1/mcp/tokens \
      -H "Authorization: Bearer <PASTE_TOKEN_HERE>" \
      -H "Content-Type: application/json" \
      -d '{"name":"My Claude Desktop"}'
  4. The response gives you:
Save your token now. The plaintext is only returned once. We store only a hash. If you lose it, generate a new one and revoke the old one.

Step 2: Wire your AI client

Claude Desktop (macOS)

Edit ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "mali": {
      "url": "https://malimoney.com/mcp",
      "headers": {
        "Authorization": "Bearer mali_YOUR_TOKEN_HERE"
      }
    }
  }
}

Restart Claude Desktop. You should see Mali listed under "MCP servers" with two tools available.

Claude Desktop (Windows)

Same config but at %APPDATA%\Claude\claude_desktop_config.json.

Other MCP clients

Mali speaks standard JSON-RPC 2.0 over HTTP. Any MCP client should work. Configure it with:

Step 3: Test it

Ask your AI: "What's my checking balance right now?" or "List my five most recent transactions." If it works, you'll get a real answer. If it doesn't, check the auth header and that the token is still valid.

What about security?

Listing and revoking tokens

List all your tokens:

curl https://malimoney.com/v1/mcp/tokens \
  -H "Authorization: Bearer <FIREBASE_ID_TOKEN>"

Revoke one:

curl -X DELETE https://malimoney.com/v1/mcp/tokens/<tokenId> \
  -H "Authorization: Bearer <FIREBASE_ID_TOKEN>"

Limits and costs

Troubleshooting

See also: Privacy · Terms · Security