MCP server
Connect any AI assistant to Expense.
Expense speaks the Model Context Protocol: connect any MCP client (Claude, ChatGPT, Gemini CLI, and others) and it can capture receipts from photos and PDFs, log drives at the IRS rate, answer spending questions from your data, build and export reports, and reconcile bank statements. Connecting is signing in with your Expense account via OAuth.
Setup instructions
The base MCP server address is:
https://expense.labnotes.org/mcpAll connections use OAuth: the first connection opens a sign-in flow to your Expense account.
Claude (claude.ai and Claude Desktop)
- 1.Go to claude.ai/customize/connectors
- 2.Click the + icon, then "Add custom connector"
- 3.Enter the server URL:
https://expense.labnotes.org/mcp - 4.Claude opens a browser to sign in to Expense; approve the connection
The connector also appears in Claude Desktop and Claude Code when signed in with the same Claude account.
What your assistant can do
Capture receipts
Upload a photo or a PDF of a receipt to the chat and it reads it and picks the category from your merchant history, the same as the web app.
Log drives in natural language
“Log the drive home from the office on Tuesday.” It geocodes the stops, works out the route, and prices the drive at the IRS rate for its date.
Answer questions about spending
“What did I spend on flights last quarter?” The answer comes from your own expenses.
Build and export reports
Create or close a report, move expenses into it, and export the PDF in one sentence instead of filling out a form.
Reconcile statements
Paste the bank statement and it finds every charge you never logged. Read-only: it writes nothing and leaves your expenses as they are.
Tax-season answers
Categories are the IRS Schedule C lines, so “what’s my meals and entertainment total?” is answered in the terms your tax form uses.
Tools
| Tool | Writes | What it does |
|---|---|---|
| capture_receipt | yes | Capture a receipt from an image or PDF (file data or URL): the extraction pipeline, stores the image, creates the expense. |
| log_mileage | yes | Log a driving trip from ordered stops; geocodes, routes, and prices it at the IRS rate. One way or return trip, up to you. |
| list_expenses | no | Query expenses by date range, category, merchant, report, or type. |
| expense_summary | no | Totals and per-category breakdown: the "how much did I spend on X?" tool. |
| list_reports | no | Reports with expense counts and exact totals. |
| create_report | yes | Create a report (fails if the name exists). |
| close_report | yes | Close (or reopen) a report; closed reports refuse new expenses. |
| add_to_report | yes | Move an expense into an open report. |
| export_report | no | Render a report as a PDF (same layout as the web export) and return it base64-encoded. |
| list_categories | no | The account's categories; use these when categorizing. |
| list_merchants | no | Merchant names previously used, most recent first. |
| get_settings | no | Home address, the account's named locations (work, hospital), and the IRS mileage-rate table. |
| reconcile | no | Match a bank statement (CSV/QFX/OFX) against logged expenses; pure analysis, writes nothing. |
Example prompts
- “Here's my receipt, log it under Q3.”
- “How much did I spend on meals and entertainment last quarter?”
- “Move all unreported June expenses into the Q2 report and export the PDF.”
- “Reconcile this statement.” (paste the CSV)
Security
Connecting is OAuth 2.1 with PKCE. The assistant never sees your password; access tokens live an hour, refresh tokens rotate, and only their hashes are stored. A connection reaches your own account and nothing else. Revoke one token, or the whole app, in Settings → Agents & API (MCP).
Signed in? Manage or revoke existing connections in Settings → Agents & API (MCP). For the read-only in-page tools a browser agent can use while you're signed in, see the WebMCP page. Prefer to skip the connection? Insights answers questions about your spending inside the app.
Your expenses, on speaking terms with your assistant.
Add your first receipt in under a minute, then connect your assistant whenever you're ready.