Skip to main content
Glama
lokesh-sparrow

PNPC-MCP-Tally-Prime

get_vat_liability_summary

Read-only

Get a UAE VAT liability summary for any date range, with balances classified as input, output, reverse charge, or other. Combines structural tags and naming patterns to flag missing VAT ledgers.

Instructions

Get a UAE VAT liability summary for a date range. Each row is a VAT ledger with its closing balance for the period, classified as input/output/rcm/other — 'rcm' (reverse charge) is kept separate from plain input/output because reverse-charge liability is the thing that's easily missed manually, even though it nets to a wash for most businesses — tagged with how it was found — 'structural' (Tally's own Type-of-duty/tax field is set to VAT on that ledger) or 'name_pattern' (matched Input/Output/Payable/Receivable VAT naming). Both signals are used together, not one alone — confirmed live on real company data that Tally's structural tag is precise but has near-zero recall: every properly-tagged ledger had a zero balance, while the ledgers actually carrying real money were created without that tag set at all. Not filtered by any particular parent group — real companies were confirmed to scatter these ledgers across many different groups, not one standard group. netTotal sums all rows using Tally's own debit/credit sign convention. Not Tally's canned VAT return report (confirmed live it isn't reachable via a plain Export Data request) — reconstructed from ledger balances the same way get_profit_and_loss is. If no matching ledgers exist, returns an explicit note instead of a bare zero — a company with no VAT ledgers (not registered, or unrecognizable naming) is a different fact from a real zero liability period.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toYesEnd date, DD-MM-YYYY
fromYesStart date, DD-MM-YYYY

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Addedv1.11.2

TDQS

A4.3/5.0
Behavior5/5

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

The description goes far beyond the readOnlyHint annotation, disclosing how ledgers are classified (input/output/rcm/other), how matches are detected (structural vs name_pattern), that both signals are used together, that no parent group filter is applied, how netTotal is computed, and the special no-match behavior returning an explicit note instead of zero. This is exceptionally transparent about the tool's behavior and limitations.

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

Conciseness3/5

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

The description is front-loaded with the core purpose and contains genuinely useful behavioral detail, but it is verbose and delivered as one long run-on paragraph. Points like the live-confirmed recall issue and the real-company group scattering are repeated across multiple clauses, which could be consolidated. No structure such as bullets or separate sentences for output shape versus matching behavior is used.

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?

Despite having no output schema, the description explains what each row represents, how rows are classified and tagged, how netTotal is computed, what happens when no ledgers are found, and why this is not Tally's canned VAT report. For a read-only two-parameter report tool, this fully equips an agent to select and invoke the tool correctly.

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?

The input schema fully documents both parameters (from and to) with date format descriptions, so schema coverage is 100%. The description adds 'for a date range' and confirms the period-based query, but it does not add significant new semantic detail beyond what the schema already provides. Since the schema carries the parameter documentation burden, a baseline of 3 is appropriate.

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: 'Get a UAE VAT liability summary for a date range.' It clearly identifies the output as reconstructed ledger-based VAT liability, not Tally's canned report, and distinguishes the report type from sibling tools like get_gst_liability_summary through the explicit UAE VAT framing.

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

Usage Guidelines4/5

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

The intended use is clear: call this when a UAE VAT liability summary for a date range is needed. It also provides useful when-not context by ruling out Tally's canned VAT return report and noting that the report is reconstructed from ledger balances like get_profit_and_loss. However, it does not explicitly name alternatives such as get_gst_liability_summary or state conditions for choosing one over another.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/lokesh-sparrow/PNPC-MCP-Tally-Prime'

If you have feedback or need assistance with the MCP directory API, please join our Discord server