Receipt Extraction

com.acjlabs由 acjlabs.com 發布官方發布者v0.1.2更新於 Nov 2, 2026

AU GST/ABN receipt extraction — assigns entertainment/ITC tax codes per line, not just OCR.

發布方自己的服務:Catalog Attribute Normalizer

已驗證Streamable HTTP可網頁執行金融資料與分析

概覽

AI 產生的概覽

遠端 MCP 伺服器,把收據或發票的圖片與 PDF 轉成結構化 JSON,並進行澳洲 ABN 與 GST 驗證。

可以做什麼
  • 從 base64 編碼的圖片或 PDF 擷取結構化收據,回傳供應商、日期、明細項目、合計與 schema 版本
  • 以 11 位 modulus-89 檢查碼驗證供應商 ABN,並在明細項目與合計之間交叉核對 GST
  • 為每個明細項目標註澳洲稅務代碼,並附上信心分數與一行說明所套用規則的理由
  • 逐項套用招待費用與進項稅額扣抵規則,包含差旅附帶消費的例外情形
適用情境
適合需要讀取澳洲收據或發票,並產出可直接入帳且附 GST 與 ABN 驗證之明細項目的情境。適用於費用蒐集與稅務代碼複核流程,且每項分類都可追溯查核。
執行需求
透過 streamable HTTP 存取的遠端 MCP 端點,不需在本機安裝套件。呼叫擷取工具需要 API 金鑰,以 Authorization Bearer 標頭傳送,金鑰可透過電子郵件自助註冊取得。工具探索不需金鑰。免費額度為每月 20 份文件。
安裝前請注意
API 金鑰在註冊時僅顯示一次且無法找回,請立即保存。收據與發票圖片會上傳至第三方託管服務,且實作並非開放原始碼。GST 結果為軟體輸出而非稅務建議,準確率僅在四份測試文件上驗證過。付費方案尚未上線。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Receipt Extraction,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/com.acjlabs%2Freceipt-extraction/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "receipt-extraction": {
      "type": "http",
      "url": "https://receipt-extraction.acjlabs.com/mcp"
    }
  }
}

README

Receipt Extraction

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)

json
{  "tool": "extract_receipt",  "input": { "document_base64": "<base64 image or PDF>", "mime_type": "image/jpeg" }}
json
{  "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": "[email protected]" } 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:

bash
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:

sh
npm install @acjlabs/receipt-extraction-client
ts
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 [email protected].

來源:README.md,提交 ab30961

工具

1

extract_receipt

Extract Receipt

Extracts a structured Receipt (vendor, ABN-checked, GST-aware line items and totals) from a base64-encoded receipt or invoice image/PDF.

輸入參數mime_type必填document_base64必填

版本歷史

1
  1. v0.1.2最新Sep 16, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。

其他 Acjlabs 整合