Skip to main content
Glama
QuickBooks Desktop MCP

QuickBooks Desktop MCP

by Compolaga

qb_find_invoice

Read-only

Locate invoices by exact reference number, amount, date range, or customer; provide at least one search criterion to retrieve matching QuickBooks Desktop invoices.

Instructions

Finds invoices by ref number (exact), and/or amount (matches total = subtotal + tax, or balance remaining), date range (YYYY-MM-DD) and customer. Give at least one criterion.

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": "qb_find_invoice"
  }
}

Input Schema

NameRequiredDescriptionDefault
amountNo
date_toNo
customerNo
date_fromNo
ref_numberNo
include_linesNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety and data locality are covered. The description does add genuine behavior beyond that: ref number matching is exact, and amount matches either the total (subtotal + tax) or remaining balance, which resolves a real ambiguity. It leaves the include_lines toggle entirely unexplained and says nothing about result limits or ordering.

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?

Two sentences, no filler, with the searchable criteria front-loaded and the cardinality constraint at the end. Nothing could be removed without losing 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?

An output schema exists, so return shape need not be explained, and annotations cover the safety profile. For a six-parameter optional-filter lookup with zero schema descriptions, the description supplies the semantics an agent needs to construct a valid call; only the include_lines flag remains a minor unknown.

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 0% (titles only), so the description must carry the load and it does for four of six parameters: exact-match semantics for ref_number, dual interpretation for amount, the YYYY-MM-DD format for the date bounds, and customer matching. Only include_lines and the inclusivity of date_from/date_to are left undefined.

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?

Names a specific verb and resource (finds invoices) and enumerates the searchable facets: ref number, amount, date range, customer. It is clearly a lookup tool, distinguishable from creation/mutation siblings, though it never names the neighbouring retrieval tools (qb_list_open_invoices, qb_find_transactions) it could be confused with.

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

Usage Guidelines3/5

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

"Give at least one criterion" is a real usage constraint that tells the agent not to call it bare, which is more than nothing. But there is no guidance on when to prefer this over qb_list_open_invoices or qb_find_transactions, and no statement of what happens if a criterion matches many records.

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