VOOZH about

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

⇱ Invoice Parser MCP by knportal | Glama


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: Doc Agent

도구

도구

설명

가격

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

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