Skip to main content
Glama
knportal

Invoice Parser MCP

by knportal

Invoice Parser MCP

Разбирайте счета, чеки и финансовые документы в структурированный JSON — прямо из вашего ИИ-агента.

License: MIT Version MCP

Размещено на: Glama · Smithery · mcp.so

Создано для Model Context Protocol. Работает на базе Claude Vision.

Что он делает

Извлекает структурированные данные из PDF-счетов, отсканированных чеков и файлов изображений. Никаких шаблонов, никакой настройки OCR — Claude Vision считывает документ и возвращает чистый JSON.


Related MCP server: kelnix-receipt-mcp-api

Инструменты

Инструмент

Описание

Цена

parse_invoice

Полный разбор счета (поставщик, позиции, итоги, срок оплаты)

$0.05/вызов

parse_receipt

Разбор розничного чека (продавец, товары, налог, способ оплаты)

$0.05/вызов

extract_line_items

Только список позиций, ничего больше

$0.01/вызов

extract_totals

Только промежуточный итог, налог, общая сумма, срок оплаты

$0.01/вызов

validate_invoice

Математическая проверка — сверяет суммы позиций

$0.01/вызов

export_to_csv

Пакетный разбор нескольких файлов → сводный CSV (макс. 20)

$0.10/вызов


Справочник инструментов

parse_invoice

Полный разбор счета. Извлекает каждое структурированное поле из счета поставщика.

Параметры

Параметр

Тип

Обязательный

Описание

file_path

string

Да

Абсолютный путь к PDF-счету или изображению (PNG, JPG, WEBP).

api_key

string

Нет*

Ваш API-ключ InvoiceParser. Получите его на plenitudo.ai.

payment_proof

string

Нет*

Подтверждение оплаты x402 (хеш транзакции Base USDC). Альтернатива api_key.

*Необходимо предоставить либо 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

Разбор розничного или расходного чека. Предназначен для кассовых чеков, счетов из ресторанов и документов о расходах.

Параметры

Параметр

Тип

Обязательный

Описание

file_path

string

Да

Абсолютный путь к PDF-чеку или изображению (PNG, JPG, WEBP).

api_key

string

Нет*

Ваш API-ключ InvoiceParser.

payment_proof

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, если вам нужны только позиции.

Параметры

Параметр

Тип

Обязательный

Описание

file_path

string

Да

Абсолютный путь к PDF-счету/чеку или изображению.

api_key

string

Нет*

Ваш API-ключ InvoiceParser.

payment_proof

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

Извлекает только финансовую сводку (промежуточный итог, налоги, общие суммы, срок оплаты) без разбора позиций или данных поставщика.

Параметры

Параметр

Тип

Обязательный

Описание

file_path

string

Да

Абсолютный путь к PDF-счету/чеку или изображению.

api_key

string

Нет*

Ваш API-ключ InvoiceParser.

payment_proof

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.

Параметры

Параметр

Тип

Обязательный

Описание

file_path

string

Да

Абсолютный путь к PDF-счету или изображению.

api_key

string

Нет*

Ваш API-ключ InvoiceParser.

payment_proof

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. Каждая строка содержит: имя файла, тип документа, поставщик/продавец, дата, номер, промежуточный итог, налог, общая сумма, валюта, срок оплаты, способ оплаты.

Параметры

Параметр

Тип

Обязательный

Описание

file_paths

массив строк

Да

Список абсолютных путей к PDF-счетам/чекам или изображениям. Максимум 20.

output_path

string

Да

Абсолютный путь, по которому будет сохранен CSV-файл.

api_key

string

Нет*

Ваш API-ключ InvoiceParser.

payment_proof

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

Переменные окружения

Переменная

Обязательная

Описание

ANTHROPIC_API_KEY

Да

API-ключ Anthropic для Claude Vision. Установите maxproxy для локальной прокси-маршрутизации.

ANTHROPIC_BASE_URL

Нет

Переопределение базового URL Anthropic. Установите http://localhost:3456 при использовании maxproxy локально. Оставьте пустым при облачном развертывании.

CLAUDE_MODEL

Нет

ID модели Claude. По умолчанию claude-3-5-sonnet-20241022.

INVOICEPARSER_DATA_DIR

Нет

Директория для баз данных SQLite. По умолчанию ./data.

PORT

Нет

HTTP-порт. По умолчанию 8000. Railway устанавливает его автоматически.


Развертывание (Railway)

  1. Сделайте форк этого репозитория

  2. Подключитесь к Railway → New Project → Deploy from GitHub

  3. Добавьте переменные окружения:

    • ANTHROPIC_API_KEY — ваш API-ключ Anthropic

    • INVOICEPARSER_DATA_DIR/data

    • STRIPE_WEBHOOK_SECRET — из панели управления Stripe

    • STRIPE_PRO_PRICE_ID — из панели управления Stripe

  4. Добавьте постоянный том (persistent volume) в /data

  5. Разверните


Локальный запуск (опциональная маршрутизация через 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

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