Home · Guides

Can an assistant read a photo of a receipt and log the expense

Not with these servers. No optical character recognition exists anywhere in this catalogue, and the PDF server says so in its own tool description rather than failing quietly: text extraction returns nothing for a scan and tells you that is the case. If your receipts arrive as photographs and you want the numbers pulled out automatically, you need a different tool, and the next section names some.

Servers that do read scans

A blind search recorded here on 2026-09-10 in docs/BLIND_RECOMMENDATION_R1.md turned up several, all in the document-extraction category rather than the bookkeeping one.

Worth saying plainly: the assistant itself can often read a photograph you paste into the chat. If you drop a receipt image into Claude and ask for the total, you will usually get it. That path needs no MCP server at all, and for a handful of receipts a month it is the right answer.

What the expense server does instead

It stores the file and proves it later. receipt_attach takes a path to a receipt that already exists on your disk, records the path against the expense, and stores a SHA-256 hash of the file's contents. The point of the hash is an audit: two years later you can show that the file on disk is byte-for-byte the one that was attached, which is a different and more useful claim than having read the number off it.

The amount, the date, the category and the VAT come from what you say, not from the image. In practice the workflow that works is to paste the photo into the chat, let the assistant read it, and have it call expense_add with the figures plus receipt_attach with the file. The server never sees the picture; the model does.

One click, no JSON. Download expense-tracker.mcpb from the latest release and open it in Claude Desktop. It runs on the Node runtime Claude Desktop ships with, so your own PATH and node version never come into it.

Or a URL, with nothing installed. /mcp/connect mints a free anonymous token and prints the ready line:

claude mcp add --transport http expense-tracker https://mcp.zovo.one/mcp/expense-tracker/t/<token>

Or from a clone, for a client with no bundle installer. Build once, then point the client at the built file:

git clone https://github.com/theluckystrike/mcp-servers.git
cd mcp-servers && npm install
npm run build -w packages/mcp-license -w servers/expense-tracker

claude mcp add --scope user expense-tracker -- node /absolute/path/to/mcp-servers/servers/expense-tracker/dist/index.js

Claude Desktop, Cursor, Windsurf and Cline take the same two strings as JSON, in claude_desktop_config.json or the client's own MCP config file:

{
  "mcpServers": {
    "expense-tracker": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-servers/servers/expense-tracker/dist/index.js"]
    }
  }
}

The npm packages are not published yet, so the npx form below returns a 404 today. It is kept because it is what that config becomes the day the publish lands, with nothing else changed; installing these servers when npx does not work yet has the whole picture.

claude mcp add expense-tracker -- npx -y @theluckystrike/mcp-expense-tracker

Free tier and price

Expense tracker free tier: Unlimited logging; list and summary cover the last 30 days; 3 projects; 5 rules; CSV export up to 200 rows, never partial.

Category rules are part of that, so recurring receipts classify themselves once you have taught it five rules. Pro is $19 once, or $39 once for all 33 servers.

What it cannot do

Questions

Can Claude read the receipt if I paste the photo into the chat?

Usually yes, and that path needs no MCP server. The model reads the image and can then call expense_add with the figures and receipt_attach with the file. The server itself never sees the picture.

What does receipt_attach actually store?

The path to the file and a SHA-256 hash of its contents, against the expense. It does not copy the file and it does not read what is on it. The hash exists so an audit can prove the file has not changed.

Which MCP server should I use for scanned bank statements?

DocuClipper or Bankstatemently, both of which are built for that job, or a self-hosted Stirling-PDF behind gufao's wrapper if you want to keep the documents on your own machine. The bank-statement server here takes a CSV export instead.

Why is there no OCR here?

OCR is either a large native dependency or a network service, and every server in this catalogue is pure JavaScript that runs offline. Adding it would change what the whole set is, so the tool descriptions say no OCR rather than guessing at a scan.

Does moving the receipt file break anything?

The link to it, yes. The expense record keeps the old path and the hash, so you will see that the file is no longer where it was. The stored figures are unaffected.

Related

All MCP servers and prices · All guides · Buy the bundle $39