发票解析器MCP
从您的AI代理将发票、收据和财务文档解析为结构化JSON。
](https://smithery.ai/server/@knportal/invoice-parser-mcp)  ](CHANGELOG.md) 
为 模型上下文协议由Claude Vision提供技术支持。
它的作用
从PDF发票、扫描的收据和图像文件中提取结构化数据。无模板,无OCR配置——Claude Vision读取文档并返回干净的JSON。
______________________________________________________________________
工具
| 工具 | 描述 | 价格 |
|---|---|---|
parse_invoice | 完整发票解析(供应商、行项目、总计、到期日) | $0.05/call |
parse_receipt | 零售收据解析(商家、商品、税费、付款方式) | $0.05/call |
extract_line_items | 只有逐项列出的清单,没有其他 | $0.01/支 |
extract_totals | 仅小计、税款、总计、到期日 | $0.01/支 |
validate_invoice | 数学验证——检查行项目是否相加 | $0.01/call |
export_to_csv | 批量解析多个文件→ CSV摘要(最多20个) | $0.10/通话 |
______________________________________________________________________
工具参考
parse_invoice
完整发票解析。从供应商发票中提取每个结构化字段。
参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
file_path | string | 是 | 发票PDF或图像(PNG、JPG、WEBP)的绝对路径。 |
api_key | string | 否\* | 您的InvoiceParser API密钥。得到一个在 充满.ai. |
payment_proof | string | 否\* | x402付款证明(基本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 | 否\* | 您的InvoiceParser API密钥。 |
payment_proof | string | 否\* | x402付款证明(基本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付款证明(基本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付款证明(基本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 | 否\* | 您的InvoiceParser API密钥。 |
payment_proof | string | 否\* | x402付款证明(基本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 | Yes | 保存输出CSV文件的绝对路径。 |
api_key | string | 否\* | 您的InvoiceParser API密钥。 |
payment_proof | string | 否\* | x402付款证明(基本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次解析(在pleitudo.ai获取一个)
按次付费(x402): 不需要帐户。将Base上的USDC发送到钱包地址,将tx哈希作为 payment_proof.
{
"error": "Payment required",
"x402": {
"network": "base",
"token": "USDC",
"recipient": "0x9053FeDC90c1BCB4a8Cf708DdB426aB02430d6ad",
"amount_usdc": 0.05
}
}______________________________________________________________________
用法(克劳德桌面/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 | 否 | 覆盖人类基准URL。设置为 http://localhost:3456 在本地使用maxproxy时。在云部署中保持未设置状态。 |
CLAUDE_MODEL | 否 | 克劳德型号ID。默认为 claude-3-5-sonnet-20241022. |
INVOICEPARSER_DATA_DIR | SQLite数据库没有 | 目录。默认为 ./data. |
PORT | 无 | HTTP端口。默认为 8000。铁路会自动设置此项。 |
______________________________________________________________________
部署(铁路)
- 分叉此回购
- 连接到铁路→ 新项目→ 从GitHub部署
- 添加环境变量:
- ANTHROPIC_API_KEY -您的Anthropic API密钥 - INVOICEPARSER_DATA_DIR — /data - STRIPE_WEBHOOK_SECRET --来自Stripe仪表板 - STRIPE_PRO_PRICE_ID --来自Stripe仪表板
- 在以下位置添加持久卷
/data - 部署
______________________________________________________________________
在本地运行(可选maxproxy路由)
如果您在与端口3456上的maxproxy实例相同的计算机上运行服务器,则可以通过它路由Claude Vision调用,而不是直接访问Anthropic API:
ANTHROPIC_API_KEY=maxproxy
ANTHROPIC_BASE_URL=http://localhost:3456离开 ANTHROPIC_BASE_URL 在任何云/Railway部署中未设置(或为空)——这些环境无法访问本地代理。
______________________________________________________________________
贡献与安全
许可证
麻省理工学院 --版权所有©2025 Kenneth Nygren/Plenitudo AI
