Tally MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Tally MCP ServerShow me the profit & loss statement for this month"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Tally MCP Server
A Model Context Protocol (MCP) server that lets Claude read from and write to TallyPrime via its built-in XML/HTTP gateway.
How it works
Claude Desktop <--stdio--> ┐
├─ this MCP server <--HTTP/XML--> TallyPrime (localhost:9000)
Remote MCP client <--HTTP--> ┘Locally, Claude Desktop launches this server as a stdio process. Remotely, it can also run as an HTTP server. Either way, tool calls get translated into Tally's XML request format, sent to Tally's HTTP gateway, and returned as cleaned-up JSON. There's also an optional local SQL cache (PGLite) for ad-hoc queries beyond the fixed report tools.
Prerequisites
Node.js 18+
TallyPrime installed, running, with a company open
Tally's HTTP gateway enabled:
F1 (Help) > Settings > Connectivity > Client/Server configurationand set TallyPrime acts as toBothorServer, port9000(default).
Setup
npm install
npm run buildConfigure Claude Desktop
Option A — Extension (recommended): package as a .dxt and install
with one click. See docs/EXTENSION_PACKAGING.md.
Option B — manual config: edit your Claude Desktop config file:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Add:
{
"mcpServers": {
"tally": {
"command": "node",
"args": ["D:\\Projects\\Tally-MCP-Server\\dist\\index.js"],
"env": {
"TALLY_URL": "http://localhost:9000"
}
}
}
}Restart Claude Desktop. You should see a hammer/tools icon indicating the
tally server is connected.
Available tools
17 tools total — read (ledgers, stock, groups, voucher types, cost centres,
day book, ledger vouchers, company info, P&L, balance sheet, trial balance,
stock summary, bills receivable/payable), write (create ledger, group,
stock item, voucher), and SQL cache (sync_to_sql, query_sql). Full
reference with args: docs/TOOLS.md.
Dates use DD-MM-YYYY format, matching Tally's convention.
Running remotely (HTTP)
TALLY_MCP_TOKEN=<secret> npm run start:httpDocs
docs/ARCHITECTURE.md — request flow, file responsibilities
docs/TALLY_XML_GUIDE.md — how Tally's XML gateway works, gotchas
docs/TOOLS.md — full tool reference + how to add a new tool
docs/SQL_CACHE.md — the PGLite SQL cache, schema, examples
docs/HTTP_DEPLOYMENT.md — running as a remote HTTP server
docs/EXTENSION_PACKAGING.md — packaging as a
.dxtClaude Desktop Extension
Project structure
src/
tally.ts Tally HTTP client: sends XML, handles connection/timeout errors
clean.ts Normalizes Tally's raw XML->JSON into predictable JSON
templates.ts Renders the Nunjucks XML templates in templates/
db.ts PGLite SQL cache: sync_to_sql / query_sql
tools.ts MCP tool definitions + XML request builders
server.ts Shared MCP Server construction (used by both entry points)
index.ts stdio entry point (local Claude Desktop)
http-server.ts HTTP entry point (remote clients)
templates/
*.xml.njk Nunjucks templates for each Tally XML request shape
manifest.json Claude Desktop Extension (.dxt) manifestEnvironment variables
Variable | Default | Purpose |
|
| Tally's HTTP gateway address |
|
| Port for |
| (unset) | Bearer token required on the HTTP server's |
Troubleshooting
"Could not reach TallyPrime" — Tally isn't running, or the HTTP gateway isn't enabled on port 9000.
"Tally returned an empty response" — Tally is running but no company is open.
create_ledger/create_voucherfails with errors — check that the parent group / ledger names exactly match what exists in Tally (names are case-sensitive and must match exactly).
Roadmap / not yet supported
Editing or deleting existing vouchers/ledgers/masters
Inventory vouchers (Stock Journal, Manufacturing Journal, etc.)
GST-specific reports (GSTR-1, GSTR-3B)
Multi-company support (currently always targets whichever company is open)
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/vaijaaaaa/Tally-MCP-Server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server