Skip to main content
Glama
lokesh-sparrow

PNPC-MCP-Tally-Prime

create_voucher_type

Define or modify a voucher type in TallyPrime, setting its parent, abbreviation, numbering method, and duplicate prevention.

Instructions

Create a new custom Voucher Type in TallyPrime (e.g. 'Bank Payment' as a sub-type of 'Payment', with its own numbering series/abbreviation) — or rename/reconfigure an existing one by passing oldName. Base types to derive from: 'Payment', 'Receipt', 'Journal', 'Contra', 'Sales', 'Purchase', 'Credit Note', 'Debit Note', 'Stock Journal', 'Physical Stock', etc. — must be an exact existing voucher type name (check get_voucher_types first). Setting numberingMethod explicitly is useful given the confirmed-live issue where some Tally configurations stop auto-numbering item-invoice-mode voucher types via the XML gateway unless a voucherNumber is supplied on every create call — see create_sales_invoice's voucherNumber note. Confirmed live separately: a brand-new custom voucher type created WITHOUT numberingMethod set can accept vouchers with a completely blank voucher number (not even '1') — pass numberingMethod: 'Automatic' explicitly to avoid ending up with unreferenceable vouchers you can only look up/delete by date.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesName of the voucher type (the new name, if renaming)
parentYesBase voucher type this derives from, e.g. 'Payment', 'Sales', 'Journal'. Must already exist (see get_voucher_types).
oldNameNoExisting voucher type's current name — pass this to rename/reconfigure instead of creating a new one.
extraFieldsNoEscape hatch for any other native Tally VOUCHERTYPE field by exact XML tag name — not validated.
abbreviationNoShort code shown for this voucher type in reports, e.g. 'Bank Pymt'.
numberingMethodNo'Automatic', 'Manual', 'Automatic (Manual Override)', or 'Multi User Auto'. Controls whether Tally auto-assigns voucher numbers on create, and whether an explicit voucherNumber is accepted/required.
preventDuplicatesNoReject a new voucher if its number duplicates an existing one of this type.
useAsManufacturingJournalNoFlag this voucher type as a Manufacturing Journal (only meaningful with parent 'Stock Journal'). Same underlying voucher XML as a plain Stock Journal — this only changes how Tally labels/reports it. Pass this voucher type's name as 'voucherType' to create_stock_journal/update_stock_journal to post against it instead of the generic 'Stock Journal' type.

Schema Changelog

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

  1. Addedv1.11.2

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the minimal annotations, the description discloses detailed behavior: the dual create/rename mode, the effect of numberingMethod, the real-world issue of blank voucher numbers if not set, the relationship of useAsManufacturingJournal to Stock Journal, and the escape hatch of extraFields. This is far more transparent than typical tool descriptions.

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?

The description is long and wraps many caveats into a single flowing paragraph, which can be a bit dense. However, every sentence delivers important operational knowledge, and the main purpose is stated upfront. It is appropriately detailed for the complexity of the operation, though slightly more structured formatting would improve readability.

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?

The description thoroughly covers the operation's semantics, edge cases, and relationships to other tools (e.g., create_stock_journal). It does not mention the return value or error behavior, but for a create/rename tool with no output schema, the focus on input-side behavior is arguably sufficient. A brief note on what it returns would make it fully complete.

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

Parameters5/5

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

Every parameter has a schema description, and the narrative adds critical nuance for many of them: numberingMethod values and consequences, oldName for renaming, parent needing to exist, extraFields as an unvalidated escape hatch, and useAsManufacturingJournal's actual impact. This exceeds what the raw schema provides.

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 clearly states the tool's primary action ('Create a new custom Voucher Type') and extends to renaming/reconfiguring existing ones, which is a distinct scope. It differentiates from sibling tools by focusing on the Voucher Type master object and references the need to check get_voucher_types for valid parents.

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 description provides explicit usage guidance: it tells the agent to check existing voucher types via get_voucher_types, explains when to pass oldName to rename vs. create, and warns about numberingMethod pitfalls. It stops short of an explicit 'use this instead of X' comparison with sibling tools, but the context is clear.

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