Skip to main content
Glama

Caribooks (QuickBooks Online)

Attach a receipt to a transaction

attach_receipt

Render user-provided receipt text as a PDF transcription and attach it to a QuickBooks transaction. Intended for receipts that exist only as text, such as an email body or copied order confirmation. The PDF is visibly marked as a transcription, not an original document. Requires confirmed_by_user: true after the user explicitly requests a transcription, and full access on the connection. The receipt fields contain the original text and, when applicable, the actual email sender and subject. Does not transfer original uploaded files.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
txn_idYesQuickBooks Id of that transaction.
companyNoWhich connected QuickBooks company to use (name, realm id, or connection id). Optional when only one company is connected.
receiptYesThe receipt content to render into the attached PDF.
filenameNoAttachment file name. Defaults to '<date> <sender>.pdf', or '<date> receipt.pdf' without a sender.
txn_typeYesQuickBooks transaction type the receipt documents.
allow_duplicateNoThe call fails if the transaction already has an attachment. Only set true after the user explicitly confirms they want an additional document attached.
confirmed_by_userNotrue only after the user explicitly asked for a rendered transcription, knowing it is not the original document. Without it the call is refused.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only provide readOnlyHint=false and destructiveHint=false, so the description carries the behavioral burden and fulfills it well. It discloses that the PDF is 'visibly marked as a transcription, not an original document,' that it requires explicit confirmation, that it fails on duplicates unless confirmed, and that it never transfers original uploaded files. This far exceeds the minimal annotation signal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, each serving a distinct purpose: what it does, when to use it, behavioral caveat, and explicit non-transfer. It is front-loaded with the core action and wastes no words. The structure is tight and scannable.

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 tool with 7 parameters, a nested object, no output schema, and mutation semantics, the description covers all critical aspects: purpose, target scenario, prerequisites (confirmation and access), duplicate handling, and non-transfer of originals. Combined with the 100% schema descriptions, an agent has everything needed to decide and invoke correctly.

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 meaningful context for receipt fields: 'The receipt fields contain the original text and, when applicable, the actual email sender and subject.' It also clarifies the filename default and emphasizes the confirmation gates on confirmed_by_user and allow_duplicate. That extra guidance compensates for the nested-object complexity.

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?

The description opens with a specific verb and resource: 'Render user-provided receipt text as a PDF transcription and attach it to a QuickBooks transaction.' It clearly distinguishes from siblings by narrowing to text-only receipts and explicitly stating 'Does not transfer original uploaded files,' which separates it from attach_file.

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?

The description gives explicit when-to-use guidance ('Intended for receipts that exist only as text, such as an email body or copied order confirmation'), states prerequisites ('Requires confirmed_by_user: true... and full access on the connection'), and implies the alternative for original files with 'Does not transfer original uploaded files.' No ambiguity remains about when this tool is appropriate.

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