Skip to main content
Glama
uol-mcp

uol-mcp

by jakubbegera

Revenue, expenses and profit by month

get_financial_overview
Read-onlyIdempotent

Retrieve monthly revenue, expenses and profit from the general ledger, including payroll and rent, net of VAT, with unbooked-month flags and top revenue/expense accounts.

Instructions

Revenue (výnosy, class 6), expenses (náklady, class 5) and profit per month from the general ledger — the same basis as the UOL web dashboard, so payroll, rent and other internal documents count, not just invoices. Amounts are net of VAT, in the home currency. The current month is still running, and months the accountant has not booked yet have booked=false — say so instead of reporting zero. Also returns the largest revenue and expense accounts (with names) for the whole window.

Input Schema

NameRequiredDescriptionDefault
monthsNoMonths ending with the current one

Output Schema

NameRequiredDescriptionDefault
as_ofYes
monthsYes
totalsYes
truncatedYesTrue when the ledger had more postings than one call reads; use fewer months
booked_throughYesDate of the latest revenue or expense posting: the ledger is booked up to here; later months are not booked yet
revenue_by_accountYes
current_vs_previousYes
expenses_by_accountYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.6.1

TDQS

A4/5.0
Behavior4/5

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

Beyond the readOnly/idempotent annotations, the description discloses genuinely non-obvious traits: amounts are net of VAT and in home currency, the current month is still running, unbooked months return booked=false, and the response includes the largest revenue and expense accounts with names. It does not cover cost or latency for a ledger-wide aggregation, but the semantic caveats an agent needs to avoid misreporting are all present.

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?

Two dense sentences, front-loaded with the scope before the caveats, and the Czech/class-6/class-5 parenthetical earns its place by anchoring the ledger mapping. The 'same basis as the UOL web dashboard' clause is slightly indirect but pays off by ruling out the invoice-only interpretation. Minor tightening possible, but nothing is padding.

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 values need not be explained, and the description instead spends its budget on the traps: running current month, booked=false, net-of-VAT amounts, home currency. For a single-optional-parameter read tool with full annotation coverage, nothing an agent needs in order to call it and report results honestly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter 'months' already documents 'Months ending with the current one' with defaults and bounds. The description reinforces that figures are 'per month' and that the current month is partial, but adds no new meaning about the months parameter itself (e.g., no note that the window also drives the top-accounts summary, though that is inferable).

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 resource set (revenue, expenses, profit per month) drawn from a named source (the general ledger) and explicitly pins the accounting basis: 'the same basis as the UOL web dashboard, so payroll, rent and other internal documents count, not just invoices.' That basis statement is what separates it from invoice-centric siblings like get_sales_invoice or list_receivables, so an agent can route correctly without opening the 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?

There is no explicit when-to-use or when-not-to-use guidance relative to siblings such as get_vat_overview or get_business_snapshot, which plausibly overlap. What exists instead is interpretive guidance — 'say so instead of reporting zero' for unbooked months — which is valuable but governs reading the output, not selecting the tool. Usage is strongly implied by the scope sentence rather than stated.

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