Skip to main content
Glama
invoices-mcp

invoices-mcp

by lucasoishi

Search transactions

search_transactions
Read-onlyIdempotent

Search individual bank card invoice transactions by text, bank, date range, category, or amount in BRL, returning newest first.

Instructions

Find individual transactions by text, bank, date range, category or amount, newest first. min_amount and max_amount compare the absolute amount in BRL. Amounts are in BRL. A positive amount is money leaving the account or card (a purchase or fee); refunds, card payments and deposits are reported separately as credits.

Input Schema

NameRequiredDescriptionDefault
toNo
bankNoOnly this bank: nubank, itau. Omit to include every bank.
fromNo
limitNoMaximum rows to return (default 50, max 200)
queryNoText to look for in the description (case and accent insensitive)
invoiceNo
categoryNo
max_amountNo
min_amountNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered structurally. The description adds real behavioral context beyond that: results are ordered newest first, amounts are normalized to absolute BRL, and the sign convention is documented along with the fact that refunds/card payments/deposits are reported separately as credits. It does not mention the default row cap or the absence of pagination.

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?

Three tight sentences with zero filler; the searchable dimensions and ordering come first, followed by the amount semantics that most need emphasis. Every sentence adds information an agent would otherwise have to guess.

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

Completeness4/5

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

For a read-only, no-required-parameter search tool with no output schema, the description covers the essentials: what can be filtered, ordering, currency, and sign semantics. The remaining holes are the unexplained `invoice` parameter and no statement about row limits relative to the 200 max, which matter because limit is the only way to bound a broad query.

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 description coverage is only 33%, so the description must carry weight, and it does for the highest-risk parameters: min_amount/max_amount compare the absolute value, and the sign of a returned amount carries meaning (positive = money out). This prevents systematic misinterpretation of spend vs. credit. Gaps remain: the `invoice` parameter is undocumented in both schema and description, and the from/to date format is never stated.

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?

States a specific verb and resource ('Find individual transactions') plus the full set of filter dimensions and the result ordering. The word 'individual' implicitly contrasts with the aggregate siblings (spending_summary, monthly_totals, compare_months, find_recurring_charges), so an agent can pick the row-level tool without inspecting a schema.

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?

Usage is implied by listing the filterable dimensions, so an agent knows this is the search/filter entry point. However, it names no alternative and gives no when-not condition — e.g. it never says to prefer spending_summary or monthly_totals for totals rather than enumerating rows.

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