Invoice Parser MCP
Invoice Parser MCP
AI 에이전트에서 송장, 영수증 및 재무 문서를 구조화된 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 | 아니오* | InvoiceParser API 키. 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
소매 또는 비용 영수증을 파싱합니다. POS 영수증, 식당 계산서 및 비용 청구 문서용으로 설계되었습니다.
매개변수
매개변수 | 유형 | 필수 | 설명 |
| string | 예 | 영수증 PDF 또는 이미지(PNG, JPG, WEBP)의 절대 경로. |
| string | 아니오* | InvoiceParser API 키. |
| 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 | 아니오* | InvoiceParser API 키. |
| 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 | 아니오* | InvoiceParser API 키. |
| 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의 반올림 오차를 허용합니다.
매개변수
매개변수 | 유형 | 필수 | 설명 |
| string | 예 | 송장 PDF 또는 이미지의 절대 경로. |
| string | 아니오* | InvoiceParser API 키. |
| 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 | 아니오* | InvoiceParser API 키. |
| 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환경 변수
변수 | 필수 | 설명 |
| 예 | Claude Vision용 Anthropic API 키. 로컬 프록시 라우팅을 위해 |
| 아니오 | Anthropic 기본 URL 재정의. 로컬에서 maxproxy 사용 시 |
| 아니오 | Claude 모델 ID. 기본값은 |
| 아니오 | SQLite 데이터베이스용 디렉토리. 기본값은 |
| 아니오 | HTTP 포트. 기본값은 |
배포 (Railway)
이 저장소를 포크하세요.
Railway에 연결 → 새 프로젝트 → GitHub에서 배포
환경 변수 추가:
ANTHROPIC_API_KEY— Anthropic API 키INVOICEPARSER_DATA_DIR—/dataSTRIPE_WEBHOOK_SECRET— Stripe 대시보드에서 확인STRIPE_PRO_PRICE_ID— Stripe 대시보드에서 확인
/data에 영구 볼륨 추가배포
로컬 실행 (선택 사항: maxproxy 라우팅)
포트 3456에서 maxproxy 인스턴스와 동일한 머신에서 서버를 실행하는 경우, Anthropic API에 직접 연결하는 대신 이를 통해 Claude Vision 호출을 라우팅할 수 있습니다:
ANTHROPIC_API_KEY=maxproxy
ANTHROPIC_BASE_URL=http://localhost:3456클라우드/Railway 배포 시에는 ANTHROPIC_BASE_URL을 설정하지 마세요(또는 비워두세요). 해당 환경에서는 로컬 프록시에 접근할 수 없습니다.
기여 및 보안
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.
This server cannot be installed
Maintenance
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
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…
Agent-native document parsing: PDF, scans and FR/EU invoices to structured JSON or Markdown.
- DatanemOAuthcom.datanem
Turn PDFs, scans and photos into a queryable database. Invoices, CVs, receipts, in bulk.
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
- AlicenseAqualityBmaintenanceConvert PDFs to structured JSON. Extract invoices, bank statements, contracts, and more. Pay per call via x402 USDC.58MIT
- AlicenseNot gradedqualityBmaintenanceEnables intelligent document processing by extracting text, classifying document types, and generating structured summaries from PDFs and images using vision LLMs.MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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