Skip to main content
Glama

Switchbooks

Read Financial Reports

manage_reports
Read-onlyIdempotent

Read profit and loss (pnl), balance sheet (balanceSheet), cash flow (cashFlow), and trial balance (trialBalance, as of endDate) reports for the active company. Inspect supporting entries and totals, compare periods, summarize spending by payee, or generate forecasts. For an account ledger, use details with category set to the account name. For a P&L by company, read pnl with companies: one column per company and a Total. The transactions, journalEntries, uncategorized, and generalLedger report values are spreadsheet exports, made in the Switchbooks web app. Dates use YYYY-MM-DD. Set action to one of: read, details, forecast.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "manage_reports"
  }
}

Input Schema

NameRequiredDescriptionDefault
byNo
fileNo
refsNo
monthNo
payeeNo
actionNo
metricNo
monthsNo
offsetNo
reportNo
classesNo
companyNoCompany for this call only: its ID, exact name, or a unique part of the name. Leave out to use the active company.
compareNo
displayNo
endDateNo
categoryNo
companiesNo
startDateNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / by / enum
      Previous value: -[
      -  "payee",
      -  "month",
      -  "quarter",
      -  "year",
      -  "class"
      -]New value: +[
      +  "payee",
      +  "month",
      +  "quarter",
      +  "year",
      +  "class",
      +  "classMonth",
      +  "classQuarter",
      +  "classYear"
      +]
  2. Changed2 schema fields changed
    • changedInput schema / properties / by / enum
      Previous value: -[
      -  "payee",
      -  "month",
      -  "quarter",
      -  "year"
      -]New value: +[
      +  "payee",
      +  "month",
      +  "quarter",
      +  "year",
      +  "class"
      +]
    • addedInput schema / properties / classes
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  3. Changed1 schema field changed
    • addedInput schema / properties / companies
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  4. First observed

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds useful context — that generalLedger is a spreadsheet export produced in the Switchbooks web app, and that dates are YYYY-MM-DD — but says nothing about pagination, response size, or how the large parameter set affects behavior.

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?

It is dense and front-loaded with report types, but the sentence about transactions/journalEntries/uncategorized 'report values' names values that do not exist in the enum, which is misleading filler. The action enum is restated at the end after being implied earlier, wasting a sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An 18-parameter, zero-required, no-output-schema tool needs substantially more documentation of parameter interactions and defaults than this provides. The description covers the high-level report/action surface but leaves the majority of parameters and the comparison/grouping semantics (by, compare, offset, months, refs) unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 6% across 18 parameters, so the description must carry the load, yet it only clarifies report, action, category, companies, startDate/endDate. Eleven parameters (by, file, refs, month, payee, metric, months, offset, classes, compare, display) receive no meaning at all from either source. It also references report values (transactions, journalEntries, uncategorized) that are absent from the report enum, adding confusion rather than clarity.

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 opens with a specific verb+resource ('Read profit and loss (pnl), balance sheet... reports for the active company') and enumerates the report values and the three actions, so an agent can tell what the tool produces. It does not explicitly contrast itself with siblings such as manage_journal_entries or books_glance, which keeps it below a 5.

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?

It gives concrete routing rules: use 'details with category set to the account name' for an account ledger, read pnl with 'companies' for a per-company P&L, and lists valid action values. What's missing is guidance on choosing between this tool and adjacent tools like books_glance or manage_journal_entries for overlapping questions.

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.