Make an accounts receivable aging report from your open invoices and see who owes you money.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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).
An open invoices or A/R aging export (CSV, TSV or XLSX) from QuickBooks, Xero, FreshBooks, Wave or a spreadsheet, e.g. open_invoices.csv.
Currency code, e.g. "USD" (default), "CAD", "EUR". With a mixed-currency file, only this currency is aged.
Open 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.
Age the invoices as of this date, e.g. "2026-10-31". Default today in New York time.
Name to sign the reminder emails with, e.g. "Dana Lee". Default the company name.
Your business name for the report header and email sign-off, e.g. "Bright Path Design LLC".
Credit sales for the period, to compute DSO, e.g. 240000 or "$240,000".
Terms for invoices with no due date and no terms, e.g. "Net 30" (default) or 15.
Days in the credit sales period for DSO, e.g. 365 (default), 90, "quarter", "month".
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http ar-aging https://ar-aging.zovo.one/mcp
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).
| Argument | Type | Description |
|---|---|---|
| file | object | An open invoices or A/R aging export (CSV, TSV or XLSX) from QuickBooks, Xero, FreshBooks, Wave or a spreadsheet, e.g. open_invoices.csv. |
| currency | any | Currency code, e.g. "USD" (default), "CAD", "EUR". With a mixed-currency file, only this currency is aged. |
| invoices | any | Open 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_date | any | Age the invoices as of this date, e.g. "2026-10-31". Default today in New York time. |
| sender_name | any | Name to sign the reminder emails with, e.g. "Dana Lee". Default the company name. |
| company_name | any | Your business name for the report header and email sign-off, e.g. "Bright Path Design LLC". |
| credit_sales | number | string | null | Credit sales for the period, to compute DSO, e.g. 240000 or "$240,000". |
| default_terms | number | string | null | Terms for invoices with no due date and no terms, e.g. "Net 30" (default) or 15. |
| sales_period_days | number | string | null | Days in the credit sales period for DSO, e.g. 365 (default), 90, "quarter", "month". |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"file": {
"type": "object",
"required": [
"download_url",
"file_id"
],
"properties": {
"file_id": {
"type": "string",
"description": "ChatGPT file id, e.g. file_abc123."
},
"file_name": {
"type": "string",
"description": "Original file name if known, e.g. statement.pdf."
},
"mime_type": {
"type": "string",
"description": "Media type if known, e.g. application/pdf."
},
"download_url": {
"type": "string",
"description": "Temporary download link for the file, supplied by ChatGPT."
}
},
"description": "An open invoices or A/R aging export (CSV, TSV or XLSX) from QuickBooks, Xero, FreshBooks, Wave or a spreadsheet, e.g. open_invoices.csv."
},
"currency": {
"anyOf": [
{
"type": "string",
"maxLength": 12
},
{
"type": "null"
}
],
"description": "Currency code, e.g. \"USD\" (default), \"CAD\", \"EUR\". With a mixed-currency file, only this currency is aged."
},
"invoices": {
"anyOf": [
{
"anyOf": [
{
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"email": {
"type": [
"string",
"null"
],
"description": "Customer billing email for the reminder, e.g. [email protected]."
},
"terms": {
"type": [
"number",
"string",
"null"
],
"description": "Payment terms, e.g. \"Net 30\", \"Net 15\", \"Due on receipt\"."
},
"amount": {
"type": [
"number",
"string",
"null"
],
"description": "Invoice total, e.g. 1200 or \"$1,200.00\". Negative for a credit memo."
},
"balance": {
"type": [
"number",
"string",
"null"
],
"description": "Open balance if known, e.g. 1000. Used instead of amount minus paid."
},
"customer": {
"type": [
"string",
"null"
],
"description": "Customer name, e.g. \"Acme Corp\"."
},
"due_date": {
"type": [
"string",
"null"
],
"description": "Due date, e.g. \"2026-08-31\". Leave out to use terms."
},
"amount_paid": {
"type": [
"number",
"string",
"null"
],
"description": "Amount already paid on this invoice, e.g. 200. Default 0."
},
"invoice_date": {
"type": [
"string",
"null"
],
"description": "Invoice date, e.g. \"2026-08-01\" or \"Aug 1 2026\"."
},
"invoice_number": {
"type": [
"number",
"string",
"null"
],
"description": "Invoice number, e.g. \"INV-1042\"."
}
},
"additionalProperties": {}
},
{
"type": "string"
},
{
"type": "null"
}
]
}
},
{
"type": "string"
}
]
},
{
"type": "null"
}
],
"description": "Open 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_date": {
"anyOf": [
{
"type": "string",
"maxLength": 40
},
{
"type": "null"
}
],
"description": "Age the invoices as of this date, e.g. \"2026-10-31\". Default today in New York time."
},
"sender_name": {
"anyOf": [
{
"type": "string",
"maxLength": 80
},
{
"type": "null"
}
],
"description": "Name to sign the reminder emails with, e.g. \"Dana Lee\". Default the company name."
},
"company_name": {
"anyOf": [
{
"type": "string",
"maxLength": 120
},
{
"type": "null"
}
],
"description": "Your business name for the report header and email sign-off, e.g. \"Bright Path Design LLC\"."
},
"credit_sales": {
"type": [
"number",
"string",
"null"
],
"description": "Credit sales for the period, to compute DSO, e.g. 240000 or \"$240,000\"."
},
"default_terms": {
"type": [
"number",
"string",
"null"
],
"description": "Terms for invoices with no due date and no terms, e.g. \"Net 30\" (default) or 15."
},
"sales_period_days": {
"type": [
"number",
"string",
"null"
],
"description": "Days in the credit sales period for DSO, e.g. 365 (default), 90, \"quarter\", \"month\"."
}
}
}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).
| Argument | Type | Description |
|---|---|---|
| file | object | An open invoices or A/R aging export (CSV, TSV or XLSX) from QuickBooks, Xero, FreshBooks, Wave or a spreadsheet, e.g. open_invoices.csv. |
| message | any | Short note printed on every statement, e.g. "Thank you for your business." |
| currency | any | Currency code, e.g. "USD" (default), "CAD", "EUR". With a mixed-currency file, only this currency is aged. |
| invoices | any | Open 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_to | any | Payment instructions printed on each statement, e.g. "ACH or check to Bright Path Design, 12 Main St". |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 8, 2026.
| customers | any | Only these customers, e.g. ["Acme Corp", "Globex"] or "Acme Corp, Globex". Default every customer with a balance. |
| as_of_date | any | Age the invoices as of this date, e.g. "2026-10-31". Default today in New York time. |
| sender_name | any | Name to sign the reminder emails with, e.g. "Dana Lee". |
| company_name | any | Your business name for the report header and email sign-off, e.g. "Bright Path Design LLC". |
| overdue_only | boolean | string | null | true to make statements only for customers with past-due invoices. Default false. |
| default_terms | number | string | null | Terms for invoices with no due date and no terms, e.g. "Net 30" (default) or 15. |
| company_address | any | Your address or contact lines for the statement header, e.g. "12 Main St, Austin TX 78701, [email protected]". |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"file": {
"type": "object",
"required": [
"download_url",
"file_id"
],
"properties": {
"file_id": {
"type": "string",
"description": "ChatGPT file id, e.g. file_abc123."
},
"file_name": {
"type": "string",
"description": "Original file name if known, e.g. statement.pdf."
},
"mime_type": {
"type": "string",
"description": "Media type if known, e.g. application/pdf."
},
"download_url": {
"type": "string",
"description": "Temporary download link for the file, supplied by ChatGPT."
}
},
"description": "An open invoices or A/R aging export (CSV, TSV or XLSX) from QuickBooks, Xero, FreshBooks, Wave or a spreadsheet, e.g. open_invoices.csv."
},
"message": {
"anyOf": [
{
"type": "string",
"maxLength": 240
},
{
"type": "null"
}
],
"description": "Short note printed on every statement, e.g. \"Thank you for your business.\""
},
"currency": {
"anyOf": [
{
"type": "string",
"maxLength": 12
},
{
"type": "null"
}
],
"description": "Currency code, e.g. \"USD\" (default), \"CAD\", \"EUR\". With a mixed-currency file, only this currency is aged."
},
"invoices": {
"anyOf": [
{
"anyOf": [
{
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"email": {
"type": [
"string",
"null"
],
"description": "Customer billing email for the reminder, e.g. [email protected]."
},
"terms": {
"type": [
"number",
"string",
"null"
],
"description": "Payment terms, e.g. \"Net 30\", \"Net 15\", \"Due on receipt\"."
},
"amount": {
"type": [
"number",
"string",
"null"
],
"description": "Invoice total, e.g. 1200 or \"$1,200.00\". Negative for a credit memo."
},
"balance": {
"type": [
"number",
"string",
"null"
],
"description": "Open balance if known, e.g. 1000. Used instead of amount minus paid."
},
"customer": {
"type": [
"string",
"null"
],
"description": "Customer name, e.g. \"Acme Corp\"."
},
"due_date": {
"type": [
"string",
"null"
],
"description": "Due date, e.g. \"2026-08-31\". Leave out to use terms."
},
"amount_paid": {
"type": [
"number",
"string",
"null"
],
"description": "Amount already paid on this invoice, e.g. 200. Default 0."
},
"invoice_date": {
"type": [
"string",
"null"
],
"description": "Invoice date, e.g. \"2026-08-01\" or \"Aug 1 2026\"."
},
"invoice_number": {
"type": [
"number",
"string",
"null"
],
"description": "Invoice number, e.g. \"INV-1042\"."
}
},
"additionalProperties": {}
},
{
"type": "string"
},
{
"type": "null"
}
]
}
},
{
"type": "string"
}
]
},
{
"type": "null"
}
],
"description": "Open 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_to": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
],
"description": "Payment instructions printed on each statement, e.g. \"ACH or check to Bright Path Design, 12 Main St\"."
},
"customers": {
"anyOf": [
{
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "string"
}
]
},
{
"type": "null"
}
],
"description": "Only these customers, e.g. [\"Acme Corp\", \"Globex\"] or \"Acme Corp, Globex\". Default every customer with a balance."
},
"as_of_date": {
"anyOf": [
{
"type": "string",
"maxLength": 40
},
{
"type": "null"
}
],
"description": "Age the invoices as of this date, e.g. \"2026-10-31\". Default today in New York time."
},
"sender_name": {
"anyOf": [
{
"type": "string",
"maxLength": 80
},
{
"type": "null"
}
],
"description": "Name to sign the reminder emails with, e.g. \"Dana Lee\"."
},
"company_name": {
"anyOf": [
{
"type": "string",
"maxLength": 120
},
{
"type": "null"
}
],
"description": "Your business name for the report header and email sign-off, e.g. \"Bright Path Design LLC\"."
},
"overdue_only": {
"type": [
"boolean",
"string",
"null"
],
"description": "true to make statements only for customers with past-due invoices. Default false."
},
"default_terms": {
"type": [
"number",
"string",
"null"
],
"description": "Terms for invoices with no due date and no terms, e.g. \"Net 30\" (default) or 15."
},
"company_address": {
"anyOf": [
{
"type": "string",
"maxLength": 300
},
{
"type": "null"
}
],
"description": "Your address or contact lines for the statement header, e.g. \"12 Main St, Austin TX 78701, [email protected]\"."
}
}
}