InvoiceParser Pro
Server Details
Invoice PDFs, scans and photos to Excel, with the math checked: fields, line items and totals.
- Status
- Healthy
- Uptime
- 100.0% over 24 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool has a clearly distinct function: data extraction, mathematical validation, conversion to spreadsheet, and job result retrieval. There is no overlap in purpose.
The naming follows a highly consistent snake_case convention, primarily adhering to a consistent verb_noun structure (e.g., check_invoice, extract_invoice_data). This is highly predictable.
The tool count is perfect for the stated purpose. Four tools effectively cover the entire parsing lifecycle: extraction, validation, conversion, and result retrieval.
The set provides excellent coverage of the processing, verification, and output phases. The only minor gap is the lack of an explicit initial 'submit' or 'upload' tool, but the workflow is robust otherwise.
Available Tools
4 toolscheck_invoiceCheck an invoice's mathAInspect
Check whether an invoice adds up: each line's quantity times unit price, the lines against the subtotal, the tax against its printed rate, and subtotal plus tax against the total. Returns a one-line verdict and every problem found, with the invoice's own numbers. Give the file as file_url, file_base64 or (ChatGPT) file. For additional outputs from the same processed invoice, use get_result with its job_id instead of submitting it again.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | ChatGPT only: the attached file. Other clients use file_url or file_base64. | |
| file_url | No | An https link to the invoice (PDF or image) that the server can download. | |
| file_name | No | The file's name, e.g. invoice-1042.pdf (optional). | |
| file_base64 | No | The invoice file's bytes, base64-encoded. Use for a local file. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, openWorldHint=true, and non-idempotent, so the agent knows this is not a pure read. The description compensates by disclosing the return shape (one-line verdict plus every problem with the invoice's own numbers) and by implying a job is created that get_result can read. It does not explain the cost/latency or side effects of that job, keeping it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the checks, then the return value, then input forms, then the sibling alternative. Every sentence carries distinct information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description fully covers the return value ('a one-line verdict and every problem found, with the invoice's own numbers'), plus input forms and follow-up routing. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four file parameters are already documented in the schema. The description's 'file_url, file_base64 or (ChatGPT) file' restates rather than extends that guidance, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Check whether an invoice adds up') and enumerates exactly what is verified: line quantity × unit price, lines vs subtotal, tax vs printed rate, subtotal + tax vs total. This clearly separates it from extract_invoice_data, invoice_to_excel, and get_result.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent for follow-up work: 'For additional outputs from the same processed invoice, use get_result with its job_id instead of submitting it again.' It also explains accepted input forms per client. It does not explicitly state when to choose this over extract_invoice_data, but the stated purpose makes that boundary obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_invoice_dataExtract invoice dataAInspect
Extract an invoice's data as structured JSON: vendor and customer, invoice number and dates, PO number, currency, subtotal, discount, shipping, tax and total, tax lines, every line item, and confidence (overall and per field). Give the file as file_url, file_base64 or (ChatGPT) file. For additional outputs from the same processed invoice, use get_result with its job_id instead of submitting it again.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | ChatGPT only: the attached file. Other clients use file_url or file_base64. | |
| file_url | No | An https link to the invoice (PDF or image) that the server can download. | |
| file_name | No | The file's name, e.g. invoice-1042.pdf (optional). | |
| file_base64 | No | The invoice file's bytes, base64-encoded. Use for a local file. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare non-read-only, non-idempotent, open-world, non-destructive; the description goes beyond them by disclosing the full return shape, including per-field confidence, and implying a job_id is created for later retrieval. It doesn't state cost, processing time, page limits, or whether the job_id is returned in the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the output content that matters most given there is no output schema. The long field enumeration earns its place because it substitutes for a missing return schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description fully compensates by listing returned fields and confidence, and it explains input-mode selection. It is slightly incomplete on operational behavior: no mention of size/page limits, accepted formats beyond 'PDF or image', or how the job_id is surfaced.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3, but the description adds selection logic not in the schema: use file_url, file_base64, or (ChatGPT) file, with the local-file/ChatGPT distinction. This meaningfully helps the agent choose among the mutually exclusive input modes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Extract') and resource ('an invoice's data as structured JSON') and then enumerates the exact fields returned (vendor, totals, tax lines, line items, confidence). An agent knows precisely what this tool produces, unlike the sibling check_invoice which only validates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes to get_result for additional outputs from an already-processed invoice instead of resubmitting, which is valuable reuse guidance. It also tells the agent which file input form to use per client. It does not, however, say when to prefer this over check_invoice or invoice_to_excel.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_resultGet a resultARead-onlyIdempotentInspect
Retrieve an already submitted invoice by the job_id returned by any reader, whether that reader answered processing or completed. Returns the available spreadsheet links, math check and extracted data without submitting or counting another document. Use this for additional outputs from the same invoice instead of calling another reader with the file again.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | The job_id a previous call returned. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes beyond the readOnly/idempotent annotations by disclosing the key behavioral trait: it does not submit or count another document, so calls are free of quota impact. It also previews the payload (spreadsheet links, math check, extracted data), which is valuable given there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with what it returns and keyed on the job_id, then the no-double-count guarantee, then the usage rule. No filler or redundant restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with full annotations and no output schema, nothing an agent needs is missing: source of the id, return contents, and side-effect/quota behavior are all covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter is a simple job_id, so the baseline is 3. The description adds real meaning by noting the id may come from any reader and that a still-processing reader's job_id is also valid.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Retrieve an already submitted invoice by the job_id") and scopes it precisely to results of prior submissions. It is clearly distinguishable from the sibling extractors/converters, which submit work rather than fetch outputs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit routing rule: use this for additional outputs from the same invoice instead of calling another reader with the file again. It stops short of naming specific siblings or stating the boundary case (when to submit fresh instead), but the when-to-use condition is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_to_excelInvoice to ExcelAInspect
Read an invoice (PDF, scan or photo) and turn it into a spreadsheet: returns the header fields, the line items and download links to an Excel (.xlsx) and a CSV file, valid for 60 minutes without signing in. Give the file as file_url, file_base64 or (ChatGPT) file. For additional outputs from the same processed invoice, use get_result with its job_id instead of submitting it again.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | ChatGPT only: the attached file. Other clients use file_url or file_base64. | |
| file_url | No | An https link to the invoice (PDF or image) that the server can download. | |
| file_name | No | The file's name, e.g. invoice-1042.pdf (optional). | |
| file_base64 | No | The invoice file's bytes, base64-encoded. Use for a local file. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes beyond the annotations by disclosing the 60-minute validity window on download links, that no sign-in is required, and that re-submitting creates a new job (consistent with idempotentHint=false). It does not cover file size/format limits, processing latency, or failure behavior, so it is useful but not fully rounded out.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences with the outcome stated first, followed by input options and the sibling routing hint. Dense but every clause carries information; only the parenthetical '(ChatGPT)' aside mildly duplicates the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly carries the return-value burden by naming header fields, line items, and the two download formats with their 60-minute lifetime. Missing only edge-case guidance (invalid file, failed extraction) for a full 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each of the four parameters already documents its purpose, including the ChatGPT-only file object and when to use base64 for local files. The description recaps the same three input routes without adding syntax, size limits, or precedence rules beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb and resource ('Read an invoice (PDF, scan or photo) and turn it into a spreadsheet') plus a concrete statement of what comes back: header fields, line items, and Excel/CSV download links. It also names the sibling get_result as the route for additional outputs, so the agent can separate it from the other invoice tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes input formats by client ('file_url, file_base64 or (ChatGPT) file') and states a clear when-not condition: to get more outputs from an already processed invoice, use get_result with its job_id rather than resubmitting. It does not distinguish itself from check_invoice or extract_invoice_data, which is the remaining gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
check_invoice - First observed
extract_invoice_data - First observed
get_result - First observed
invoice_to_excel
Related MCP Connectors
Reads invoices and receipts from PDF to JSON and checks the math. $0.04/page via x402.
Convert PDF bank statements into Excel and check that the balances add up. Invoices and tables too.
- DatanemOAuthcom.datanem
Turn PDFs, scans and photos into a queryable database. Invoices, CVs, receipts, in bulk.
Invoices and other financial documents to rows: upload, say what to extract, read the rows.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to inspect and extract invoice metadata from PDFs, Word documents, Excel files, and images, then synchronize and enrich the extracted data into an Excel ledger.-
- FlicenseNot gradedqualityCmaintenanceEnables accounts payable teams to extract invoice data from PDFs and images, detect duplicates, normalize vendor names, calculate payment terms, and validate invoice completeness. Supports local extraction for text PDFs and optional vision providers for scanned documents.-
- FlicenseNot gradedqualityCmaintenanceEnables converting PDFs and CSV/spreadsheet files into spreadsheets, extracting bank statement or receipt data into clean CSV, cleaning messy CSV, and generating client-ready reports through an open MCP endpoint.-
- AlicenseAqualityCmaintenanceTurns invoice details from an MCP client conversation into calculated totals and formatted Excel workbooks in JPY, USD, or EUR, using integer minor-unit arithmetic and grouped tax rounding. Supports mixed tax rates, Excel formulas with cached totals, and A4 print-ready layouts, writing files locally with no network access or API key.2175 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.