Tally Prime
FreeNot checkedMCP server that lets Claude read, create, alter and delete TallyPrime data (vouchers, invoices, ledgers, stock items) with an automatic backup before every chan
About
MCP server that lets Claude read, create, alter and delete TallyPrime data (vouchers, invoices, ledgers, stock items) with an automatic backup before every change.
README
An MCP server that lets Claude read, add, modify and delete data in TallyPrime over Tally's XML port. It covers vouchers, item invoices, stock journals, ledgers, stock items, groups, stock groups, godowns, units and cost centres.
Before every change it backs up the company data folder to Desktop\Tally Backups.
Changing an opening balance or opening stock always asks you first.
⬇ Download the latest release (tally-prime-mcp-1.1.0.mcpb, one-click install for Claude Desktop)
⚠️ This tool writes to your books of account. Test it on a copy of your company first, keep backups switched on, and review what Claude proposes before approving deletes or opening-balance changes. Provided as-is under the MIT License.
1. Set up TallyPrime
- Open TallyPrime and load the company.
- Press F1 (Help) → Settings → Connectivity.
- TallyPrime acts as =
Server(orBoth) - Note the Port number (default is
9000).
- TallyPrime acts as =
- Keep Tally open whenever you want Claude to use it.
2. Install in Claude Desktop (easiest, nothing else needed)
- Install the Claude Desktop app and sign in.
- Download
tally-prime-mcp-1.1.0.mcpbfrom the Releases page. - Double-click it, then click Install.
- In the extension's settings:
| Setting | Default | Meaning |
|---|---|---|
| Tally host | localhost |
Host or IP of the PC running TallyPrime |
| Tally port | 9001 |
Change this to the port from step 1 (usually 9000) |
| Read-only mode | off | Blocks every write tool |
| Backup before every change | on | Copies the company data folder before each create/alter/delete |
| Backup folder | Desktop\Tally Backups |
Where backups go |
| Backups to keep per company | 30 | Older automatic backups are removed (0 = keep all; each is about the size of the company folder) |
- Start a new chat and ask: "Check Tally status". It should answer "TallyPrime Server is Running" and list your company.
3. Claude Code or another MCP client (optional)
Needs Node.js 18 or newer.
git clone https://github.com/gargcamanish-tech/tally-prime-mcp.git
cd tally-prime-mcp
npm install
Claude Code (change the path and port):
claude mcp add --scope user tally-write -e TALLY_PORT=9000 -- node "C:\path\to\tally-prime-mcp\src\index.js"
Other clients, add to their MCP config:
"tally-write": {
"command": "node",
"args": ["C:\\path\\to\\tally-prime-mcp\\src\\index.js"],
"env": { "TALLY_PORT": "9000" }
}
Environment variables: TALLY_HOST, TALLY_PORT, TALLY_COMPANY, TALLY_READONLY=true, TALLY_AUTO_BACKUP=false,
TALLY_BACKUP_DIR, TALLY_BACKUP_KEEP, TALLY_TIMEOUT_MS (default 180000).
Tools (21)
| Area | Tools |
|---|---|
| Status & backups | tally_status, backup_data, list_backups |
| Read | list_ledgers, list_stock_items, list_masters, get_master, list_voucher_types, list_vouchers, get_voucher |
| Vouchers | create_voucher (accounting, item invoice, stock journal), alter_voucher, delete_voucher |
| Ledgers | create_ledger, alter_ledger |
| Stock items | create_stock_item, alter_stock_item |
| Other masters | create_master, alter_master (group, stock group, godown, unit, cost centre), delete_master (any type) |
| Advanced | import_raw_xml |
Safety rules built in
- Backup first: each write copies the company folder (path read from Tally) to
Desktop\Tally Backups\<company> <date time> <tool>and checks every file was copied. If the backup fails, the change is not made. - Opening balance / opening stock: changing a ledger's opening balance, or a stock item's opening quantity, rate, value or godown, takes two steps.
The first call writes nothing and returns the current vs new figures; Claude must show you and get your yes. Only then is it repeated with
confirm_opening_change: true. - Deletes need
confirm: true. Every write tool also supportsdry_run: trueto preview the XML. - Alter changes only the fields you name; everything else is kept: GST and bank details, addresses, bill references.
- Read-only mode (
TALLY_READONLY=true) blocks all writes.
Restoring a backup
Close TallyPrime, then copy the numbered folder (e.g. 021047) from inside the backup over the company's data folder
(tally_status shows the path). Reopen Tally.
Examples you can ask Claude
- "Record a payment of ₹12,500 from HDFC Bank to Rent on 1 Oct 2025, narration 'October rent'."
- "Make a sales invoice to S P Enterprises: 1200 KG SUGAR-17011490-5% @ 42.05, SALES RD, CGST and SGST 2.5% each."
- "Change the quantity in invoice A908 to 1000 KG and recompute the taxes."
- "Transfer 50 KG sugar from Main Location to Godown 2 on 1 Oct 2025."
- "Change the GST rate of SUGAR-17011490-5% to 12% and the HSN to 17019990."
- "Create godown 'Shop' and stock group 'Sweeteners'; move the sugar item into it."
Good to know
- Educational (unlicensed) TallyPrime only accepts entry dates on the 1st, 2nd and 31st. Other dates fail with "Voucher date is missing".
- GST amounts are not calculated by Tally on import; pass the CGST/SGST/IGST ledger lines (Claude can compute them).
- Altering or deleting a voucher needs a voucher number that is unique on that date.
list_voucherstakes about 5 s per month of data; financial years are assumed to start in April.
Verified on TallyPrime 6.1
Tested on a live GST trading company; all test objects were removed afterwards.
test/e2e.mjs runs 36 checks through the MCP protocol, and all pass:
- ledger create, rename and partial alter (address and GSTIN kept);
- opening-balance confirmation;
- units, stock groups, godowns and groups;
- stock item create, rename, GST/HSN change and opening-stock confirmation (10 → 20);
- journal, GST item invoice with bill reference, and stock journal godown transfer: each created, altered and deleted;
- closing stock correct;
- an automatic backup before every write;
- every master type deleted, with Tally still running.
Things learned about this Tally version
- A voucher is identified by date + voucher number + type. Matching by GUID/REMOTEID silently creates a duplicate, so alter/delete refuse vouchers with no number, or with a number repeated on the same date.
- Alter must send the whole voucher, so the server fetches it, changes only what was asked, and sends it back.
- Names use
LANGUAGENAME.LIST. The older top-levelNAME.LISTrename, followed by a delete, crashed Tally (Memory Access Violation). The current method was retested several times without a crash. - Opening stock lives in the item's godown batch allocation; the item-level figures alone are ignored on alter.
Development
npm install
TALLY_PORT=9000 TALLY_BACKUP_DIR=<temp folder> npm run e2e # creates, alters and deletes test entries
npx @anthropic-ai/mcpb pack . tally-prime-mcp.mcpb
The e2e test expects ledgers named MISC, ROUND OFF, SALES RD, CGST, SGST and a voucher type SALES GST-RD
in the active company; adjust test/e2e.mjs for your own masters.
License
MIT © 2026 Manish Bansal
Install Tally Prime in Claude Desktop, Claude Code & Cursor
unyly install tally-primeInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add tally-prime -- npx -y github:gargcamanish-tech/tally-prime-mcpStep-by-step: how to install Tally Prime
FAQ
Is Tally Prime MCP free?
Yes, Tally Prime MCP is free — one-click install via Unyly at no cost.
Does Tally Prime need an API key?
No, Tally Prime runs without API keys or environment variables.
Is Tally Prime hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Tally Prime in Claude Desktop, Claude Code or Cursor?
Open Tally Prime on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Opencode Omniroute Plugin
OpenCode plugin for the OmniRoute AI Gateway. Drives dynamic model discovery, /connect auth flow, and multi-instance OmniRoute providers via the official @openc
by GitHub ActionsRoblox Studio
Enables AI coding tools to control Roblox Studio for workspace exploration, instance manipulation, and script management. It provides tools for playtesting, sce
by paralovAntigravity Drawio
MCP server that enables AI assistants to create, parse, render, and validate Draw.io diagrams programmatically.
by S-SUJAN-SFetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzMCP-Agent
A simple, composable framework to build agents using Model Context Protocol by [LastMile AI](https://www.lastmileai.dev)
by lastmile-aiSpring AI MCP Client
Provides auto-configuration for MCP client functionality in Spring Boot applications.
mcp.natoma.ai
A Hosted MCP Platform to discover, install, manage and deploy MCP servers by [Natoma Labs](https://www.natoma.ai)
Compare Tally Prime with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
