Run ExpenseBot from Inside ChatGPT, Claude, Cursor, or Any AI Assistant
Submit receipts, scan Gmail, build tax reports — all from inside the AI assistant you already use. ChatGPT and Claude.ai connect with one click. Desktop clients take 3 minutes.
60-day free trial · No credit card · ChatGPT & Claude.ai users skip the token entirely
See it in action — receipt to spreadsheet, P&L summary, and accountant email, all in chat.
What people use it for
"Find my receipt photos from this week and submit them"
→ Photos parsed, categorized, in your spreadsheet
"Scan my Gmail for any receipts I missed last month"
→ Hidden receipts found and added automatically
"Show me my profit by client this year"
→ Per-client revenue, costs, and profit table
"Generate a Schedule C report for 2025 and email it to my accountant"
→ Report built, accountant emailed, link delivered in chat
What is the ExpenseBot MCP server?
MCP — the Model Context Protocol — is an open standard that lets AI assistants plug into outside tools and data using one consistent interface. Instead of every product building a one-off Claude plugin or ChatGPT plugin, the product publishes an MCP server and any MCP-compatible client speaks to it. Anthropic introduced the protocol in late 2024; it now ships natively in Claude Desktop, Cursor, Continue, and a growing list of clients.
ExpenseBot publishes two MCP servers on npm. The first, @expensebot/mcp-server, is read-only and unauthenticated — it exposes the public knowledge base and feature documentation so an AI assistant can answer "what is ExpenseBot?" or "does it work with Sage 50 Canada?" without any login. Useful for evaluation and for AI agents that want to cite our capabilities. The second, @expensebot/mcp-server-auth, is the full account-scoped version: 35 tools across search, capture, Gmail scan, reports, and analytics, all gated behind a personal access token you generate in Settings. This is the one most users want — it talks to your actual receipts, your actual Google Sheet, and your actual spending history. ChatGPT and Claude.ai users connect to the remote server at mcp.expensebot.ai, which exposes 38 tools (36 ExpenseBot + 2 ChatGPT Deep Research shims). Both delivery methods are listed on the official MCP Registry.
What can my AI assistant do?
Once connected, you can ask in plain English. Some example prompts that all work today:
- "Find every Uber receipt I expensed last quarter."
- "Submit this receipt to ExpenseBot." (drag a photo into ChatGPT or Claude)
- "Scan my Gmail for new receipts from the last 30 days."
- "What were my top 5 software vendors in Q1?"
- "Generate a Schedule C report for 2025 and share it with my accountant."
- "I paid $80 cash for parking at the airport — log it."
- "Show me my profit and loss for 2026 year to date."
Behind the scenes, those prompts route to one of 38 tools — 36 ExpenseBot tools plus 2 ChatGPT Deep Research shims (search + fetch). You don't call these by name; your AI assistant picks the right one based on what you ask.
You don't call these tools by name — Claude picks the right one based on what you ask. The list is here so you know what's possible. Power users link the MCP from their freelancer workflow so their AI assistant becomes the front-end for bookkeeping.
Connect ExpenseBot to ChatGPT
ChatGPT users connect via Developer Mode — OpenAI's standard pre-verified flow. The one-time informational warning disappears once the verified-connector approval lands (review currently pending).
- Open ChatGPT → Settings → Apps & Connectors → Developer Mode
- Click Add custom app and paste the server URL:
https://mcp.expensebot.ai/mcp - Click Connect → Google login → Allow
- 38 tools appear in your ChatGPT tool list. Try: "Find my receipt photos from last week and submit them to ExpenseBot"
Connect ExpenseBot to Claude.ai
Claude.ai Pro users connect via the Connectors panel — no config files, no npm. Dynamic Client Registration (DCR) means you leave the OAuth fields blank; Claude handles the handshake automatically.
- Open Claude.ai → Settings → Connectors → Add custom connector
- Server URL:
Leave all OAuth fields blank (DCR handles registration automatically).https://mcp.expensebot.ai/mcp - Click Add → Connect → consent screen → Allow
- Try it: attach a receipt photo and type "Submit this Uber receipt to ExpenseBot"
Already using a desktop AI client? Use the npm package below — same 35 tools plus CLI-friendly token rotation.
How to connect it (3 minutes) — Claude Desktop
- Generate a token. In ExpenseBot, go to Settings → AI Assistant Tokens → Generate. Copy the token — it's shown once. Tokens are scoped to your account and can be revoked any time.
- Add to Claude Desktop config. Open the config file in any text editor:
- Mac:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Paste this block (replace the token):
{ "mcpServers": { "expensebot": { "command": "npx", "args": ["-y", "@expensebot/mcp-server-auth"], "env": { "EXPENSEBOT_TOKEN": "your-personal-access-token-here" } } } }Just want the read-only docs server? No token needed:
{ "mcpServers": { "expensebot-docs": { "command": "npx", "args": ["-y", "@expensebot/mcp-server"] } } } - Mac:
- Restart Claude Desktop and test. Fully quit and reopen Claude. Try "show me my top 5 software vendors last quarter". Claude will ask permission to run the
get_spending_summarytool — approve once, and the integration is live.
Other MCP clients
The same npm package works with every MCP-compatible client — only the config location changes.
Claude Code (CLI)
One command — no JSON editing:
claude mcp add expensebot -- npx -y @expensebot/mcp-server-auth --token=YOUR_TOKEN_HEREAdd --scope user to make it available across every Claude Code project.
Cursor
Edit ~/.cursor/mcp.json:
{
"mcpServers": {
"expensebot": {
"command": "npx",
"args": ["-y", "@expensebot/mcp-server-auth", "--token=YOUR_TOKEN_HERE"]
}
}
}In Cursor: Settings → Tools & Integrations → look for the green dot next to expensebot. In chat, switch to Agent mode and prompt as usual.
Continue, Cline, Windsurf, custom MCP clients
Same npx -y @expensebot/mcp-server-auth --token=... command — drop it into your client's MCP config block.
ChatGPT and Claude.ai web use the remote server at mcp.expensebot.ai — see setup instructions above ( ChatGPT, Claude.ai ).
Security & trust
Why use AI Assistant access?
- Faster than the dashboard for ad-hoc questions. "What did I spend at Costco last month?" is one sentence in Claude versus four clicks in the UI.
- No app switching. If you live in Claude or Cursor for writing and code, your expense answers come to you.
- Conversational receipt submission. Drag a photo into chat, say what it was for, and it lands as a row in your sheet — categorized, with vendor and total extracted.
- Complex analytics in natural language.
get_deep_analyticssurfaces top vendors, anomalies, month-over-month deltas and unusual spend without you writing a single SQL query or pivot table. - Cash entry by description. "$80 cash for airport parking yesterday" becomes a properly tagged cash expense with date, amount, category, and notes.
Security & token model
Personal access tokens (PATs) are the one credential the MCP server cares about. Each token is scoped to your account only — it can't read another user's data, even if leaked. Tokens have a configurable expiry you choose at issue time, and you can revoke any token from Settings → AI Assistant Tokens with immediate effect (the next request fails 401). Token issuance, use, and revocation are audit-logged in Firestore against your account so you can review what was used when. Tokens themselves are stored hashed (SHA-256) — even ExpenseBot staff can't read the original string out of the database.
Your underlying expense data never moves. Receipts stay in your Google Drive, your sheet stays in your Drive, and each MCP tool call reads or writes those files using your existing OAuth grants. The only data that flows through your AI provider is the specific tool result your assistant asked for — same trust model as any LLM tool-use call. If you're inviting an accountant later, the share happens through Google Drive sharing, not through the MCP token.
Compatible AI assistants
MCP support is growing quickly. Today the ExpenseBot MCP works out of the box with:
- ChatGPT — Plus/Pro plans. Connect via Developer Mode in Apps & Connectors. (setup ↑)
- Claude.ai — Pro plan. Connect via Settings → Connectors. (setup ↑)
- Claude Desktop — Mac, Windows, Linux. Native MCP support via npm package. (setup ↑)
- Cursor IDE — Mac, Windows, Linux. Add via Settings → Tools & Integrations. (setup ↑)
- Claude Code (CLI) — one command. (setup ↑)
- Continue, Cline, Windsurf — same npm package, different config path. (setup ↑)
- Custom agents built on the Anthropic, OpenAI, or open-source MCP SDKs.
If your client follows the MCP wire format (JSON-RPC over stdio), ExpenseBot works. The official and constantly-updated client list lives at modelcontextprotocol.io/clients.
Why this matters
Most expense apps see receipts. The ExpenseBot MCP lets your AI act on them — search, submit, scan Gmail, generate a tax report, share it with your accountant — using your actual Google Sheet as the source of truth. There's no separate mirror database to drift, no proprietary ledger to escape from, no "export to CSV" step. Your AI assistant reads the same sheet you read, writes the same rows you'd write, and triggers the same Gmail scanner you'd trigger from the dashboard.
That's the Gmail-Sheets-native angle. ExpenseBot was built from day one around the data your life already runs on — receipts in Gmail, ledger in Google Sheets, files in Drive — instead of on a closed app database. The MCP server inherits that. When you ask Claude to scan Gmail for new receipts, it triggers the same scanner that runs nightly. When it submits a receipt, the row lands in the sheet you already own. We're listed on the official MCP Registry at io.github.TotesMagotes/mcp-server-auth so registry-aware clients can find us automatically.
See pricing plans for full feature breakdown. The MCP servers are public on npm; account-scoped tools require an active ExpenseBot account.
New to the AI-first workflow? The tutorial walkthrough Manage Expenses from Inside ChatGPT or Claude shows real prompts, the 5-minute connector setup for ChatGPT and 3-minute setup for Claude.ai, the 5 workflows that replace separate apps, and the OAuth security model.
Frequently asked questions
What is MCP (Model Context Protocol)?
Model Context Protocol (MCP) is an open standard introduced by Anthropic that lets AI assistants connect to external tools and data sources through a uniform interface. Instead of every app building a one-off ChatGPT plugin or Claude integration, an app publishes one MCP server and any MCP-compatible client (Claude Desktop, Cursor, Continue, custom agents) can talk to it. Think of it as USB-C for AI — one cable, many devices. ExpenseBot publishes two MCP servers on npm so your AI assistant can search your receipts, submit new ones, and analyze your spending using the same data you see in your dashboard. Learn more at modelcontextprotocol.io.
Do I need to be a developer to use the ExpenseBot MCP?
Not really. If you can edit a JSON config file in a text editor, you can set it up — the entire flow is: (1) generate a token in ExpenseBot Settings, (2) paste a 9-line block into Claude Desktop's config file, (3) restart Claude. No npm, no terminal commands, no coding. Claude Desktop downloads the MCP server automatically the first time it runs via npx. The harder part is knowing what to ask Claude once it's connected — and we cover that with example prompts on this page. If you do hit trouble, support@expensebot.ai will walk you through it.
What's the difference between the two ExpenseBot MCP servers?
@expensebot/mcp-server is read-only and unauthenticated — it exposes the public ExpenseBot knowledge base and documentation so an AI assistant can answer questions about features, pricing, and tax-form mapping without any login. Useful for prospects evaluating the product or for AI agents that need to cite ExpenseBot capabilities. @expensebot/mcp-server-auth is the full version: 35 tools across search, capture, Gmail scan, reports, and analytics, all scoped to your personal account via a personal access token. This is what most users want — it's the one that searches your actual receipts and submits new ones. ChatGPT and Claude.ai users connect to the remote server at mcp.expensebot.ai, which adds 2 Deep Research shims for a total of 38 tools.
Does the MCP server work with ChatGPT?
Native MCP support shipped in ChatGPT for paid plans in 2025, and OpenAI's Agents SDK supports MCP servers as well. You can also use the ExpenseBot MCP from any custom agent built on the Anthropic, OpenAI, or other LLM SDKs — the protocol is open. The most polished out-of-the-box experience today is Claude Desktop, where MCP shipped first and configuration is a single JSON file. Cursor IDE has built-in MCP support too. For other clients, see the up-to-date list at modelcontextprotocol.io/clients.
Is my expense data sent to Anthropic / OpenAI when I use the MCP?
Only the parts your AI assistant explicitly reads. When you ask Claude 'how much did I spend on software last quarter,' Claude calls the ExpenseBot MCP server's get_spending_summary tool, the server fetches that summary from your Google Sheet, and the result text becomes part of the conversation Claude sees — and is therefore sent to Anthropic as context like any other Claude message. ExpenseBot doesn't send data to Anthropic itself. Your full ledger never leaves your Google Drive; only the specific tool results requested in each conversation flow through the AI provider. This is the same trust model as any LLM tool-use call.
How do I revoke access if my token leaks?
Open ExpenseBot → Settings → AI Assistant Tokens, find the token row, and click Revoke. The token is invalidated immediately on the server side; the next MCP request from any client using it will fail with 401 Unauthorized. Generate a new token, paste it into your Claude Desktop config, restart Claude, and you're back. All token issuance, use, and revocation events are audit-logged in Firestore against your account. Tokens themselves are stored hashed (SHA-256) — even ExpenseBot staff can't read them out of the database.
Can I use the MCP server with my own AI agent / custom client?
Yes. Both servers follow the standard MCP wire format (JSON-RPC over stdio), so any MCP client library works — Anthropic's TypeScript / Python SDKs, the official MCP SDKs at github.com/modelcontextprotocol, or your own implementation. Run @expensebot/mcp-server-auth as a subprocess and pass EXPENSEBOT_TOKEN in the environment. The server advertises its 35 tools via the standard tools/list response so your agent can discover them at runtime. We're also listed on the official MCP Registry at io.github.TotesMagotes/mcp-server-auth so registry-aware clients can find us automatically.
Does this work on Windows or only Mac?
Both, plus Linux. The MCP servers ship as Node.js packages on npm and run anywhere Node 18+ runs. Claude Desktop has native installers for Mac and Windows; the config file lives at ~/Library/Application Support/Claude/claude_desktop_config.json on Mac and %APPDATA%\Claude\claude_desktop_config.json on Windows. Cursor IDE's MCP config works identically across all three operating systems. The only platform-specific step is finding the right config path — once it's edited, the integration behaves the same everywhere.
Do I need ChatGPT Plus or Claude Pro to use this?
Yes. ChatGPT requires a paid plan (Plus or Pro) to use custom connectors in Developer Mode. Claude.ai requires a Pro subscription to use the Connectors feature. ExpenseBot itself stays free for the 60-day trial regardless of which client you connect from.
What's the difference between Developer Mode and the official connector directory?
Identical functionality — the same 38 tools, the same OAuth flow, the same data access. Developer Mode is OpenAI's and Anthropic's standard pre-verified flow: you paste the server URL and connect immediately, with a one-time informational warning that disappears once the connector is verified. Directory listing adds discoverability so other users can find ExpenseBot without entering the URL manually. Verification review is pending for both ChatGPT and Claude.ai directories.
Will my existing Claude Desktop or Cursor setup keep working?
Yes, unchanged. The stdio npm package (@expensebot/mcp-server-auth) is not affected by the remote server launch. Both delivery methods expose the same ExpenseBot tools — the remote server adds ChatGPT and Claude.ai web support on top of what the npm package already does. No migration required.
What data does ChatGPT or Claude.ai see?
Only what you explicitly authorize on the consent screen. ExpenseBot uses six fine-grained OAuth scopes: expenses.read, expenses.write, gmail.scan, reports.read, reports.write, and compliance. Deny any scope at sign-in and the corresponding tools simply don't appear in the AI's tool list. Your full spreadsheet never leaves Google Drive — each tool call fetches only the specific result requested, exactly like any other LLM tool-use call.
Ready to connect ExpenseBot to your AI assistant?
Pick the path that matches your AI client. ChatGPT and Claude.ai are one-click connector adds; desktop clients use a token.
60-day free trial · No credit card · Cancel any time
