Invoice Parser MCP
Invoice Parser MCP
Разбирайте счета, чеки и финансовые документы в структурированный JSON — прямо из вашего ИИ-агента.
Размещено на: Glama · Smithery · mcp.so
Создано для Model Context Protocol. Работает на базе Claude Vision.
Что он делает
Извлекает структурированные данные из PDF-счетов, отсканированных чеков и файлов изображений. Никаких шаблонов, никакой настройки OCR — Claude Vision считывает документ и возвращает чистый JSON.
Related MCP server: kelnix-receipt-mcp-api
Инструменты
Инструмент | Описание | Цена |
| Полный разбор счета (поставщик, позиции, итоги, срок оплаты) | $0.05/вызов |
| Разбор розничного чека (продавец, товары, налог, способ оплаты) | $0.05/вызов |
| Только список позиций, ничего больше | $0.01/вызов |
| Только промежуточный итог, налог, общая сумма, срок оплаты | $0.01/вызов |
| Математическая проверка — сверяет суммы позиций | $0.01/вызов |
| Пакетный разбор нескольких файлов → сводный CSV (макс. 20) | $0.10/вызов |
Справочник инструментов
parse_invoice
Полный разбор счета. Извлекает каждое структурированное поле из счета поставщика.
Параметры
Параметр | Тип | Обязательный | Описание |
| string | Да | Абсолютный путь к PDF-счету или изображению (PNG, JPG, WEBP). |
| string | Нет* | Ваш API-ключ InvoiceParser. Получите его на plenitudo.ai. |
| string | Нет* | Подтверждение оплаты x402 (хеш транзакции Base USDC). Альтернатива |
*Необходимо предоставить либо api_key, либо payment_proof.
Пример ввода
{
"file_path": "/Users/me/documents/invoice_acme_jan2025.pdf",
"api_key": "ip_free_abc123"
}Пример вывода
{
"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
Разбор розничного или расходного чека. Предназначен для кассовых чеков, счетов из ресторанов и документов о расходах.
Параметры
Параметр | Тип | Обязательный | Описание |
| string | Да | Абсолютный путь к PDF-чеку или изображению (PNG, JPG, WEBP). |
| string | Нет* | Ваш API-ключ InvoiceParser. |
| string | Нет* | Подтверждение оплаты x402 (хеш транзакции Base USDC). |
Пример ввода
{
"file_path": "/Users/me/receipts/coffee_shop_march1.jpg",
"api_key": "ip_free_abc123"
}Пример вывода
{
"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
Легковесное извлечение, возвращающее только список позиций. Быстрее и дешевле, чем parse_invoice, если вам нужны только позиции.
Параметры
Параметр | Тип | Обязательный | Описание |
| string | Да | Абсолютный путь к PDF-счету/чеку или изображению. |
| string | Нет* | Ваш API-ключ InvoiceParser. |
| string | Нет* | Подтверждение оплаты x402 (хеш транзакции Base USDC). |
Пример вывода
{
"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
Извлекает только финансовую сводку (промежуточный итог, налоги, общие суммы, срок оплаты) без разбора позиций или данных поставщика.
Параметры
Параметр | Тип | Обязательный | Описание |
| string | Да | Абсолютный путь к PDF-счету/чеку или изображению. |
| string | Нет* | Ваш API-ключ InvoiceParser. |
| string | Нет* | Подтверждение оплаты x402 (хеш транзакции Base USDC). |
Пример вывода
{
"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
Инструмент математической проверки. Проверяет, что итоги позиций равны quantity × unit_price, что промежуточный итог соответствует сумме позиций, что расчет налога корректен и что итоговая сумма сходится. Допускает погрешность округления ±$0.02.
Параметры
Параметр | Тип | Обязательный | Описание |
| string | Да | Абсолютный путь к PDF-счету или изображению. |
| string | Нет* | Ваш API-ключ InvoiceParser. |
| string | Нет* | Подтверждение оплаты x402 (хеш транзакции Base USDC). |
Пример вывода — корректный счет
{
"ok": true,
"valid": true,
"issues": [],
"summary": {
"line_items_checked": 3,
"subtotal": 450.00,
"tax": 36.00,
"total": 486.00,
"currency": "USD"
}
}Пример вывода — некорректный счет
{
"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
Пакетный разбор до 20 счетов или чеков и экспорт сводного CSV. Каждая строка содержит: имя файла, тип документа, поставщик/продавец, дата, номер, промежуточный итог, налог, общая сумма, валюта, срок оплаты, способ оплаты.
Параметры
Параметр | Тип | Обязательный | Описание |
| массив строк | Да | Список абсолютных путей к PDF-счетам/чекам или изображениям. Максимум 20. |
| string | Да | Абсолютный путь, по которому будет сохранен CSV-файл. |
| string | Нет* | Ваш API-ключ InvoiceParser. |
| string | Нет* | Подтверждение оплаты x402 (хеш транзакции Base USDC). |
Пример ввода
{
"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"
}Пример вывода (JSON-ответ)
{
"ok": true,
"output_path": "/Users/me/exports/q1_summary.csv",
"rows_written": 3,
"errors": []
}Столбцы CSV: filename, document_type, vendor_merchant, date, number, subtotal, tax, total, currency, due_date, payment_method
Поддерживаемые форматы
PDF (счета, отсканированные документы)
PNG, JPG, WEBP (фотографии чеков, скриншоты)
Аутентификация
Бесплатный уровень: 20 разборов в месяц с API-ключом (получите его на plenitudo.ai)
Оплата за использование (x402): Аккаунт не требуется. Отправьте USDC в сети Base на адрес кошелька, передайте хеш транзакции как payment_proof.
{
"error": "Payment required",
"x402": {
"network": "base",
"token": "USDC",
"recipient": "0x9053FeDC90c1BCB4a8Cf708DdB426aB02430d6ad",
"amount_usdc": 0.05
}
}Использование (Claude Desktop / MCP-клиент)
{
"mcpServers": {
"invoice-parser": {
"url": "https://invoice-parser.plenitudo.ai/mcp?ref=readme"
}
}
}Архитектура
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)Поток запроса
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Переменные окружения
Переменная | Обязательная | Описание |
| Да | API-ключ Anthropic для Claude Vision. Установите |
| Нет | Переопределение базового URL Anthropic. Установите |
| Нет | ID модели Claude. По умолчанию |
| Нет | Директория для баз данных SQLite. По умолчанию |
| Нет | HTTP-порт. По умолчанию |
Развертывание (Railway)
Сделайте форк этого репозитория
Подключитесь к Railway → New Project → Deploy from GitHub
Добавьте переменные окружения:
ANTHROPIC_API_KEY— ваш API-ключ AnthropicINVOICEPARSER_DATA_DIR—/dataSTRIPE_WEBHOOK_SECRET— из панели управления StripeSTRIPE_PRO_PRICE_ID— из панели управления Stripe
Добавьте постоянный том (persistent volume) в
/dataРазверните
Локальный запуск (опциональная маршрутизация через maxproxy)
Если вы запускаете сервер на той же машине, где работает экземпляр maxproxy на порту 3456, вы можете направлять вызовы Claude Vision через него вместо прямого обращения к API Anthropic:
ANTHROPIC_API_KEY=maxproxy
ANTHROPIC_BASE_URL=http://localhost:3456Оставьте ANTHROPIC_BASE_URL не установленным (или пустым) при любом облачном развертывании/развертывании на Railway — эти среды не имеют доступа к локальному прокси.
Участие в разработке и безопасность
CONTRIBUTING.md — настройка среды разработки и правила PR
SECURITY.md — политика ответственного раскрытия информации
CHANGELOG.md — история версий
Лицензия
MIT — Copyright © 2025 Kenneth Nygren / Plenitudo AI
This server cannot be deployed
Maintenance
Related MCP Connectors
Turn any PDF into structured JSON via AI + OCR: invoices, bank statements, contracts.
Invoice and receipt extractor: reads PDF and image invoices/receipts with AI, pulling date…
Convert documents to structured JSON (invoices, receipts, contracts) in 2 seconds
Agent-native document parsing: PDF, scans and FR/EU invoices to structured JSON or Markdown.
Related MCP Servers
- FlicenseBqualityNot gradedmaintenanceHeadless document processing for AI agents. Invoice extraction, contract analysis, and Dutch business verification. Pay-per-use via X402 on Solana. No API keys needed.101-
- AlicenseNot gradedqualityBmaintenanceTurn any receipt into structured, accounting-ready JSON or clean Markdown with one API call. AI-powered vision extracts merchant, date, line items, tax, totals, and suggests GL accounts for instant bookkeeping. 50 free credits on signup.MIT
- AlicenseAqualityDmaintenanceConvert PDFs to structured JSON. Extract invoices, bank statements, contracts, and more. Pay per call via x402 USDC.58MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to parse and analyze PDF invoices, including text, field, and table extraction, OCR for scanned documents, ZUGFeRD support, compliance validation, and batch processing via MCP.-