Skip to main content
Glama

Field Service Business Platform by Doing Work

books_export

Owner or office: one month (or from and to) of the shop's money as a ZIP for a bookkeeper or for QuickBooks Online by hand: a ledger CSV of every invoice, void, payment, refund, fee and payout, QuickBooks Online invoice import files, and QuickBooks Online bank upload files for a clearing account. Use this only when the shop has no agent QuickBooks sync; the sync (sync.changes) is the main way. The same period gives the same file and sha256 every time. You get download_url (60 minutes, 5 downloads; anyone with the link can download, so do not share it) or, with delivery inline, zip_base64 up to 5 MB.

Input Schema

NameRequiredDescriptionDefault
toNo
fromNo
monthNoYYYY-MM, like 2026-10. Or send from and to.
shop_idYes
deliveryNo
include_importedNoAdd payments imported from the shop's old system (history only). Default false.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description carries the full load and does it well: it discloses determinism (same period yields the same file and sha256), a 60-minute / 5-download link with a warning that anyone holding it can download, and the 5 MB ceiling when delivery is inline. These are exactly the operational and security traits an agent needs before calling.

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 core purpose is front-loaded in the first clause and every sentence carries information. The colon-chained construction ('a ledger CSV of every invoice, void, payment...') makes it dense to parse, but nothing is truly redundant.

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 six-parameter export tool with an output schema, this covers everything an agent needs: period selection, output contents, size limits, link expiry and sharing risk, determinism, and the preferred alternative path. Return value details are additionally spelled out even though the output schema already exists.

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 only 33%, but the description adds real meaning for the ambiguous parameters: month versus from/to, and the link-vs-inline delivery tradeoff including the inline size cap. include_imported is not addressed in the description, although the schema itself documents it as history-only payments defaulting to false.

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?

States a concrete verb and resource: it exports one month (or a from/to range) of the shop's money as a ZIP containing a ledger CSV, QuickBooks Online invoice import files and bank upload files. It explicitly contrasts itself with the sync path (sync.changes). The one gap is that it never distinguishes itself from the near-identically named sibling books_exports, which an agent could easily pick by mistake.

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 an explicit when-not rule: 'Use this only when the shop has no agent QuickBooks sync; the sync (sync.changes) is the main way.' The alternative and the condition that selects it are both named, so the routing decision needs no inference.

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