Skip to main content
Glama

Zovo Expense Report

Generate expense report from file

generate_expense_report_from_file
Read-only

Use this when the user attaches a CSV or Excel (.xlsx) list of chosen business expenses and wants an expense report or reimbursement form from it; if you can read the file yourself, prefer sending its expense lines as objects to generate_expense_report. Reads simple user-made sheets (Date, Merchant, Category, Amount, Currency, Payment method, Receipt, Reimbursable, Miles, Notes) and expense-tool exports such as Expensify, Concur, SAP, Navan, Ramp, Brex, Spendesk, Pleo, Payhawk and Zoho Expense. A bank or card statement export (balance, account or booking-date columns, salary rows) is refused: ask the user which charges are business expenses and send only those. Returns the same PDF report, Excel file and policy flags as generate_expense_report. Pasted text sent to generate_expense_report is read the same strict way: clear lines are counted, and ambiguous ones are returned for you to send again as structured lines. Does not read receipt images or PDFs of receipts (read those yourself and use generate_expense_report), and does not submit anything to an employer system.

Input Schema

NameRequiredDescriptionDefault
fileYesThe expense list as a CSV or Excel (.xlsx) file with columns such as Date, Merchant, Category, Amount, e.g. october-expenses.xlsx.
periodNoOptional: report period, e.g. "October 2026" or "2026-10-01 to 2026-10-15". Lines outside it are flagged. Default: first to last line date (no period flags).
advanceNoOptional: cash advance already received, subtracted from the total due, e.g. 200 or "$200".
purposeNoOptional: business purpose of the trip or period, e.g. Client visit to Acme in Denver.
approverNoOptional: manager who approves the report, e.g. Sam Patel.
currencyNoOptional: currency of the report total, e.g. USD (default), EUR, GBP.
line_capNoOptional: flag any single line above this amount, e.g. 500. Default: no cap.
timezoneNoOptional: the user's IANA timezone for the default report date, e.g. Asia/Ho_Chi_Minh or America/New_York.
date_orderNoOptional: MDY (US) or DMY for dates like 03/10/2026. Default: decided once for the whole list (a day above 12 decides it; otherwise day first for GBP, EUR, AUD, NZD and INR reports, month first for others).
departmentNoOptional: department or cost center, e.g. Sales West.
report_dateNoOptional: date printed on the report, e.g. 2026-10-25. Default: today in the timezone you pass, else today in UTC.
mileage_rateNoOptional: mileage rate in the report currency or in cents, e.g. 0.70, "70 cents" or "0.30 per km". A rate with no unit is per km for km distances and per mile for mile distances. Default for USD reports: the IRS business rate for the line date (2025: 70 cents; 2026: 72.5 cents to June 30, 76 cents from July 1).
employee_nameNoOptional: name printed on the report, e.g. Jordan Lee. Left blank for handwriting when not given.
flag_weekendsNoOptional: flag Saturday and Sunday expenses (default true).
exchange_ratesNoOptional: rates into the report currency, e.g. {"EUR": 1.08, "GBP": 1.27} (1 EUR = 1.08 USD). A line's own rate or converted amount wins.
holiday_countryNoOptional: country whose public holidays are flagged, e.g. US (default), GB, CA, or none.
receipt_required_overNoOptional: receipts are required for items of this amount or more, e.g. 75 (default 75).

Output Schema

NameRequiredDescriptionDefault
flagsYes
notesYes
policyYes
reportYes
totalsYes
excludedYes
downloadsYes
categoriesYes
lines_previewYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly, non-destructive and closed-world, but the description adds substantial behavior beyond them: the refusal path for bank statements with the recommended recovery (ask which charges are business expenses), the list of recognized expense-tool export formats, the returned artifacts (PDF, Excel, policy flags), and the strict-line parsing behavior where ambiguous lines are handed back for resubmission.

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 usage condition and the sibling alternative are front-loaded in the first sentence, and the refusal/limitation clauses are grouped afterward. It is dense and long, and the sentence about pasted text sent to generate_expense_report is somewhat tangential to this tool, but nearly every clause carries actionable 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 17-parameter tool with a nested file object, the description covers input format acceptance, refusal cases, recovery instructions, and output artifacts, with the output schema handling return details. An agent has everything needed to decide whether to call it and what to expect.

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 each of the 17 parameters carries its own explanation and defaults, so the schema does the heavy lifting. The description contributes context about the recognized input columns (Date, Merchant, Category, Amount, Miles, etc.) but says nothing about the optional report-shaping parameters, which is acceptable at baseline 3.

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 ('generate an expense report ... from an attached CSV or Excel list') and explicitly names the sibling generate_expense_report as the alternative path. An agent can distinguish the two tools 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 explicit positive conditions (user attaches a CSV/.xlsx expense list), an explicit alternative ('if you can read the file yourself, prefer sending its expense lines as objects to generate_expense_report'), and explicit exclusions (bank/card statement exports are refused; receipt images and PDFs are not read; nothing is submitted to an employer system). The routing decision is fully determined by the text.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources