Turn your bank statement into a budget and see where your money goes.
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 pastes or lists bank or credit card transactions (date, description, amount) and asks where their money goes, to categorize spending, make a budget from them, or find subscriptions and recurring charges. Accepts a list of rows or pasted text/CSV. Returns the same report as generate_spending_report: spending by category, income vs spending, monthly totals, top merchants, recurring charges with cost per year, uncategorized merchants, Excel and PDF downloads. To correct categories, call again with the same rows and category_overrides. Use generate_spending_report when a statement file is attached. Does not connect to banks and does not give financial advice.
The transactions: a list like [{"date":"2026-09-02","description":"NETFLIX.COM","amount":-15.49}], or the rows pasted as text or CSV, e.g. "09/02/2026, NETFLIX.COM, -15.49". Money out negative, money in positive. Up to 20,000 rows.
Optional: order of numeric dates such as 03/04/2026: MDY (US, default) or DMY (day first). Example: DMY.
Optional: bank (checking or savings) or credit_card. Default: detected from the file; pasted rows count as bank. Example: credit_card.
Optional: the year for dates printed without one, e.g. 2026.
Optional: your category for merchants the rules got wrong or left Uncategorized, keyed by the merchant name shown in the result. Example: {"Blue Bottle":"Dining","Riverbend Design":"Income","Venmo":"Transfers"}. Also accepts "Blue Bottle=Dining; Acme=Income". Categories: Groceries, Dining, Transport, Travel, Shopping, Subscriptions, Utilities, Rent & mortgage, Health, Insurance, Entertainment, Cash & ATM, Fees & interest, Payments to people, Income, Transfers (not counted), or a new name such as Pets.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http spending-report https://spending-report.zovo.one/mcp
Use this when the user pastes or lists bank or credit card transactions (date, description, amount) and asks where their money goes, to categorize spending, make a budget from them, or find subscriptions and recurring charges. Accepts a list of rows or pasted text/CSV. Returns the same report as generate_spending_report: spending by category, income vs spending, monthly totals, top merchants, recurring charges with cost per year, uncategorized merchants, Excel and PDF downloads. To correct categories, call again with the same rows and category_overrides. Use generate_spending_report when a statement file is attached. Does not connect to banks and does not give financial advice.
| Argument | Type | Description |
|---|---|---|
| date_order | string | Optional: order of numeric dates such as 03/04/2026: MDY (US, default) or DMY (day first). Example: DMY. |
| account_type | string | Optional: bank (checking or savings) or credit_card. Default: detected from the file; pasted rows count as bank. Example: credit_card. |
| transactions* | any | The transactions: a list like [{"date":"2026-09-02","description":"NETFLIX.COM","amount":-15.49}], or the rows pasted as text or CSV, e.g. "09/02/2026, NETFLIX.COM, -15.49". Money out negative, money in positive. Up to 20,000 rows. |
| statement_year | number | string | Optional: the year for dates printed without one, e.g. 2026. |
| category_overrides | any | Optional: your category for merchants the rules got wrong or left Uncategorized, keyed by the merchant name shown in the result. Example: {"Blue Bottle":"Dining","Riverbend Design":"Income","Venmo":"Transfers"}. Also accepts "Blue Bottle=Dining; Acme=Income". Categories: Groceries, Dining, Transport, Travel, Shopping, Subscriptions, Utilities, Rent & mortgage, Health, Insurance, Entertainment, Cash & ATM, Fees & interest, Payments to people, Income, Transfers (not counted), or a new name such as Pets. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"transactions"
],
"properties": {
"date_order": {
"type": "string",
"maxLength": 20,
"description": "Optional: order of numeric dates such as 03/04/2026: MDY (US, default) or DMY (day first). Example: DMY."
},
"account_type": {
"type": "string",
"maxLength": 40,
"description": "Optional: bank (checking or savings) or credit_card. Default: detected from the file; pasted rows count as bank. Example: credit_card."
},
"transactions": {
"anyOf": [
{
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"date": {
"type": [
"string",
"number"
],
"description": "Date, e.g. 2026-09-02, 09/02/2026 or Sep 2 2026."
},
"amount": {
"type": [
"number",
"string"
],
"description": "Signed amount: money out negative, money in positive, e.g. -6.50 or \"$2,450.00\"."
},
"description": {
"type": "string",
"maxLength": 300,
"description": "Merchant or description as printed, e.g. SQ *BLUE BOTTLE 1234 OAKLAND."
}
},
"additionalProperties": {}
},
{
"type": "string"
}
]
}
},
{
"type": "string"
}
],
"description": "The transactions: a list like [{\"date\":\"2026-09-02\",\"description\":\"NETFLIX.COM\",\"amount\":-15.49}], or the rows pasted as text or CSV, e.g. \"09/02/2026, NETFLIX.COM, -15.49\". Money out negative, money in positive. Up to 20,000 rows."
},
"statement_year": {
"type": [
"number",
"string"
],
"description": "Optional: the year for dates printed without one, e.g. 2026."
},
"category_overrides": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
{
"type": "array",
"items": {}
},
{
"type": "string"
}
],
"description": "Optional: your category for merchants the rules got wrong or left Uncategorized, keyed by the merchant name shown in the result. Example: {\"Blue Bottle\":\"Dining\",\"Riverbend Design\":\"Income\",\"Venmo\":\"Transfers\"}. Also accepts \"Blue Bottle=Dining; Acme=Income\". Categories: Groceries, Dining, Transport, Travel, Shopping, Subscriptions, Utilities, Rent & mortgage, Health, Insurance, Entertainment, Cash & ATM, Fees & interest, Payments to people, Income, Transfers (not counted), or a new name such as Pets."
}
}
}Use this when the user attaches a bank or credit card statement (text PDF, CSV or Excel export) and asks to turn it into a budget, see where their money goes, find subscriptions or recurring charges, or total spending by category or month. Returns spending by category, income vs spending and net, monthly totals, top merchants, recurring charges with next expected date and cost per year, a list of uncategorized merchants, an Excel workbook and a one-page PDF summary. Transfers between own accounts and credit card payments are not counted as spending. To correct categories, call again with the same file and category_overrides. Does not connect to banks, does not read scanned images (needs OCR first), and does not give financial advice.
| Argument | Type | Description |
|---|---|---|
| file* | object | The bank or credit card statement: a text PDF from the bank's website, or the CSV or Excel (.xlsx) transaction export, e.g. september-statement.pdf. |
| date_order | string | Optional: order of numeric dates such as 03/04/2026: MDY (US, default) or DMY (day first). Example: DMY. |
| flip_signs | boolean | string | Optional, CSV/Excel only: true when the export lists purchases as positive numbers and payments as negative (some card exports). Default false. |
| account_type | string | Optional: bank (checking or savings) or credit_card. Default: detected from the file; pasted rows count as bank. Example: credit_card. |
| statement_year |
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.
| number | string |
| Optional: the year for dates printed without one, e.g. 2026. |
| category_overrides | any | Optional: your category for merchants the rules got wrong or left Uncategorized, keyed by the merchant name shown in the result. Example: {"Blue Bottle":"Dining","Riverbend Design":"Income","Venmo":"Transfers"}. Also accepts "Blue Bottle=Dining; Acme=Income". Categories: Groceries, Dining, Transport, Travel, Shopping, Subscriptions, Utilities, Rent & mortgage, Health, Insurance, Entertainment, Cash & ATM, Fees & interest, Payments to people, Income, Transfers (not counted), or a new name such as Pets. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"file"
],
"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": "The bank or credit card statement: a text PDF from the bank's website, or the CSV or Excel (.xlsx) transaction export, e.g. september-statement.pdf."
},
"date_order": {
"type": "string",
"maxLength": 20,
"description": "Optional: order of numeric dates such as 03/04/2026: MDY (US, default) or DMY (day first). Example: DMY."
},
"flip_signs": {
"type": [
"boolean",
"string"
],
"description": "Optional, CSV/Excel only: true when the export lists purchases as positive numbers and payments as negative (some card exports). Default false."
},
"account_type": {
"type": "string",
"maxLength": 40,
"description": "Optional: bank (checking or savings) or credit_card. Default: detected from the file; pasted rows count as bank. Example: credit_card."
},
"statement_year": {
"type": [
"number",
"string"
],
"description": "Optional: the year for dates printed without one, e.g. 2026."
},
"category_overrides": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
{
"type": "array",
"items": {}
},
{
"type": "string"
}
],
"description": "Optional: your category for merchants the rules got wrong or left Uncategorized, keyed by the merchant name shown in the result. Example: {\"Blue Bottle\":\"Dining\",\"Riverbend Design\":\"Income\",\"Venmo\":\"Transfers\"}. Also accepts \"Blue Bottle=Dining; Acme=Income\". Categories: Groceries, Dining, Transport, Travel, Shopping, Subscriptions, Utilities, Rent & mortgage, Health, Insurance, Entertainment, Cash & ATM, Fees & interest, Payments to people, Income, Transfers (not counted), or a new name such as Pets."
}
}
}