Receipt Extraction

MCP serverDev tools

Turns receipts into structured data with Australian GST and ABN details worked out for you. Instead of just reading the text, it assigns entertainment and input tax credit codes to each line, so your AI can sort receipts for tax purposes.

Use Receipt Extraction in Claude, ChatGPT or Ahel Desktop

Free. Sign in, add Receipt Extraction and connect your AI. About a minute.

Also: Claude Code · Cursor · Codex

Then ask your AI: use Receipt Extraction to extract receipt

Details

Available today. Use it from your connected AI after setup.

Add it from the repository at github.com/acjlabs/receipt-extraction, then share a receipt and ask your AI to extract and code it.

Receipt ExtractionStart free

What your AI can do with it

  • Extract line items from receipts
  • Assign entertainment tax codes to eligible lines
  • Assign input tax credit (ITC) codes per line
  • Recognise GST amounts and ABN details
  • Prepare receipts for tax reporting

Install Receipt Extraction

The server’s own address, for the clients that take one directly. Or connect Ahel once and every client you use reads it from one address, with the account kept on Ahel rather than in each client’s config.

  • Claude Code

    claude mcp add --transport http --scope user receipt-extraction 'https://receipt-extraction.acjlabs.com/mcp'

    Run it once in your project, then open /mcp to approve any sign-in the server asks for.

  • Claude Desktop

    https://receipt-extraction.acjlabs.com/mcp

    Add a custom connector in Settings, paste this address, and approve the sign-in.

  • Cursor

    cursor://anysphere.cursor-deeplink/mcp/install?name=receipt-extraction&config=eyJ1cmwiOiJodHRwczovL3JlY2VpcHQtZXh0cmFjdGlvbi5hY2psYWJzLmNvbS9tY3AifQ==

    Open the link and Cursor adds the server at that address.

  • ChatGPT

    https://receipt-extraction.acjlabs.com/mcp

    In Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.

  • Codex

    codex mcp add receipt-extraction --url 'https://receipt-extraction.acjlabs.com/mcp'

    Run it once, then sign in with codex mcp login receipt-extraction if the server asks for an account.

From the project's README

As published by acjlabs/receipt-extraction in README.md.

AU GST/ABN-aware receipt & invoice extraction — applies documented AU entertainment/ITC tax-code rules per line item, returning a tax_code, a confidence, and a one-line rationale for each, not just OCR text. You supply the document; get validated structured JSON: vendor, line items, tax, totals — with Australian GST and ABN checksum validation built in from day one. One API call, no hand-rolled vision-LLM prompts, no re-deriving ABN/GST rules from the ATO's own documentation.

What it does

  • Accepts a receipt/invoice image or PDF (base64), returns a clean, versioned Receipt JSON object.
  • Validates the vendor's ABN (11-digit modulus-89 checksum) and cross-checks GST across line items and totals, excluding non-creditable GST on entertainment-coded expenses per the documented rule set.
  • Each line item carries its tax_code plus a confidence (0–1) and a one-line rationale naming the actual rule applied (e.g. "entertainment ITC denied, no exception context", or the incidental-to-travel exception that flips a restaurant-style meal back to claimable) — so you can check the call, not just trust it.
  • Works as an MCP server (extract_receipt tool) or a plain HTTPS API — usable from Claude, Cursor, or any HTTP client.

GST handling reflects publicly documented Australian tax law and is provided as software output, not tax advice.

Example (MCP tool call)

{
  "tool": "extract_receipt",
  "input": { "document_base64": "<base64 image or PDF>", "mime_type": "image/jpeg" }
}
{
  "vendor": { "name": "Acme Pty Ltd", "abn": "51824753556", "abn_valid": true },
  "date": "2026-07-14",
  "line_items": [
    {
      "description": "Widget",
      "qty": 2,
      "unit_price": 12.5,
      "gst": 2.5,
      "tax_code": "taxable",
      "confidence": 0.95,
      "rationale": "Standard-rated retail good; 10% GST applies."
    }
  ],
  "totals": { "subtotal": 25.0, "gst": 2.5, "total": 27.5 },
  "schema_version": "1.0"
}

Pricing

The free tier is self-serve today; paid plans are opening soon.

  • Free — 20 documents/month, no card required. Self-serve today.
  • Pay-as-you-go (opening soon) — $0.02/document, no minimum.
  • Pro (opening soon) — $19/month for 1,500 documents (~$0.013/doc effective), with priority support.

Want a paid plan now? Register your interest and we'll set you up first.

Getting a key

The MCP server is live at https://receipt-extraction.acjlabs.com/mcp (the alternate https://acjlabs-receipt-extraction.acjlabs.workers.dev/mcp address reaches the same deployment and keeps working, so existing configurations need no change). Free-tier keys self-serve — POST /v1/signup with { "email": "you@example.com" } returns your key directly in the response, good for 20 documents/month, no card required. Store it immediately — it is shown once and cannot be recovered if lost (re-signup for a new one). Paid keys provision the same way via a one-time claim link once Pro/pay-as-you-go billing is live. See https://acjlabs-receipts.pages.dev for the same steps plus pricing and a comparison against alternatives.

Connecting it to an MCP client

With Claude Code:

claude mcp add --transport http receipt-extraction \
  https://receipt-extraction.acjlabs.com/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"

Any other MCP client that supports a remote HTTP server with a custom header (Cursor, Cline, VS Code, etc.) works the same way: point it at the URL above with an Authorization: Bearer YOUR_API_KEY header. A gateway or scanner that can only forward the raw key value (no Bearer prefix) also works — both forms authenticate. Tool discovery (initialize/tools/list) doesn't require a key at all; only calling extract_receipt does.

See docs/quickstart.md for a full copy-paste walkthrough (getting a key, per-client configs, confirming the connection with curl) if you'd rather follow one linear guide.

How accurate is it?

Validated 4/4 against hand-built (but genuinely readable) test documents covering net-priced, GST-inclusive-only, checksum-invalid-ABN, and unreadable-document cases. Real production accuracy across more document formats will be tracked once live traffic exists.

npm client

Prefer a typed function over hand-rolling MCP JSON-RPC calls? @acjlabs/receipt-extraction-client (live on npm) wraps the extract_receipt tool call:

npm install @acjlabs/receipt-extraction-client
import { createReceiptExtractionClient } from "@acjlabs/receipt-extraction-client";

const client = createReceiptExtractionClient({
  baseUrl: "https://receipt-extraction.acjlabs.com",
  apiKey: "...",
});
const receipt = await client.extractReceipt(base64EncodedImageOrPdf, "image/png");

Why not just use generic OCR?

Generic OCR extraction APIs return raw fields. None of them apply the AU layer on top: that an Australian ABN carries an 11-digit modulus-89 checksum, or that GST apportionment differs for entertainment-coded expenses. You'd build and maintain that yourself, against someone else's schema that can change under you. See the full comparison, or read why AU GST rules break most receipt-extraction tools (the ABN checksum, the three real GST cases, and how to test any tool against them).

Source availability & support

This repository hosts the documentation for the hosted service. The service implementation is not open source. Bug reports and feature requests are welcome in this repo's Issues; you can also reach us at contact@acjlabs.com.

Tools it offers (1)

What this server listed when Ahel dialed its public endpoint in Sep 2026, with no key and no account of yours. The names are the server’s own.

  • extract_receipt

Signals

GitHub stars
2
Last commit
Aug 2026
Advanced
Delivery
receipt-extraction MCP server → your Ahel connector (mcp.ahel.ai) → your AI.
Item type
mcp-server
Key
com-acjlabs-receipt-extraction
Source
github.com/acjlabs/receipt-extraction
Hosted endpoint
https://receipt-extraction.acjlabs.com/mcp