Skip to main content
Glama
vaijaaaaa

Tally MCP Server

by vaijaaaaa

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 configuration and set TallyPrime acts as to Both or Server, port 9000 (default).

Setup

npm install
npm run build

Configure 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.json

  • macOS: ~/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:http

See docs/HTTP_DEPLOYMENT.md.

Docs

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) manifest

Environment variables

Variable

Default

Purpose

TALLY_URL

http://localhost:9000

Tally's HTTP gateway address

PORT

3939

Port for npm run start:http

TALLY_MCP_TOKEN

(unset)

Bearer token required on the HTTP server's /mcp endpoint if set

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_voucher fails 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)

-
license - not tested
-
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
2Releases (12mo)
Commit activity

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

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