Skip to main content
Glama

Zovo Invoice Reader

Server Details

Turns invoice PDFs into one spreadsheet and checks the tax, totals and money math of each invoice.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4.5/5.0

Scored across 2 tools

Disambiguation4/5

The two tools are mostly distinct: check_invoice_math handles pasted/typed amounts, while read_invoices handles attached PDFs and extraction. There is some overlap because read_invoices also performs the same three arithmetic checks, but the descriptions explicitly guide the agent on when to use each.

Naming Consistency5/5

Both names follow a clear snake_case verb_noun pattern: check_invoice_math and read_invoices. The convention is predictable and readable.

Tool Count4/5

Two tools is slightly thin, but each has a clear, non-redundant role for a narrowly scoped invoice reader. The set is reasonable for the purpose, though it offers little room for adjacent operations.

Completeness4/5

The surface covers the core domain: extracting invoice data from PDFs and validating invoice arithmetic. Minor gaps exist around OCR/scanned documents and correction workflows, but those are explicitly out of scope.

Available Tools

2 tools
check_invoice_mathCheck invoice mathA
Read-onlyIdempotent
Inspect

Use this when the user types or pastes invoice amounts (line quantities, unit prices, line amounts, subtotal, discount, tax, shipping, total) and wants to know whether the invoice adds up. Returns PASS, MISMATCH with the difference in cents, or NOT CHECKABLE when a value is missing, for three checks: lines add up to the subtotal, subtotal - discount + tax + shipping = total, quantity x unit price = amount. Uses integer cent math. Does not read files (use read_invoices for PDFs), does not compute tax rates, and does not pay or send anything.

NameRequiredDescriptionDefault
taxNoAmount as printed, e.g. 33.56. Leave out when the invoice has none.
linesNoInvoice lines, e.g. [{"description":"Toner","qty":2,"unit_price":"89.99","amount":"179.98"}]. Up to 500.
totalNoAmount as printed, e.g. 440.29. Leave out when the invoice has none.
discountNoAmount as printed, e.g. 15.00. Leave out when the invoice has none.
shippingNoAmount as printed, e.g. 9.95. Leave out when the invoice has none.
subtotalNoAmount as printed, e.g. 406.73. Leave out when the invoice has none.
decimal_markNoDecimal mark of the amounts: "." for 1,234.56 or "," for 1.234,56. Default: decided from the values.

Output Schema

NameRequiredDescription
noteYes
linesYes
checksYes
statusYes
lines_sumYes
lines_countNo
computed_totalYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds real value beyond them: the three return statuses (PASS, MISMATCH with difference in cents, NOT CHECKABLE when a value is missing) and the use of integer cent math. It could go further on edge behavior (e.g. how multiple mismatches are reported, or partial-line failures), which keeps it from 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the trigger condition, then results, then exclusions — a logical order with no filler sentences. The parenthetical field list is somewhat long, but each clause still carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations, a full output schema, and 100% parameter coverage already supplied, the description covers everything remaining an agent needs: the trigger, the checks performed, the status vocabulary, and the scope boundaries. Nothing essential to correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including per-field examples and the decimal_mark enum, so the schema carries the parameter burden. The description restates the field families (quantities, unit prices, line amounts, subtotal, discount, tax, shipping, total) but adds no format or parsing guidance beyond what the schema already says; integer cent math is the only real addition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('check whether the invoice adds up') and enumerates the exact three arithmetic checks performed. It also names the sibling it is not ('does not read files (use read_invoices for PDFs)'), so an agent can separate it from read_invoices without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit trigger ('when the user types or pastes invoice amounts... and wants to know whether the invoice adds up') plus explicit exclusions: no file reading, no tax-rate computation, no payment or sending. The alternative tool for PDFs is named directly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_invoicesRead invoice PDFsA
Read-onlyIdempotent
Inspect

Use this when the user attaches 1 to 20 invoice PDFs and wants them in a spreadsheet, wants invoice data extracted (vendor, invoice number, invoice date, due date, subtotal, tax or VAT or GST, shipping, discount, total, amount due, line items), or wants the invoice arithmetic checked. Returns one Excel workbook (Invoices and Line items sheets) and a ZIP of CSV files, plus per-invoice checks: lines add up to the subtotal, subtotal - discount + tax + shipping = total, quantity x unit price = amount. Each check is PASS, MISMATCH with the difference, or NOT CHECKABLE when a value is missing. Text-based PDFs only (no OCR), up to 10 MB and 20 pages per file. Does not pay, approve, or send invoices. Do not use for receipts photographed with a phone or for making a new invoice.

NameRequiredDescriptionDefault
filesYesThe invoice PDFs, in any order, e.g. inv-1001.pdf, inv-1002.pdf. 1 to 20 files.

Output Schema

NameRequiredDescription
noteYes
filesYes
summaryYes
invoicesYes
warningsYes
downloadsNo
invoices_countNo
totals_by_currencyYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this a read-only, idempotent, non-destructive, closed-world read; the description goes well beyond them by naming the exact deliverables and the tri-state check semantics (PASS, MISMATCH with difference, NOT CHECKABLE). It also scopes the tool negatively — it does not pay, approve, or send invoices — and discloses the no-OCR limitation that will cause silent failures on scanned files.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the triggering condition, then outputs, then check semantics, then limits and exclusions. The long field list in parentheses is dense but each item earns its place by helping an agent match user requests. No filler sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Though an output schema exists, the description still usefully characterizes the return shape and the meaning of check results. For a one-parameter extraction tool with hard input limits and a non-obvious failure mode (scanned PDFs), 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter is fully documented in the schema (100% coverage), which already sets minItems/maxItems of 1-20. The description adds meaning the schema lacks: the files are invoice PDFs in any order and must be text-based, under 10 MB and 20 pages. It does not explain the download_url/file_id mechanics, but the schema covers that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource (extract/check invoice PDFs) and enumerates the exact fields extracted, so an agent knows precisely what it gets. The output artifacts (Excel workbook, CSV ZIP, per-invoice arithmetic checks) further pin down what the tool is versus the sibling check_invoice_math.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States when to use (1-20 attached invoice PDFs, spreadsheet needed, data extraction, arithmetic checking) and explicitly when not to use (phone-photographed receipts, creating a new invoice). Input constraints — text-based PDFs only, no OCR, 10 MB and 20 pages per file — are stated up front rather than left to error handling.

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.

  1. 2 tool updates
    • First observedcheck_invoice_math
    • First observedread_invoices

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables 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.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents and finance teams to extract structured fields from messy invoices and audit them before payment, applying seven evidence-backed risk rules that catch total/tax mismatches, duplicate invoices, missing fields, future dates, and round amounts, then returning a 0–100 score with a payment link. Exposes four MCP tools over stdio and Streamable HTTP (spec 2025-11-25) plus a web UI, backed by an optional AWS Bedrock or OpenAI-compatible extraction brain that degrades gracefully to a zero-dependency offline engine.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Turns 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.
    2
    98 npm
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables 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.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources