Skip to main content
Expense

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:

Server URL
https://expense.labnotes.org/mcp

All connections use OAuth: the first connection opens a sign-in flow to your Expense account.

Claude (claude.ai and Claude Desktop)

  1. 1.Go to claude.ai/customize/connectors
  2. 2.Click the + icon, then "Add custom connector"
  3. 3.Enter the server URL: https://expense.labnotes.org/mcp
  4. 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

ToolWritesWhat it does
capture_receiptyesCapture a receipt from an image or PDF (file data or URL): the extraction pipeline, stores the image, creates the expense.
log_mileageyesLog a driving trip from ordered stops; geocodes, routes, and prices it at the IRS rate. One way or return trip, up to you.
list_expensesnoQuery expenses by date range, category, merchant, report, or type.
expense_summarynoTotals and per-category breakdown: the "how much did I spend on X?" tool.
list_reportsnoReports with expense counts and exact totals.
create_reportyesCreate a report (fails if the name exists).
close_reportyesClose (or reopen) a report; closed reports refuse new expenses.
add_to_reportyesMove an expense into an open report.
export_reportnoRender a report as a PDF (same layout as the web export) and return it base64-encoded.
list_categoriesnoThe account's categories; use these when categorizing.
list_merchantsnoMerchant names previously used, most recent first.
get_settingsnoHome address, the account's named locations (work, hospital), and the IRS mileage-rate table.
reconcilenoMatch 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.