Document to JSON – PDF Invoice/Statement/Contract Parser MCP Server
io.github.fashionmascherine-svg/document-to-json-mcp
Turn PDFs into structured JSON in seconds using AI + OCR—invoices, statements, contracts, no coding needed.
What is the Document to JSON – PDF Invoice/Statement/Contract Parser MCP server?
The Document-to-JSON MCP server converts PDF documents into structured JSON using AI and OCR. It intelligently extracts data from invoices, bank statements, contracts, and generic documents, adapting to any layout, language, or vendor without requiring templates or configuration.
This server automates document processing by parsing PDFs and returning clean, validated JSON. It uses AI to understand document content rather than fragile regex patterns, making it reliable across languages, layouts, and scanned files. Ideal for accountants extracting invoice data, developers automating workflows, analysts converting statements to spreadsheets, and legal teams extracting contract terms.
How to install Document to JSON – PDF Invoice/Statement/Contract Parser
Copy-paste configuration for popular MCP clients.
AuthorizationrequiredsecretApify API token as 'Bearer <APIFY_TOKEN>'. Get it at https://console.apify.com/account/integrations
Tools & capabilities
Tools this server exposes to the agent.
parse_invoice— Extract structured data from invoices: seller, buyer, line items, totals, VAT, IBAN, and payment information.parse_bank_statement— Extract transactions, balances, fees, and account holder information from bank statements.parse_contract— Extract parties, key clauses, dates, financial terms, and jurisdiction from contracts.parse_generic_document— Extract full text and tables from any document type.
Use cases
- Extract invoice numbers, line items, VAT, and payment details for accounting automation
- Convert bank statements into structured transaction data for reconciliation and analysis
- Parse contracts to identify parties, key clauses, dates, and financial terms automatically
- Process scanned or multi-language documents without manual data entry
- Integrate document extraction into n8n, LangChain, or CrewAI workflows
Document to JSON – PDF Invoice/Statement/Contract Parser MCP server FAQ
It's an AI-powered document parser that converts PDFs (invoices, statements, contracts) into structured JSON. It uses OCR and language understanding to adapt to any layout or language without templates.
Generic document parsing is free during launch. Invoices cost $0.01, bank statements $0.015, and contracts $0.02 per document—pay-per-use via Apify with no subscription.
Add the MCP server to your config file (claude_desktop_config.json or mcp.json) with the provided npx command, using your Apify token for authentication.
English, Italian, and Spanish. OCR can combine multiple languages (e.g., eng+ita+spa) for multi-language scanned documents.
No. PDFs are processed and not stored after extraction. Data is available only in your private Apify dataset, and API keys remain encrypted.
Invoice, bank statement, contract, and generic documents. Each type extracts specific fields—invoices get line items and VAT, statements get transactions and balances, contracts get clauses and dates.
README (reference)
Source of truth, from the repository.
Document-to-JSON Converter
Turn PDFs into structured JSON in seconds. AI-powered, no coding needed.
🚀 What does it do?
Paste a PDF URL → get structured JSON. That's it.
Powered by AI. Instead of rigid templates or fragile regex, an AI model actually reads and understands each document — so it adapts to any layout, language, or vendor, and even handles scanned files. That's why the same tool works on an Italian invoice, a Spanish receipt, or an English contract without any configuration.
Perfect for:
- Accountants — extract invoice data (numbers, dates, totals, VAT, IBAN)
- Developers — automate document processing in your apps
- Business analysts — convert bank statements to spreadsheets
- Legal teams — extract contract clauses and dates automatically
📋 Supported documents
| Type | What you get | Price |
|---|---|---|
| Invoice | Seller, buyer, line items, totals, VAT, IBAN, payment info | $0.01 |
| Bank Statement | All transactions, balances, fees, account holder | $0.015 |
| Contract | Parties, key clauses, dates, financial terms, jurisdiction | $0.02 |
| Generic | Full text + tables from any document | Free during launch |
✨ Example output
{
"success": true,
"data": {
"document_type": "invoice",
"confidence": 0.97,
"metadata": {
"invoice_number": "INV-2024-00123",
"invoice_date": "2024-03-15",
"currency": "EUR"
},
"seller": {
"name": "Acme S.p.A.",
"vat_id": "IT01234567890"
},
"line_items": [
{
"description": "Consulting services",
"quantity": 1,
"unit_price": 5000.00,
"net_amount": 5000.00,
"vat_rate": 22.0,
"total": 6100.00
}
],
"totals": {
"net_total": 5000.00,
"vat_total": 1100.00,
"grand_total": 6100.00
},
"payment_info": {
"iban": "IT60X0542811101000000123456"
}
}
}
🧪 Live examples — try them now
Run the Actor on these public sample PDFs (synthetic data) to see the extraction quality for yourself:
| Type | Sample PDF | What the AI extracts (highlights) |
|---|---|---|
| Invoice | sample-invoice.pdf | Invoice INV-2026-0042, seller + buyer with VAT IDs, 2 line items, VAT 22%, grand total €1,889.78 — confidence 1.0 |
| Bank statement | sample-bank-statement.pdf | 7 transactions auto-categorized, opening/closing balances reconciled to €8,655.28 — confidence 1.0 |
| Contract | sample-contract.pdf | 2 parties + roles, effective/expiry/renewal dates, fee €5,000, 5 key clauses with summaries, jurisdiction — confidence 0.95 |
Just paste one of these URLs as file_url, pick the matching document_type, and run. Each extraction takes ~15–20 seconds.
🎯 Why this Actor?
| Feature | Benefit |
|---|---|
| AI understanding | An AI reads documents like a human — adapts to any layout, no templates or rules to maintain |
| Multi-language | English, Italian, Spanish (OCR) |
| OCR included | Works with scanned documents too |
| Validation | Auto-checks totals and dates for accuracy |
| Pay per use | No subscription, pay only for what you process |
🔧 How to use
- Get a public PDF URL (Dropbox, Google Drive, your server)
- Select the document type
- Run the Actor
- Get your JSON in seconds
That's it. No configuration, no API keys needed.
💰 Pricing
| Document type | Price |
|---|---|
| Invoice | $0.01 ($10/1000) |
| Bank statement | $0.015 ($15/1000) |
| Contract | $0.02 ($20/1000) |
| Generic | Free during launch |
Pay-per-event via Apify. Pay only for successful extractions. No subscription, no hidden fees.
🔒 Privacy
- PDFs are processed and not stored after extraction
- Data is available in your private dataset
- All API keys stay encrypted
📚 Supported OCR languages
eng (English), ita (Italian), spa (Spanish)
Combine with + for multi-language scanned documents: eng+ita+spa (default)
🤖 Built for AI agents (MCP)
This Actor is an MCP server: AI agents can call it directly as a tool to turn any
PDF into JSON, with zero configuration — just pass a public file_url. Specialized
tools (parse_invoice, parse_bank_statement, parse_contract) and a free
parse_generic_document make it easy for an LLM to pick the right one for the task.
🔌 Integrations
Replace
YOUR_APIFY_TOKENwith your token from Apify → Settings → Integrations.
Claude Code (CLI)
claude mcp add --transport http apify \
"https://mcp.apify.com/?actors=opportunity-biz/document-to-json-mcp"
Claude Desktop / Cursor (MCP)
Add to your MCP config (claude_desktop_config.json or Cursor's mcp.json):
{
"mcpServers": {
"document-to-json": {
"command": "npx",
"args": [
"-y", "mcp-remote",
"https://mcp.apify.com/?actors=opportunity-biz/document-to-json-mcp",
"--header", "Authorization: Bearer YOUR_APIFY_TOKEN"
]
}
}
}
The agent then sees parse_invoice, parse_bank_statement, parse_contract, and
parse_generic_document as tools and calls them on its own.
REST API (any language)
One call in, JSON out — run-sync-get-dataset-items returns the result directly:
curl -X POST \
"https://api.apify.com/v2/acts/opportunity-biz~document-to-json-mcp/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"file_url": "https://example.com/invoice.pdf", "document_type": "invoice", "validate_totals": true}'
Python
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("opportunity-biz/document-to-json-mcp").call(run_input={
"file_url": "https://example.com/invoice.pdf",
"document_type": "invoice",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)
JavaScript / TypeScript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('opportunity-biz/document-to-json-mcp').call({
file_url: 'https://example.com/invoice.pdf',
document_type: 'invoice',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
n8n
Use an HTTP Request node (POST) to the REST API URL above, or the official
Apify node → select document-to-json-mcp → set file_url and document_type.
Great for "watch inbox → extract invoice → append to Google Sheet" workflows.
LangChain / CrewAI / any MCP framework
Point your agent framework's MCP client at
https://mcp.apify.com/?actors=opportunity-biz/document-to-json-mcp — the parsing
tools are exposed automatically.
Related MCP servers
Reddit MCP server: search posts, subreddit feeds, comments & user profiles as JSON. No API key.

CRW Web Scraper
Open-source web scraper for AI agents—scrape, crawl, map, search, and extract with markdown or JSON output.
Playwright & Appium test automation for Claude. Generate tests, diagnose failures, open fix PRs.

io.github.fastslack/e2e-runner
JSON-driven E2E test runner with parallel Chrome pool execution and 16 MCP tools.
Toxicity, sentiment, NER, PII detection, and language identification tools
