Skip to main content
Glama
tally-prime-mcp

tally-prime-mcp

create_voucher

Create TallyPrime accounting vouchers, item invoices, and stock journals from ledger and inventory entries; pass GST ledger lines explicitly and use dry_run to preview XML without writing data.

Instructions

Create a voucher in Tally (Payment, Receipt, Journal, Contra, Sales, Purchase, Credit/Debit Note, Stock Journal or any custom type). Accounting vouchers: give ledger_entries only (Debits must equal Credits). Item invoices: give inventory_entries (stock items, each posting to a sales/purchase ledger) plus ledger_entries for the party and any tax / round-off ledgers; items count as Cr when going out (sales) and Dr when coming in (purchase). Stock Journal (godown transfer, manufacturing, adjustment): give stock_out (source/consumption) and/or stock_in (destination/production). GST is not computed automatically: pass CGST/SGST/IGST ledger lines with amounts.

Input Schema

NameRequiredDescriptionDefault
dateYesVoucher date (YYYY-MM-DD)
companyNoCompany name as shown in Tally. Omit to use the currently active company.
dry_runNoIf true, only return the XML that would be sent; nothing is written to Tally and no backup is taken.
stock_inNoStock Journal: destination / production lines
extra_xmlNoAdvanced: raw Tally XML tags appended inside <VOUCHER>
narrationNo
referenceNoSupplier invoice no. / reference
stock_outNoStock Journal: source / consumption lines
is_optionalNoCreate as an optional (memo) voucher
party_ledgerNoParty ledger (also marks that ledger entry as party)
voucher_typeYesExact voucher type name (see list_voucher_types)
ledger_entriesNoAccounting lines
reference_dateNo
voucher_numberNoRequired for manually numbered voucher types; ignored by auto-numbered ones
inventory_entriesNoStock item lines (makes it an item invoice)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.0

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and does a good job disclosing key domain rules: Debits must equal Credits, item direction is Cr for sales and Dr for purchases, and GST is not auto-computed. It does not mention operational traits such as authentication needs, failure modes, or whether creation is reversible, but the core accounting behavior is well explained.

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?

The description is front-loaded with the core action and then uses dense, purposeful sentences to cover accounting vouchers, item invoices, stock journals, and GST treatment. Every sentence carries useful guidance for one of the major modes, with no filler.

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 complex 15-parameter creation tool with no annotations and no output schema, the description covers the essential accounting modes, balancing rule, item direction semantics, and GST caveat. It leaves out some operational details like dry-run behavior, backup implications, and failure/validation expectations, but the schema covers many of those parameter-level details.

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 high (87%), and the description still adds meaningful semantics by explaining how ledger_entries, inventory_entries, stock_in, and stock_out differ by voucher category. It also clarifies that CGST/SGST/IGST must be passed as explicit ledger lines, which is beyond the schema's parameter-level descriptions.

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 description states a specific verb and resource: 'Create a voucher in Tally', and enumerates the supported voucher categories (Payment, Receipt, Journal, Contra, Sales, Purchase, etc.). It is clear what the tool does, but it does not explicitly distinguish itself from sibling tools like alter_voucher, delete_voucher, or import_raw_xml.

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?

It gives clear conditional guidance for payload shape based on voucher category: accounting vouchers need ledger_entries, item invoices need inventory_entries plus party/tax ledgers, and stock journals need stock_in/stock_out. It does not explicitly say when to use this tool versus alter_voucher or delete_voucher, nor does it name prerequisites.

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