Skip to main content
Glama
knportal

Invoice Parser MCP

by knportal

Invoice Parser MCP

AI 에이전트에서 송장, 영수증 및 재무 문서를 구조화된 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

아니오*

InvoiceParser API 키. 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

소매 또는 비용 영수증을 파싱합니다. POS 영수증, 식당 계산서 및 비용 청구 문서용으로 설계되었습니다.

매개변수

매개변수

유형

필수

설명

file_path

string

영수증 PDF 또는 이미지(PNG, JPG, WEBP)의 절대 경로.

api_key

string

아니오*

InvoiceParser API 키.

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

아니오*

InvoiceParser API 키.

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

아니오*

InvoiceParser API 키.

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

수학적 검증 도구. 항목 합계가 수량 × 단가와 일치하는지, 소계가 항목 합계와 일치하는지, 세금 계산이 일관적인지, 최종 합계가 조정되는지 확인합니다. ±$0.02의 반올림 오차를 허용합니다.

매개변수

매개변수

유형

필수

설명

file_path

string

송장 PDF 또는 이미지의 절대 경로.

api_key

string

아니오*

InvoiceParser API 키.

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

아니오*

InvoiceParser API 키.

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 (영수증 사진, 스크린샷)


인증

무료 티어: API 키 사용 시 월 20회 파싱 (plenitudo.ai에서 발급)

사용량 기반 결제 (x402): 계정 불필요. Base 네트워크에서 USDC를 지갑 주소로 보내고 트랜잭션 해시를 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

Claude Vision용 Anthropic API 키. 로컬 프록시 라우팅을 위해 maxproxy로 설정.

ANTHROPIC_BASE_URL

아니오

Anthropic 기본 URL 재정의. 로컬에서 maxproxy 사용 시 http://localhost:3456으로 설정. 클라우드 배포 시 설정하지 마세요.

CLAUDE_MODEL

아니오

Claude 모델 ID. 기본값은 claude-3-5-sonnet-20241022.

INVOICEPARSER_DATA_DIR

아니오

SQLite 데이터베이스용 디렉토리. 기본값은 ./data.

PORT

아니오

HTTP 포트. 기본값은 8000. Railway는 이를 자동으로 설정합니다.


배포 (Railway)

  1. 이 저장소를 포크하세요.

  2. Railway에 연결 → 새 프로젝트 → GitHub에서 배포

  3. 환경 변수 추가:

    • ANTHROPIC_API_KEY — Anthropic API 키

    • INVOICEPARSER_DATA_DIR/data

    • STRIPE_WEBHOOK_SECRET — Stripe 대시보드에서 확인

    • STRIPE_PRO_PRICE_ID — Stripe 대시보드에서 확인

  4. /data에 영구 볼륨 추가

  5. 배포


로컬 실행 (선택 사항: maxproxy 라우팅)

포트 3456에서 maxproxy 인스턴스와 동일한 머신에서 서버를 실행하는 경우, Anthropic API에 직접 연결하는 대신 이를 통해 Claude Vision 호출을 라우팅할 수 있습니다:

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

클라우드/Railway 배포 시에는 ANTHROPIC_BASE_URL을 설정하지 마세요(또는 비워두세요). 해당 환경에서는 로컬 프록시에 접근할 수 없습니다.


기여 및 보안

라이선스

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