Skip to main content
Glama
ComplyEaze

ComplyEaze Bridge: TallyPrime MCP server for Claude Desktop

Official

ledger_movement

Read-only

Read a ledger's opening and closing balance, exact debit/credit movement and touched-voucher count for a date range in TallyPrime, with optional per-ledger filtering and paging.

Instructions

Return literal-window ledger opening, exact debit/credit movement, closing, and touched-voucher count with a freshly observed supported product/mode and an operation-valid opening boundary. Reads the full voucher window before filtering or pagination; use narrow dates. Dense windows can fail source limits. Requires one observed INR currency master: a book with several Currency masters, none, or one that is not INR is refused before any ledger read. A ledger name resolves only when spelled as in the book or differing from it only in ASCII case and spaces; ledger_match names the ledger read, how (matched: exact, or case_or_spacing, which the answer should mention by naming the ledger read) and any similar_ledgers that differ from it only in case or whitespace. A slow read says so in the result's read_cost: the window is read twice, a planned read and a replay that proves nothing moved, and the block gives both reads' observed seconds, a floor derived from the census gaps (not measured) and whether those two voucher reads together stayed inside the one measured host limit (the two ledger catalogue reads, the company check and the wider read an empty window gets are not in it); it adds no request and refuses nothing. For every ledger's balances from Tally's own Trial Balance, without reading vouchers, use trial_balance instead. Each call appends metadata-only receipt lines (tool, company, counts, request and response fingerprints; no book content) to ComplyEaze Bridge's local log on this computer; it writes nothing to Tally.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toYesThe last day of the date range, included (YYYYMMDD or YYYY-MM-DD).
fromYesThe first day of the date range, included (YYYYMMDD or YYYY-MM-DD).
limitNoThe most rows to return on this page. The default and the maximum are this server's row limit (500 unless it is configured otherwise).
ledgerNoOptional: one ledger's name, spelled as in the book or differing only in ASCII case and spaces. Left out, every ledger. A name that does not resolve is refused before any voucher is read.
offsetNoHow many rows to skip before this page: 0, the default, is the first page.
company_guidYesThe company's company_guid, as list_companies returns it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changedv0.4.3
    • addedInput schema / properties / company_guid / description
      Added value: +"The company's company_guid, as list_companies returns it."
    • addedInput schema / properties / from / description
      Added value: +"The first day of the date range, included (YYYYMMDD or YYYY-MM-DD)."
    • addedInput schema / properties / ledger / description
      Added value: +"Optional: one ledger's name, spelled as in the book or differing only in ASCII case and spaces. Left out, every ledger. A name that does not resolve is refused before any voucher is read."
    • removedInput schema / properties / limit / default
      Removed value: -500
    • addedInput schema / properties / limit / description
      Added value: +"The most rows to return on this page. The default and the maximum are this server's row limit (500 unless it is configured otherwise)."
    • addedInput schema / properties / offset / description
      Added value: +"How many rows to skip before this page: 0, the default, is the first page."
    • addedInput schema / properties / to / description
      Added value: +"The last day of the date range, included (YYYYMMDD or YYYY-MM-DD)."
  2. First observedv0.4.1

TDQS

A4.3/5.0
Behavior5/5

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

Annotations only cover the read-only/safety profile, and the description adds substantial behavioral context: the INR currency-master precondition and refusal, ledger-name resolution semantics, the double-read read_cost measurement and what it excludes, and the metadata-only receipt logging to a local bridge with nothing written to Tally. This goes well beyond what the annotations provide.

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 return value is front-loaded, which is good, but the read_cost sentence is a ~90-word run-on with nested clauses that is very hard to parse, and several behavioral points (refusals, receipt logging) are stated at length. Most content earns its place, but the presentation is not tight.

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?

With no output schema, the description carries the burden of describing the return payload (opening, movement, closing, counts, ledger_match, read_cost) and does so. It also covers refusals, pagination interaction, logging side effects, and the alternative tool. Complete for a tool of this complexity.

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 description coverage is 100%, so the schema already documents all six parameters including the ledger name-resolution rule. The description mostly repeats that rule and adds detail on the non-parameter ledger_match/similar_ledgers fields, so it does not meaningfully extend parameter meaning beyond the schema. Baseline 3 is appropriate.

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?

The opening sentence names a specific verb and resource set: ledger opening, debit/credit movement, closing, and touched-voucher count over a date window. It also explicitly differentiates from the sibling trial_balance, so an agent can route correctly. The heavy jargon ('literal-window', 'operation-valid opening boundary') slightly obscures the plain purpose.

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?

It gives explicit when-to-use guidance ('use narrow dates', reads the full window before filtering) and names the alternative with the selecting condition ('without reading vouchers, use trial_balance instead'). The refusal preconditions (no/several/non-INR currency master) are stated as gating context.

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