Skip to main content
Glama

Zovo Bank File Converter

Server Details

Convert a bank statement to a QBO file that QuickBooks imports, plus OFX.

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

Score is being calculated.

Available Tools

2 tools
convert_statement_to_qboConvert bank statement to QBOA
Read-only
Inspect

Use this when the user attaches a bank or credit card statement (text PDF, CSV or Excel export) and wants to convert the bank statement to a QBO file, or an OFX, QIF or QuickBooks CSV: "convert pdf to qbo", "bank statement to ofx", "csv to qif". Returns a QuickBooks Web Connect .qbo, OFX 1.0.2 and OFX 2 files, a QIF, a 3-column QuickBooks CSV and an Excel review sheet, with stable unique FITIDs, the statement period and the ending balance, and checks opening + transactions = closing. Does not read scans or photos (use generate_qbo_file with the rows you can read) and does not connect to banks or QuickBooks.

NameRequiredDescriptionDefault
fileYesThe statement to convert: a text PDF, or the CSV or Excel (.xlsx) export from online banking, e.g. chase-sept-2026.pdf.
bank_idNoOptional BANKID for the OFX files: the bank's 9-digit ABA number printed on checks, e.g. 121000248. Default 000000000.
currencyNoISO currency code, e.g. USD (default), CAD, GBP.
intu_bidNoQuickBooks Web Connect bank id (INTU.BID) for the .qbo file. Default 3000. Use the id of your own bank if QuickBooks Desktop asks for a supported bank.
date_orderNoOrder of numeric dates: MDY (default, US) or DMY. Detected from the file when a day is above 12.
flip_signsNoOnly for CSV/Excel card exports that list purchases as positive: true flips every amount. Default false.
account_typeNochecking (default), savings, money_market, credit_card or line_of_credit. auto reads it from a PDF statement. Example: credit_card.
account_last4NoLast 4 digits of the account (or any short label) used as the account id QuickBooks links to, e.g. 4821. Default 0000. Never send the full account number.
statement_yearNoYear for dates printed without one, e.g. 2026.
closing_balanceNoEnding balance for LEDGERBAL, e.g. "$5,034.47". If unknown, the files say so (see result).
opening_balanceNoOpening balance if the file has none, e.g. 4123.55. With closing_balance it proves no row is missing.
qif_date_formatNoDate order inside the QIF file: MDY (default, Quicken US) or DMY (Quicken UK, MoneyDance in Europe).

Output Schema

NameRequiredDescription
periodYes
sourceYes
totalsYes
accountYes
previewYes
warningsYes
downloadsYes
file_checkYes
import_stepsYes
transactionsYes
unread_linesYes
not_convertedYes
preview_countNo
ending_balanceYes
reconciliationYes
not_converted_countYes

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, and the description usefully reinforces this ("does not connect to banks or QuickBooks") while adding real value: the exact artifact set returned, stable unique FITIDs, and the opening + transactions = closing validation. However, it never says what happens when that balance check fails — whether the tool errors, warns, or still emits files — which is the key behavioral fact an agent needs before calling it on a messy statement.

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?

The trigger clause is front-loaded and every element — example utterances, output list, validation claim, exclusion, sibling pointer — carries information. The middle is a long comma-chained sentence that could be split for scannability, but there is no filler or repetition.

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?

An output schema exists, so return values need no exhaustive explanation, and the description still summarizes them at the right altitude. With 12 optional parameters fully documented in the schema and a nested file object, the remaining unknowns (behavior on a failed balance check) are minor rather than structural.

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 one of the 12 parameters already carries its own documentation and the baseline applies. The description adds only indirect meaning, tying opening_balance and closing_balance to the balance proof; it says nothing about intu_bid, bank_id, flip_signs, date_order or qif_date_format, so it does not supplement the schema on the parameters most likely to be misused.

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 (convert a bank/credit card statement into a QBO file) and immediately widens the output set to OFX, QIF and QuickBooks CSV. The final clause names the sibling generate_qbo_file and the condition that selects it, so an agent can distinguish the two 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?

Opens with an explicit trigger (user attaches a text PDF, CSV or Excel export and wants a converted file), supplies real user phrasings like "csv to qif", and closes with an explicit exclusion plus the recommended alternative for scans and photos. When-to-use, when-not-to-use and the alternative are all present.

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

generate_qbo_fileMake a QBO file from transactionsA
Read-only
Inspect

Use this when the user wants to convert bank statement rows to a QBO, OFX or QIF file from rows they pasted, typed or showed in a statement photo or table: "convert csv to qbo", "bank statement to qbo converter". First convert what the user gave into transaction objects (date, description, signed amount or withdrawal/deposit, optional balance and check number); pass raw text in text only if you cannot. Returns QBO, OFX 1.0.2, OFX 2, QIF, QuickBooks CSV and an Excel review sheet with unique FITIDs and the ending balance. Do not use when a statement file is attached (use convert_statement_to_qbo); does not connect to banks or QuickBooks.

NameRequiredDescriptionDefault
textNoFallback only: pasted statement text or CSV when you cannot build the objects.
bank_idNoOptional BANKID for the OFX files: the bank's 9-digit ABA number printed on checks, e.g. 121000248. Default 000000000.
currencyNoISO currency code, e.g. USD (default), CAD, GBP.
intu_bidNoQuickBooks Web Connect bank id (INTU.BID) for the .qbo file. Default 3000. Use the id of your own bank if QuickBooks Desktop asks for a supported bank.
date_orderNoOrder of numeric dates: MDY (default, US) or DMY. Detected from the file when a day is above 12.
account_typeNochecking (default), savings, money_market, credit_card or line_of_credit. auto reads it from a PDF statement. Example: credit_card.
transactionsNoRows as objects in statement order, e.g. [{"date":"09/02/2026","description":"PAYROLL ACME INC","amount":2450},{"date":"09/03/2026","description":"GREENLEAF MARKET","amount":-82.17}]. Pasted CSV text is also accepted.
account_last4NoLast 4 digits of the account (or any short label) used as the account id QuickBooks links to, e.g. 4821. Default 0000. Never send the full account number.
statement_yearNoYear for dates printed without one, e.g. 2026.
closing_balanceNoEnding balance for LEDGERBAL, e.g. "$5,034.47". If unknown, the files say so (see result).
opening_balanceNoOpening balance if the file has none, e.g. 4123.55. With closing_balance it proves no row is missing.
qif_date_formatNoDate order inside the QIF file: MDY (default, Quicken US) or DMY (Quicken UK, MoneyDance in Europe).

Output Schema

NameRequiredDescription
periodYes
sourceYes
totalsYes
accountYes
previewYes
warningsYes
downloadsYes
file_checkYes
import_stepsYes
transactionsYes
unread_linesYes
not_convertedYes
preview_countNo
ending_balanceYes
reconciliationYes
not_converted_countYes

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, and the description adds genuinely new behavior: which output formats come back, that FITIDs are unique and the ending balance is included, and the precondition to build transaction objects first with raw `text` only as a fallback.

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?

The single paragraph is front-loaded with the when-to-use condition, then the required data shape, then outputs, then exclusions — every sentence carries information. Minor cost from the embedded example user queries, but they aid matching rather than padding.

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 conversion tool with an output schema, the description covers the missing pieces an agent needs: the preferred input construction (structured transaction objects before raw text), the range of returned formats, and the boundary against file-attachment conversion and bank connectivity.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds real guidance beyond the schema: it prescribes the order of dates/amounts in the transaction objects and warns to use `text` only when objects cannot be constructed. It does not, however, touch the many formatting parameters (intu_bid, account_last4, date_order), leaving those to 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?

States a specific verb+resource (convert pasted/typed statement rows into a QBO/OFX/QIF file) and distinguishes itself from the sibling by naming convert_statement_to_qbo as the tool for attached statement files. An agent can pick between the two without opening a 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?

Explicit when-to-use (rows the user pasted, typed, or showed in a photo/table, plus example user phrasings like "convert csv to qbo") and explicit when-not-to-use (statement file attached → convert_statement_to_qbo). It also bounds scope by saying it does not connect to banks or QuickBooks.

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 observedconvert_statement_to_qbo
    • First observedgenerate_qbo_file

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Converts customer-supplied PDF bank statements into checked Excel, CSV, or JSON with balance validation. Runs locally with your own MainBook API key or against MainBook's hosted endpoint, and it never connects to bank accounts.
    5
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI assistants such as Claude, Cursor and VS Code to turn PDF bank statements into structured transactions or import-ready CSV, OFX, QFX, QBO and Xero CSV files. Handles password-protected, scanned and multi-page statements, returning the data or saving the converted file next to the original PDF.
    5
    52 npm
    1
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables 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.
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Parse crypto exchange CSVs (Coinbase, Binance, Kraken, +11 more) and bank statement PDFs (Chase, BofA, +11 more) into Koinly, TurboTax, CoinLedger, or ZenLedger formats. Free tier: 25 files/month, no credit card required.
    1 npm
    ISC
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources