Skip to main content
Glama
knportal

Invoice Parser MCP

by knportal

Invoice Parser MCP

Analysieren Sie Rechnungen, Quittungen und Finanzdokumente in strukturiertes JSON — direkt aus Ihrem KI-Agenten.

License: MIT Version MCP

Gelistet auf: Glama · Smithery · mcp.so

Entwickelt für das Model Context Protocol. Unterstützt durch Claude Vision.

Funktionsweise

Extrahiert strukturierte Daten aus PDF-Rechnungen, gescannten Quittungen und Bilddateien. Keine Vorlagen, keine OCR-Konfiguration erforderlich — Claude Vision liest das Dokument und liefert sauberes JSON.


Related MCP server: kelnix-receipt-mcp-api

Tools

Tool

Beschreibung

Preis

parse_invoice

Vollständige Rechnungsanalyse (Anbieter, Einzelposten, Summen, Fälligkeitsdatum)

$0.05/Aufruf

parse_receipt

Analyse von Einzelhandelsquittungen (Händler, Artikel, Steuer, Zahlungsmethode)

$0.05/Aufruf

extract_line_items

Nur die spezifizierte Liste, sonst nichts

$0.01/Aufruf

extract_totals

Nur Zwischensumme, Steuer, Gesamtbetrag, Fälligkeitsdatum

$0.01/Aufruf

validate_invoice

Mathematische Validierung — prüft, ob die Einzelposten korrekt addiert wurden

$0.01/Aufruf

export_to_csv

Batch-Analyse mehrerer Dateien → Zusammenfassungs-CSV (max. 20)

$0.10/Aufruf


Tool-Referenz

parse_invoice

Vollständige Rechnungsanalyse. Extrahiert jedes strukturierte Feld aus einer Lieferantenrechnung.

Parameter

Parameter

Typ

Erforderlich

Beschreibung

file_path

string

Ja

Absoluter Pfad zur Rechnungs-PDF oder zum Bild (PNG, JPG, WEBP).

api_key

string

Nein*

Ihr InvoiceParser API-Schlüssel. Erhältlich unter plenitudo.ai.

payment_proof

string

Nein*

x402 Zahlungsnachweis (Base USDC Transaktions-Hash). Alternative zum api_key.

*Entweder api_key oder payment_proof muss angegeben werden.

Beispieleingabe

{
  "file_path": "/Users/me/documents/invoice_acme_jan2025.pdf",
  "api_key": "ip_free_abc123"
}

Beispielausgabe

{
  "ok": true,
  "document_type": "invoice",
  "vendor": {
    "name": "Acme Corp",
    "address": "123 Industrial Way, Austin TX 78701",
    "email": "billing@acme.com",
    "phone": "512-555-0100",
    "tax_id": "12-3456789"
  },
  "bill_to": {
    "name": "Jane Smith",
    "address": "456 Oak Ave, Boston MA 02101",
    "email": "jane@example.com"
  },
  "invoice_number": "INV-2025-0142",
  "invoice_date": "2025-01-15",
  "due_date": "2025-02-15",
  "payment_terms": "Net 30",
  "currency": "USD",
  "line_items": [
    {
      "description": "Software consulting — January",
      "quantity": 40,
      "unit_price": 175.0,
      "total": 7000.0,
      "tax_rate": 0.0
    }
  ],
  "subtotal": 7000.0,
  "discount": 0.0,
  "tax_amount": 560.0,
  "shipping": 0.0,
  "total": 7560.0,
  "amount_due": 7560.0,
  "notes": "Wire transfer preferred. See banking details on page 2.",
  "po_number": "PO-98765"
}

parse_receipt

Analysieren Sie eine Einzelhandels- oder Ausgabenquittung. Entwickelt für Point-of-Sale-Belege, Restaurantrechnungen und Spesenabrechnungsdokumente.

Parameter

Parameter

Typ

Erforderlich

Beschreibung

file_path

string

Ja

Absoluter Pfad zur Quittungs-PDF oder zum Bild (PNG, JPG, WEBP).

api_key

string

Nein*

Ihr InvoiceParser API-Schlüssel.

payment_proof

string

Nein*

x402 Zahlungsnachweis (Base USDC Transaktions-Hash).

Beispieleingabe

{
  "file_path": "/Users/me/receipts/coffee_shop_march1.jpg",
  "api_key": "ip_free_abc123"
}

Beispielausgabe

{
  "ok": true,
  "document_type": "receipt",
  "merchant": {
    "name": "Blue Bottle Coffee",
    "address": "300 Webster St, Oakland CA 94609",
    "phone": "510-555-0200",
    "website": "bluebottlecoffee.com"
  },
  "date": "2025-03-01",
  "time": "09:14",
  "receipt_number": "5541",
  "cashier": "Maria",
  "items": [
    { "name": "Latte (large)", "quantity": 1, "unit_price": 6.50, "total": 6.50, "sku": "", "category": "beverage" },
    { "name": "Croissant", "quantity": 1, "unit_price": 4.00, "total": 4.00, "sku": "", "category": "pastry" }
  ],
  "subtotal": 10.50,
  "discounts": 0.0,
  "tax": 0.84,
  "tip": 2.00,
  "total": 13.34,
  "currency": "USD",
  "payment_method": "Visa",
  "card_last_four": "4242",
  "transaction_id": "TXN-88821",
  "loyalty_points": null,
  "notes": ""
}

extract_line_items

Leichte Extraktion, die nur die spezifizierte Liste zurückgibt. Schneller und günstiger als parse_invoice, wenn Sie nur die Einzelposten benötigen.

Parameter

Parameter

Typ

Erforderlich

Beschreibung

file_path

string

Ja

Absoluter Pfad zur Rechnungs- oder Quittungs-PDF oder zum Bild.

api_key

string

Nein*

Ihr InvoiceParser API-Schlüssel.

payment_proof

string

Nein*

x402 Zahlungsnachweis (Base USDC Transaktions-Hash).

Beispielausgabe

{
  "ok": true,
  "line_items": [
    { "description": "Widget A (x10)", "quantity": 10, "unit_price": 12.00, "total": 120.00 },
    { "description": "Widget B (x5)",  "quantity": 5,  "unit_price": 24.00, "total": 120.00 }
  ],
  "item_count": 2
}

extract_totals

Extrahiert nur die finanzielle Zusammenfassung (Zwischensumme, Steuern, Gesamtbeträge, Fälligkeitsdatum), ohne Einzelposten oder Anbieterdetails zu analysieren.

Parameter

Parameter

Typ

Erforderlich

Beschreibung

file_path

string

Ja

Absoluter Pfad zur Rechnungs- oder Quittungs-PDF oder zum Bild.

api_key

string

Nein*

Ihr InvoiceParser API-Schlüssel.

payment_proof

string

Nein*

x402 Zahlungsnachweis (Base USDC Transaktions-Hash).

Beispielausgabe

{
  "ok": true,
  "currency": "USD",
  "subtotal": 240.00,
  "discount": 0.0,
  "tax_amount": 19.20,
  "tax_rate": 8.0,
  "shipping": 0.0,
  "tip": 0.0,
  "total": 259.20,
  "amount_due": 259.20,
  "invoice_date": "2025-01-15",
  "due_date": "2025-02-15"
}

validate_invoice

Tool zur mathematischen Validierung. Überprüft, ob die Summen der Einzelposten Menge × Einzelpreis entsprechen, ob die Zwischensumme mit der Summe der Einzelposten übereinstimmt, ob die Steuerberechnung konsistent ist und ob der Endbetrag korrekt ist. Erlaubt eine Rundungstoleranz von ±$0.02.

Parameter

Parameter

Typ

Erforderlich

Beschreibung

file_path

string

Ja

Absoluter Pfad zur Rechnungs-PDF oder zum Bild.

api_key

string

Nein*

Ihr InvoiceParser API-Schlüssel.

payment_proof

string

Nein*

x402 Zahlungsnachweis (Base USDC Transaktions-Hash).

Beispielausgabe — gültige Rechnung

{
  "ok": true,
  "valid": true,
  "issues": [],
  "summary": {
    "line_items_checked": 3,
    "subtotal": 450.00,
    "tax": 36.00,
    "total": 486.00,
    "currency": "USD"
  }
}

Beispielausgabe — ungültige Rechnung

{
  "ok": true,
  "valid": false,
  "issues": [
    {
      "field": "line_item_2_total",
      "expected": 120.00,
      "found": 100.00,
      "description": "quantity (10) × unit_price (12.00) = 120.00, but stated total is 100.00"
    }
  ],
  "summary": {
    "line_items_checked": 3,
    "subtotal": 340.00,
    "tax": 27.20,
    "total": 367.20,
    "currency": "USD"
  }
}

export_to_csv

Analysieren Sie bis zu 20 Rechnungen oder Quittungen im Batch und exportieren Sie eine Zusammenfassungs-CSV. Jede Zeile enthält: Dateiname, Dokumenttyp, Anbieter/Händler, Datum, Nummer, Zwischensumme, Steuer, Gesamtbetrag, Währung, Fälligkeitsdatum, Zahlungsmethode.

Parameter

Parameter

Typ

Erforderlich

Beschreibung

file_paths

Array von Strings

Ja

Liste der absoluten Pfade zu Rechnungs-/Quittungs-PDFs oder Bildern. Maximal 20.

output_path

string

Ja

Absoluter Pfad, unter dem die CSV-Ausgabedatei gespeichert wird.

api_key

string

Nein*

Ihr InvoiceParser API-Schlüssel.

payment_proof

string

Nein*

x402 Zahlungsnachweis (Base USDC Transaktions-Hash).

Beispieleingabe

{
  "file_paths": [
    "/Users/me/invoices/jan2025.pdf",
    "/Users/me/invoices/feb2025.pdf",
    "/Users/me/receipts/expense_march.jpg"
  ],
  "output_path": "/Users/me/exports/q1_summary.csv",
  "api_key": "ip_free_abc123"
}

Beispielausgabe (JSON-Antwort)

{
  "ok": true,
  "output_path": "/Users/me/exports/q1_summary.csv",
  "rows_written": 3,
  "errors": []
}

CSV-Spalten: filename, document_type, vendor_merchant, date, number, subtotal, tax, total, currency, due_date, payment_method


Unterstützte Formate

  • PDF (Rechnungen, gescannte Dokumente)

  • PNG, JPG, WEBP (Fotos von Quittungen, Screenshots)


Authentifizierung

Kostenlose Stufe: 20 Analysen/Monat mit einem API-Schlüssel (erhältlich unter plenitudo.ai)

Pay-per-use (x402): Kein Konto erforderlich. Senden Sie USDC auf Base an die Wallet-Adresse und übergeben Sie den Transaktions-Hash als payment_proof.

{
  "error": "Payment required",
  "x402": {
    "network": "base",
    "token": "USDC",
    "recipient": "0x9053FeDC90c1BCB4a8Cf708DdB426aB02430d6ad",
    "amount_usdc": 0.05
  }
}

Verwendung (Claude Desktop / MCP-Client)

{
  "mcpServers": {
    "invoice-parser": {
      "url": "https://invoice-parser.plenitudo.ai/mcp?ref=readme"
    }
  }
}

Architektur

server.py          — MCP server (6 tools: parse_invoice, parse_receipt,
                     extract_line_items, extract_totals, validate_invoice,
                     export_to_csv)
auth.py            — API key validation + usage tracking (SQLite)
x402.py            — x402 micropayment verification (USDC on Base)
config.py          — Environment variable loading
worker.js          — Cloudflare Worker (remote proxy for MCP traffic)
data/keys.db       — API key store (created at runtime)
data/usage.db      — Monthly usage counters (created at runtime)
logs/              — Structured log files
tests/             — Unit tests (mock Vision API, no real documents needed)

Anfragefluss

AI agent (Claude Desktop, Cursor, etc.)
    │
    │  MCP tool call (JSON-RPC over HTTP)
    ▼
Cloudflare Worker (worker.js)        ← optional remote proxy
    │
    │  Forwards to Railway deployment
    ▼
server.py (FastMCP, streamable HTTP)
    │
    ├── auth.py              validates API key / x402 proof
    ├── x402.py              verifies USDC transaction on Base
    └── Anthropic API        Claude Vision reads the document
            │
            ▼
        structured JSON → returned to agent

Umgebungsvariablen

Variable

Erforderlich

Beschreibung

ANTHROPIC_API_KEY

Ja

Anthropic API-Schlüssel für Claude Vision. Auf maxproxy für lokales Proxy-Routing setzen.

ANTHROPIC_BASE_URL

Nein

Überschreibt die Anthropic Basis-URL. Bei Verwendung von maxproxy lokal auf http://localhost:3456 setzen. In Cloud-Deployments nicht setzen.

CLAUDE_MODEL

Nein

Claude Modell-ID. Standard ist claude-3-5-sonnet-20241022.

INVOICEPARSER_DATA_DIR

Nein

Verzeichnis für SQLite-Datenbanken. Standard ist ./data.

PORT

Nein

HTTP-Port. Standard ist 8000. Railway setzt dies automatisch.


Deployment (Railway)

  1. Forken Sie dieses Repo

  2. Verbinden mit Railway → Neues Projekt → Von GitHub bereitstellen

  3. Umgebungsvariablen hinzufügen:

    • ANTHROPIC_API_KEY — Ihr Anthropic API-Schlüssel

    • INVOICEPARSER_DATA_DIR/data

    • STRIPE_WEBHOOK_SECRET — aus dem Stripe-Dashboard

    • STRIPE_PRO_PRICE_ID — aus dem Stripe-Dashboard

  4. Ein persistentes Volume unter /data hinzufügen

  5. Bereitstellen


Lokal ausführen (optionales maxproxy-Routing)

Wenn Sie den Server auf derselben Maschine wie eine maxproxy-Instanz auf Port 3456 ausführen, können Sie Claude Vision-Aufrufe darüber leiten, anstatt die Anthropic API direkt aufzurufen:

ANTHROPIC_API_KEY=maxproxy
ANTHROPIC_BASE_URL=http://localhost:3456

Lassen Sie ANTHROPIC_BASE_URL in jedem Cloud/Railway-Deployment ungesetzt (oder leer) — diese Umgebungen können keinen lokalen Proxy erreichen.


Mitwirken & Sicherheit

Lizenz

MIT — Copyright © 2025 Kenneth Nygren / Plenitudo AI

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Appeared in Searches

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/knportal/invoice-parser-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server