Skip to main content
Glama

Zovo AR Aging Report

Server Details

Make an accounts receivable aging report from your open invoices and see who owes you money.

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.1/5.0

Scored across 2 tools

Disambiguation4/5

The two tools produce clearly different outputs: an aging summary versus per-customer statements. Descriptions explicitly cross-reference each other and warn against using the wrong tool, though both consume the same invoice inputs and generate reminder email drafts, creating minor overlap.

Naming Consistency5/5

Both names follow a consistent verb_noun pattern: generate_aging_report and generate_customer_statements. The singular/plural noun difference reflects the output naturally and does not hurt predictability.

Tool Count3/5

Two tools is thin, and each is a large composite workflow packing calculations, formatting, email drafts, and multiple export formats into one call. The narrow domain makes two defensible, but additional focused tools could make the surface easier to use.

Completeness4/5

The surface covers the core AR reporting needs: aging buckets, customer-level statements, partial payments, credit memos, DSO, reminders, and PDF/Excel/CSV outputs. Minor gaps exist around customization or accounting-software integration, but the latter is explicitly out of scope.

Available Tools

2 tools
generate_aging_reportGenerate AR aging reportA
Read-onlyIdempotent
Inspect

Use this when the user wants an accounts receivable aging report (AR aging report, aged receivables, 'who owes me money and how late', ar aging report template filled in) from open invoices typed in chat, pasted as CSV/TSV, or attached as a CSV/XLSX export from QuickBooks, Xero, FreshBooks or Wave. Buckets each open balance into Current, 1-30, 31-60, 61-90 and over 90 days past due as of a date (default today in New York), with per-customer and grand totals that add up to the cent, partial payments and credit memos, optional DSO from credit sales, polite past-due reminder email drafts from invoice facts, and aging PDF, Excel and CSV downloads. Does not connect to accounting software, send emails or collect payments. Do not use for accounts payable (bills you owe).

NameRequiredDescriptionDefault
fileNoAn open invoices or A/R aging export (CSV, TSV or XLSX) from QuickBooks, Xero, FreshBooks, Wave or a spreadsheet, e.g. open_invoices.csv.
currencyNoCurrency code, e.g. "USD" (default), "CAD", "EUR". With a mixed-currency file, only this currency is aged.
invoicesNoOpen invoices: an array of objects like {customer:"Acme Corp", invoice_number:"INV-1042", invoice_date:"2026-08-01", terms:"Net 30", amount:1200, amount_paid:200}, or pasted CSV/TSV text with a header row, or one line per invoice like "Acme Corp, INV-1042, 2026-08-01, Net 30, 1200, paid 200". Give this or file.
as_of_dateNoAge the invoices as of this date, e.g. "2026-10-31". Default today in New York time.
sender_nameNoName to sign the reminder emails with, e.g. "Dana Lee". Default the company name.
company_nameNoYour business name for the report header and email sign-off, e.g. "Bright Path Design LLC".
credit_salesNoCredit sales for the period, to compute DSO, e.g. 240000 or "$240,000".
default_termsNoTerms for invoices with no due date and no terms, e.g. "Net 30" (default) or 15.
sales_period_daysNoDays in the credit sales period for DSO, e.g. 365 (default), 90, "quarter", "month".

Output Schema

NameRequiredDescription
dsoYes
kindYes
inputYes
totalsYes
bucketsYes
currencyYes
customersYes
downloadsYes
pdf_pagesYes
remindersYes
as_of_dateYes
as_of_noteYes
assumptionsYes
reminders_totalYes
file_total_checkYes
customers_not_shownYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds genuinely new behavior: bucket boundaries, the New York default as-of date, that totals reconcile to the cent, that partial payments and credit memos are handled, that emails are drafts only and payments are never collected. It stops short of describing pagination or limits on invoice volume.

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

Conciseness3/5

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

The guidance is front-loaded in the first clause, which is correct, but the body is one sprawling sentence with a parenthetical synonym dump ('ar aging report template filled in') and feature stacking that strains readability. Some of the enumeration aids retrieval, yet phrases like 'polite past-due reminder email drafts from invoice facts' add words without adding decision-relevant meaning.

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?

For a 9-parameter, nested-object tool with an output schema, the description covers the inputs it needs to justify (invoices vs. file, as-of date, DSO inputs) and the outputs without needing to restate return structure. An agent has enough to decide to call it, pick the data source, and set the aging date.

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% and every parameter already carries an example and default, so the baseline is 3. The description adds a little beyond the schema, notably that a mixed-currency file is filtered to the single currency and that DSO derives from credit sales, but most of the 9 parameters are only exercised implicitly through the feature list.

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

Purpose4/5

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

The description names a specific verb+resource (generate an accounts receivable aging report) and enumerates the exact outputs: Current/1-30/31-60/61-90/90+ buckets, per-customer and grand totals, DSO, reminder drafts, and PDF/Excel/CSV downloads. It explicitly excludes the adjacent-but-different task (accounts payable) and the accounting-software integration it does not perform. It never mentions the sibling generate_customer_statements, so an agent gets no help separating this from the statement tool.

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

Usage Guidelines4/5

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

The opening 'Use this when the user wants...' clause plus the synonym set (aged receivables, 'who owes me money and how late') gives a clear triggering context, and 'Do not use for accounts payable (bills you owe)' is an explicit exclusion. It also states what the tool does not do (connect to accounting software, send emails, collect payments). The gap is that no alternative tool is named for overlapping cases such as customer statements.

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

generate_customer_statementsGenerate customer statementsA
Read-onlyIdempotent
Inspect

Use this when the user wants customer statements (customer statement template, statement of account, open item statement) for customers who owe them money, from the same open invoices: typed, pasted CSV/TSV, or an attached CSV/XLSX export. Returns a PDF with one page per customer listing each open invoice with date, due date, amount, paid, open balance and days past due, an aging strip and the balance due, plus polite past-due reminder email drafts. Filter by customer names or overdue_only. Does not send statements or emails, and does not build an aging summary (use generate_aging_report).

NameRequiredDescriptionDefault
fileNoAn open invoices or A/R aging export (CSV, TSV or XLSX) from QuickBooks, Xero, FreshBooks, Wave or a spreadsheet, e.g. open_invoices.csv.
messageNoShort note printed on every statement, e.g. "Thank you for your business."
currencyNoCurrency code, e.g. "USD" (default), "CAD", "EUR". With a mixed-currency file, only this currency is aged.
invoicesNoOpen invoices: an array of objects like {customer:"Acme Corp", invoice_number:"INV-1042", invoice_date:"2026-08-01", terms:"Net 30", amount:1200, amount_paid:200}, or pasted CSV/TSV text with a header row, or one line per invoice like "Acme Corp, INV-1042, 2026-08-01, Net 30, 1200, paid 200". Give this or file.
remit_toNoPayment instructions printed on each statement, e.g. "ACH or check to Bright Path Design, 12 Main St".
customersNoOnly these customers, e.g. ["Acme Corp", "Globex"] or "Acme Corp, Globex". Default every customer with a balance.
as_of_dateNoAge the invoices as of this date, e.g. "2026-10-31". Default today in New York time.
sender_nameNoName to sign the reminder emails with, e.g. "Dana Lee".
company_nameNoYour business name for the report header and email sign-off, e.g. "Bright Path Design LLC".
overdue_onlyNotrue to make statements only for customers with past-due invoices. Default false.
default_termsNoTerms for invoices with no due date and no terms, e.g. "Net 30" (default) or 15.
company_addressNoYour address or contact lines for the statement header, e.g. "12 Main St, Austin TX 78701, billing@brightpath.com".

Output Schema

NameRequiredDescription
kindYes
inputYes
notesYes
pagesYes
totalsYes
currencyYes
downloadsYes
remindersYes
as_of_dateYes
as_of_noteYes
statementsYes
reminders_totalYes
statements_countYes
statements_not_listedYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds real context on top: it produces a PDF with one page per customer, an aging strip, balance due, and polite reminder email drafts, and clarifies that nothing is actually sent. That negative constraint is the most important behavioral disclosure. It stops short of mentioning size limits, pagination, or failure modes for unparseable files.

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?

Three dense sentences, front-loaded with the trigger and the input modes before the return shape and the exclusions. Every clause does work, but the statement of what the PDF contains is long and partially duplicates the output schema rather than earning new 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?

For a 12-parameter tool with nested invoice objects and an output schema, the description covers what an agent needs to decide to call it: accepted input sources, default behavior for customers and as_of_date, the two useful filters, and what it deliberately does not do. Return values need not be explained further because an output schema exists.

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%, so every parameter is already documented in the schema and the baseline of 3 applies. The description adds some value by enumerating the three accepted input shapes for invoices/file (typed objects, pasted CSV/TSV, attached CSV/XLSX export) and by calling out the customers and overdue_only filters, but it does not add format or edge-case detail beyond the schema.

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?

The description names a specific verb and resource ("customer statements") and immediately pins down the domain with synonyms an agent would search for ("statement of account", "open item statement"). It also explicitly distinguishes itself from the sole sibling, generate_aging_report, so an agent can choose between them 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?

It gives an explicit trigger ("Use this when the user wants customer statements ... for customers who owe them money") and explicit exclusions ("Does not send statements or emails, and does not build an aging summary (use generate_aging_report)"). The alternative is named along with the condition that selects it, leaving nothing to inference.

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 observedgenerate_aging_report
    • First observedgenerate_customer_statements

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables users to track unpaid invoices and generate an escalating ladder of payment-reminder letters — first reminder, second reminder, and final notice — anchored to the due date, plus overdue listings, aging buckets, and a daily chase list of what to send today. It records payments and letters sent, rendering each letter as Markdown or printable HTML without ever emailing anything itself.
    11
    46 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables building client statements of account from existing invoices, credit notes, and deposits, with aged outstanding balances, PDF/plain-text output, and drafted payment chasers at friendly, firm, or final levels.
    8
    60 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Lets a user ask what their business is owed, who to chase first, and get a chase email drafted in their own voice, via tools for weekly totals, chase queues, customer history, due-soon invoices and insights. Every tool only reads or returns a draft, so nothing can be sent.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables agents to turn an invoice CSV into an accounts receivable aging report, showing open and overdue totals, aging buckets, and customers ranked by who to chase first. It also inspects CSV columns and row counts without exposing row contents.
    376 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources