DocumentpPro
Extract structured, schema-typed data from invoices, purchase orders, receipts, and tax forms, and classify documents into custom label sets — via a hosted…
Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeRead-only
What it can do
- Extract Document: Submit a document for structured data extraction. Asynchronous: returns a request_id immediately — poll check_extraction_status until request_status is completed, then read the extra
- Check Extraction Status: Check an extraction job. request_status is one of pending, processing, completed, failed, exception. When completed, results.data holds the extracted fields keyed exactly as i
- Get Credit Balance: Check remaining credits before starting a batch job. Extraction and classification calls fail with INSUFFICIENT_CREDITS once total_credits_remaining reaches zero.
What data it sees
Do you need an account
No: the server works without sign-in
Extract structured, schema-typed data from invoices, purchase orders, receipts, and tax forms, and classify documents into custom label sets — via a hosted MCP server. Free tier included.
Server tool list (11)
Raw names from tools/list. Only developers need these.
| extract_document | Submit a document for structured data extraction. Asynchronous: returns a request_id immediately — poll check_extraction_status until request_status is completed, then read the extracted fields from results.data. |
| check_extraction_status | Check an extraction job. request_status is one of pending, processing, completed, failed, exception. When completed, results.data holds the extracted fields keyed exactly as in the template schema from get_schema. |
| get_credit_balance | Check remaining credits before starting a batch job. Extraction and classification calls fail with INSUFFICIENT_CREDITS once total_credits_remaining reaches zero. |
| list_templates | List the extraction templates available on this account (invoice, purchase order, tax forms, custom layouts, ...). Use get_schema on a template_id to see the fields it extracts. |
| get_schema | Get a template's field definitions (name, type, description, nested table columns). Use this to generate a matching data model in your app instead of guessing field names — extraction results in results.data use exactly these names. |
| create_template | Create a new extraction template. template_schema example: {"fields": [ {"name": "invoice_number", "type": "text", "description": "The invoice number"}, {"name": "line_items", "type": "table", "subFields": [ {"name": "description", "type": "text"}, {"name": "amount", "type": "number"}]}]} Rules: field names use lowercase letters, digits, underscores and spaces (max 50 chars, unique across the template). Types: text, number, date, radio, checkbox, boolean, object, table. "table" and "object" fields must define "subFields" (inside an object only text, number, boolean, date, table are allowed — no nested objects). Never mark fields required — every field must allow null. Optional per field: "description" (max 500 chars, improves accuracy), "enum" (list of strings, for radio/checkbox). Call get_schema on an existing template for a worked example. |
| update_template | Update a template's title and/or field schema. template_schema replaces the existing schema entirely, so start from get_schema output when adding or changing fields. At least one of template_schema / template_title is required. |
| classify_document | Assign one of your labels to a document — use it to route mixed document streams to the right extraction template. Pass labels inline for one-off classification, or create_classifier once and reuse it by classifier_id. Provide the document as exactly one of document_id / file_url / file_base64. Classification is synchronous, but a document uploaded for the first time must be OCR'd first — on DOCUMENT_NOT_READY, retry with the returned document_id after ~15 seconds. |
| create_classifier | Save a reusable classifier. Use its classifier_id with classify_document to route documents consistently instead of repeating inline labels. |
| list_classifiers | List the saved classifiers on this account, including their labels — use a classifier_id with classify_document. |
| list_supported_formats | List the file formats extract_document and classify_document accept. |