Skip to main content
Glama
uol-mcp

uol-mcp

by jakubbegera

Search issued invoices

search_sales_invoices
Read-onlyIdempotent

Find issued sales invoices, newest first, with payment status and filters for invoice number, buyer, type, amounts, and issue/tax/due dates to review accounting periods or customer billing.

Instructions

Search issued (sales) invoices — vydané faktury — newest first. Each row includes payment status from UOL receivables. Use tax_date_* (DUZP) for accounting-period questions, issue_date_* for "issued in". Drafts and cancelled invoices are listed too; check status. For "who owes me money" prefer list_receivables.

Input Schema

NameRequiredDescriptionDefault
pageNoPage number, starting at 1
typeNo
limitNoRows per page (max 100)
queryNoFull-text: invoice number, buyer name or text
numberNoPartial match of the invoice number
buyer_idNoContact id from search_contacts
total_maxNo
total_minNoTotal including VAT
due_date_toNoDate as YYYY-MM-DD
tax_date_toNoDate as YYYY-MM-DD
due_date_fromNoDate as YYYY-MM-DD
issue_date_toNoDate as YYYY-MM-DD
tax_date_fromNoDate as YYYY-MM-DD
issue_date_fromNoDate as YYYY-MM-DD
variable_symbolNo

Output Schema

NameRequiredDescriptionDefault
invoicesYes
paginationYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.6.1

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations (which already declare readOnly/idempotent/non-destructive), the description discloses default sort order, that each row carries payment status derived from UOL receivables, and that drafts and cancelled invoices are included so callers must check status. That inclusion caveat is exactly the kind of non-obvious behavior an agent needs and cannot get from the schema or hints.

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 compact sentences, front-loaded with the core identity and ordering, then the date semantics, then the completeness caveat, then the alternative routing. No filler or restatement of the title.

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 15-parameter search tool with rich annotations and an output schema, the description covers the decision-relevant semantics: what is searched, ordering, result completeness, and sibling routing. The enum meaning of type (corrective/proforma/penalty) and amount filters are left to the schema, a minor residual gap.

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 80%, so the baseline is 3; the description earns a bump by disambiguating the three date families (tax/issue/due) that the schema only labels as "Date as YYYY-MM-DD". It leaves other parameters such as type enum values and variable_symbol unelaborated, but the highest-risk ambiguity is resolved.

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 ("Search issued (sales) invoices"), gives the Czech alias "vydané faktury", and notes the default ordering (newest first). It is clearly separable from siblings search_purchase_invoices and list_receivables, the latter of which is named explicitly.

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 explicit routing rules: use tax_date_* (DUZP) for accounting-period questions versus issue_date_* for "issued in", and defer to list_receivables for "who owes me money". Both when-to-use and when-to-use-something-else are stated.

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