Skip to main content
Glama

quickbooks_report

Read-onlyIdempotent

Fetch QuickBooks financial reports, including profit and loss, balance sheet, cash flow, trial balance, and A/R or A/P aging, filtered by date range and accounting method.

Instructions

Fetch a named QuickBooks report such as profit_loss, balance_sheet, cash_flow, trial_balance, ar_aging, or ap_aging.

Args: report_name (required): QuickBooks report name or alias. start_date: Report start date (YYYY-MM-DD). end_date: Report end date (YYYY-MM-DD). as_of_date: Report as-of date for balance/aging reports (YYYY-MM-DD). accounting_method: Accounting method: Accrual or Cash. summarize_column_by: Optional QuickBooks summarize_column_by parameter. columns: Optional report columns to request. project_id: Authenticated Project UUID. project_ref: Exact project correlation reference. connector_account_ref: Project-bound connector account alias. idempotency_key: Stable business-action identity. effect: Required and must be read; Spring verifies it. approval_ref: Approved platform task UUID when resuming a write.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
effectYes
columnsNo
end_dateNo
as_of_dateNo
project_idNo
start_dateNo
project_refNo
report_nameNo
approval_refNo
idempotency_keyNo
accounting_methodNo
summarize_column_byNo
connector_account_refNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changedv0.1.1
    • addedInput schema / properties / approval_ref
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Approval Ref"
      +}
    • addedInput schema / properties / connector_account_ref
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Connector Account Ref"
      +}
    • addedInput schema / properties / effect
      Added value: +{
      +  "const": "read",
      +  "title": "Effect",
      +  "type": "string"
      +}
    • addedInput schema / properties / idempotency_key
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Idempotency Key"
      +}
    • addedInput schema / properties / project_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Project Id"
      +}
    • addedInput schema / properties / project_ref
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Project Ref"
      +}
    • addedInput schema / required
      Added value: +[
      +  "effect"
      +]
  2. First observedv0.1.0

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already cover readOnlyHint, idempotentHint, and destructiveHint. The description adds the 'effect: Required and must be read; Spring verifies it' constraint, which is useful, but it also includes 'approval_ref: ... when resuming a write,' which is confusing and hints at write behavior that contradicts the read-only profile. No direct contradiction, but the added context is muddled.

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 purpose sentence is front-loaded and effective, followed by a compact Args block. For a tool with 13 parameters, the length is reasonable and each line earns its place without rhetorical filler.

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

Completeness3/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 not be described. But the tool has a complex parameter set and several competing sibling tools; the description does not explain parameter interactions (e.g., when to use as_of_date versus start_date/end_date beyond a single phrase) and leaves the report_name requiredness conflict unresolved, which is a meaningful ambiguity.

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 0%, so the description carries a large burden. It does provide one-line semantics for all 13 parameters, including date formats and allowed accounting methods. However, it incorrectly labels report_name as required while the schema marks it optional with a null default, which could mislead invocation. Some entries are also tautological, such as 'Optional QuickBooks summarize_column_by parameter.'

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 clearly states a specific verb ('Fetch') and resource ('named QuickBooks report') with concrete examples. However, it does not differentiate itself from specialized sibling tools like quickbooks_profit_loss_report, quickbooks_balance_sheet_report, or quickbooks_cash_flow_report, which overlap directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this generic report tool versus the dedicated per-report siblings. The description lists report names that have equivalent sibling tools but never tells the agent which one to prefer or when this variant is appropriate.

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

Deploy Server

Other Tools