VOOZH about

URL: https://glama.ai/mcp/servers/knportal/invoice-parser-mcp?locale=es-ES

⇱ Invoice Parser MCP by knportal | Glama


Invoice Parser MCP

Analiza facturas, recibos y documentos financieros para convertirlos en JSON estructurado, directamente desde tu agente de IA.

👁 License: MIT
👁 Version
👁 MCP

Listado en: Glama · Smithery · mcp.so

Creado para el Model Context Protocol. Impulsado por Claude Vision.

Qué hace

Extrae datos estructurados de facturas en PDF, recibos escaneados y archivos de imagen. Sin plantillas, sin configuración de OCR: Claude Vision lee el documento y devuelve un JSON limpio.


Related MCP server: Doc Agent

Herramientas

Herramienta

Descripción

Precio

parse_invoice

Análisis completo de facturas (proveedor, partidas, totales, fecha de vencimiento)

$0.05/llamada

parse_receipt

Análisis de recibos minoristas (comerciante, artículos, impuestos, método de pago)

$0.05/llamada

extract_line_items

Solo la lista detallada, nada más

$0.01/llamada

extract_totals

Solo subtotal, impuestos, total, fecha de vencimiento

$0.01/llamada

validate_invoice

Validación matemática: comprueba que las partidas sumen correctamente

$0.01/llamada

export_to_csv

Análisis por lotes de múltiples archivos → CSV resumen (máx. 20)

$0.10/llamada


Referencia de herramientas

parse_invoice

Análisis completo de facturas. Extrae cada campo estructurado de una factura de proveedor.

Parámetros

Parámetro

Tipo

Requerido

Descripción

file_path

string

Ruta absoluta al PDF de la factura o imagen (PNG, JPG, WEBP).

api_key

string

No*

Tu clave API de InvoiceParser. Consigue una en plenitudo.ai.

payment_proof

string

No*

Prueba de pago x402 (hash de transacción Base USDC). Alternativa a api_key.

*Se debe proporcionar api_key o payment_proof.

Ejemplo de entrada

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

Ejemplo de salida

{
 "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

Analiza un recibo minorista o de gastos. Diseñado para recibos de punto de venta, facturas de restaurantes y documentos de reclamación de gastos.

Parámetros

Parámetro

Tipo

Requerido

Descripción

file_path

string

Ruta absoluta al PDF del recibo o imagen (PNG, JPG, WEBP).

api_key

string

No*

Tu clave API de InvoiceParser.

payment_proof

string

No*

Prueba de pago x402 (hash de transacción Base USDC).

Ejemplo de entrada

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

Ejemplo de salida

{
 "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

Extracción ligera que devuelve solo la lista detallada. Más rápido y económico que parse_invoice cuando solo necesitas las partidas.

Parámetros

Parámetro

Tipo

Requerido

Descripción

file_path

string

Ruta absoluta al PDF o imagen de la factura o recibo.

api_key

string

No*

Tu clave API de InvoiceParser.

payment_proof

string

No*

Prueba de pago x402 (hash de transacción Base USDC).

Ejemplo de salida

{
 "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

Extrae solo el resumen financiero (subtotal, impuestos, totales, fecha de vencimiento) sin analizar partidas ni detalles del proveedor.

Parámetros

Parámetro

Tipo

Requerido

Descripción

file_path

string

Ruta absoluta al PDF o imagen de la factura o recibo.

api_key

string

No*

Tu clave API de InvoiceParser.

payment_proof

string

No*

Prueba de pago x402 (hash de transacción Base USDC).

Ejemplo de salida

{
 "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

Herramienta de validación matemática. Verifica que los totales de las partidas sean iguales a cantidad × precio_unitario, que el subtotal coincida con la suma de las partidas, que el cálculo de impuestos sea consistente y que el total final cuadre. Permite una tolerancia de redondeo de ±$0.02.

Parámetros

Parámetro

Tipo

Requerido

Descripción

file_path

string

Ruta absoluta al PDF o imagen de la factura.

api_key

string

No*

Tu clave API de InvoiceParser.

payment_proof

string

No*

Prueba de pago x402 (hash de transacción Base USDC).

Ejemplo de salida — factura válida

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

Ejemplo de salida — factura no válida

{
 "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

Analiza por lotes hasta 20 facturas o recibos y exporta un CSV resumen. Cada fila contiene: nombre de archivo, tipo de documento, proveedor/comerciante, fecha, número, subtotal, impuestos, total, moneda, fecha de vencimiento, método de pago.

Parámetros

Parámetro

Tipo

Requerido

Descripción

file_paths

array de strings

Lista de rutas absolutas a los PDF o imágenes de facturas/recibos. Máximo 20.

output_path

string

Ruta absoluta donde se guardará el archivo CSV resultante.

api_key

string

No*

Tu clave API de InvoiceParser.

payment_proof

string

No*

Prueba de pago x402 (hash de transacción Base USDC).

Ejemplo de entrada

{
 "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"
}

Ejemplo de salida (respuesta JSON)

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

Columnas del CSV: filename, document_type, vendor_merchant, date, number, subtotal, tax, total, currency, due_date, payment_method


Formatos admitidos

  • PDF (facturas, documentos escaneados)

  • PNG, JPG, WEBP (fotos de recibos, capturas de pantalla)


Autenticación

Nivel gratuito: 20 análisis/mes con una clave API (consigue una en plenitudo.ai)

Pago por uso (x402): No se necesita cuenta. Envía USDC en Base a la dirección de la billetera, pasa el hash de la transacción como payment_proof.

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

Uso (Claude Desktop / cliente MCP)

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

Arquitectura

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)

Flujo de solicitud

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

Variables de entorno

Variable

Requerido

Descripción

ANTHROPIC_API_KEY

Clave API de Anthropic para Claude Vision. Configúrala como maxproxy para enrutamiento de proxy local.

ANTHROPIC_BASE_URL

No

Sobrescribe la URL base de Anthropic. Configúrala como http://localhost:3456 al usar maxproxy localmente. Déjala sin configurar en despliegues en la nube.

CLAUDE_MODEL

No

ID del modelo de Claude. Por defecto es claude-3-5-sonnet-20241022.

INVOICEPARSER_DATA_DIR

No

Directorio para bases de datos SQLite. Por defecto es ./data.

PORT

No

Puerto HTTP. Por defecto es 8000. Railway lo configura automáticamente.


Despliegue (Railway)

  1. Haz un fork de este repositorio

  2. Conecta a Railway → Nuevo proyecto → Desplegar desde GitHub

  3. Añade variables de entorno:

    • ANTHROPIC_API_KEY — tu clave API de Anthropic

    • INVOICEPARSER_DATA_DIR/data

    • STRIPE_WEBHOOK_SECRET — desde el panel de Stripe

    • STRIPE_PRO_PRICE_ID — desde el panel de Stripe

  4. Añade un volumen persistente en /data

  5. Despliega


Ejecución local (enrutamiento opcional con maxproxy)

Si ejecutas el servidor en la misma máquina que una instancia de maxproxy en el puerto 3456, puedes enrutar las llamadas de Claude Vision a través de él en lugar de acceder directamente a la API de Anthropic:

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

Deja ANTHROPIC_BASE_URL sin configurar (o vacío) en cualquier despliegue en la nube/Railway; esos entornos no pueden acceder a un proxy local.


Contribución y seguridad

Licencia

MIT — Copyright © 2025 Kenneth Nygren / Plenitudo AI

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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