Deterministic MCP Engine v1.0.0·100% Free & Open Source

Up and running in ten minutes.

Turn on one setting in Tally, download the native Rust server, run tally-mcp setup, and start querying your books with Claude Desktop, Cursor, Windsurf, Gemini, or Codex.

Free & Open Source · Zero Telemetry · Local Loopback Isolation

Supported Platforms & Client Compatibility

Verified implementations across leading AI assistants, developer IDEs, and local offline models.

PlatformLocal stdio (Private)Auto-Config SupportNetwork / LAN Support
Claude Desktop✔️ stdio + .mcpb✔️ 1-Click✔️ Yes
Cursor IDE✔️ stdio✔️ 1-Click✔️ Yes
Windsurf✔️ stdio✔️ 1-Click✔️ Yes
Google Gemini / Antigravity✔️ stdioJSON snippet✔️ Yes
Codex / ChatGPT Desktop✔️ Plugins / stdioSettings menu✔️ Yes
Cline / Roo Code✔️ stdioJSON snippet✔️ Yes
Ollama & LM Studio (Air-gapped)✔️ 100% OfflineOffline profile—
Diagnostic Tooling

CLI Diagnostics & Preflight Check (tally-mcp doctor)

TallyMCP includes a built-in diagnostic engine that validates your setup in seconds before you connect your AI assistant.

Run the 5-point diagnostic check in PowerShell:

tally-mcp doctor
# Or show discovered company names:
tally-mcp doctor --show-names
[✓]Tally Reachability: Tests TCP connect to port 9000 on loopback or configured LAN IP.
[✓]Company Detection: Verifies that a company book is open and responsive to XML queries.
[✓]Write Permission & Safety: Verifies local write-ahead log (WAL) directory permissions.
[✓]Client Registration: Inspects Claude Desktop, Cursor, and Windsurf config files for valid PATH.

Installation & Connectivity Setup

Connect your accounting records to your AI assistant in 3 simple steps.

1

Turn on Tally's HTTP Connector

In TallyPrime, press F1: Help ▸ Settings ▸ Connectivity ▸ Client/Server configuration.

TallyPrime — Client/Server configuration
TallyPrime acts asBoth
Enable ODBC ServerYes
Port9000

💡 Verification: Open http://localhost:9000 in your browser. You should see “TallyPrime Server is Running”.

2

Install TallyMCP on Windows

Run the Windows MSI installer. It registers tally-mcp on your PATH and creates a Desktop shortcut for the Companion UI:

3

Run Automated Setup Wizard

Open PowerShell and run tally-mcp setup. It automatically locates your installed AI clients and injects the correct configuration:

tally-mcp setup
# Output:
# === tally-mcp Setup Wizard ===
# [✓] Claude Desktop automatically configured!
#     Config file: C:\Users\User\AppData\Roaming\Claude\claude_desktop_config.json
#     Executable:  C:\Users\User\AppData\Local\Programs\TallyMCP\tally-mcp.exe
# [✓] Desktop shortcut created

Client-by-Client Setup Guide

Detailed instructions for Claude Desktop, Cursor, Windsurf, Gemini, and Codex / ChatGPT.

Claude Desktop (Local stdio — Recommended)

100% Local & Private

Inside Claude Desktop, click File ▸ Settings (or Ctrl + ,), choose the Developer tab in the sidebar, and click Edit Config.
Direct path: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "tally": {
      "command": "tally-mcp",
      "args": ["serve"]
    }
  }
}

Cursor IDE

Add to .cursor/mcp.json in your project workspace:

{
  "mcpServers": {
    "tally": {
      "command": "tally-mcp",
      "args": ["serve"]
    }
  }
}

Windsurf IDE

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "tally": {
      "command": "tally-mcp",
      "args": ["serve"]
    }
  }
}

Google Gemini / Antigravity

Add to ~/.gemini/mcp_config.json:

{
  "mcpServers": {
    "tally": {
      "command": "tally-mcp",
      "args": ["serve"]
    }
  }
}

Codex / ChatGPT Desktop

In ChatGPT Desktop: Settings ▸ Integration ▸ Plugins ▸ Add MCP Server.

  • Name: tally
  • Command: tally-mcp
  • Arguments: serve

Complete MCP Tools Reference (12 Tools)

All tools operate with compile-time safety and deterministic validation.

Tool NameAccessDescriptionParameters
tally_statusreadGet Tally reachability, loaded companies, and circuit breaker healthnone
tally_list_companiesreadList all loaded and available companies in TallyPrimenone
tally_set_active_companysessionSet the active company for read operations in this sessioncompany
tally_list_ledgersreadList ledger accounts for a companycompany
tally_trial_balancereadExport Trial Balance report from Tallycompany, from_date, to_date
tally_day_bookreadExport Day Book transactions from Tally (deterministically formatted as JSON)company, from_date, to_date
tally_draft_voucherdraftValidate and stage a voucher draft for out-of-band approval. Writes NOTHING to Tally.company, voucher_type, date, number, party_ledger, entries, narration
tally_preview_draftreadPreview human-readable summary and exact XML envelope for a drafted voucherdraft_id
tally_commit_draftwritePost an approved voucher draft to Tally. Requires prior approval token from physical user click.draft_id
tally_discard_draftdraftDiscard a pending voucher draftdraft_id
tally_extract_documentread/aiExtract structured invoice/receipt data from a document file using configured AI provider or offline modelfile_path
tally_run_reportreadRun a named report from an active tool pack (e.g. outstanding_ageing)report_name, parameters

Real-World Conversation Recipes

Sample multi-turn prompts and deterministic workflow patterns.

Recipe 1: Account Balances & Trial BalanceRead-Only Safe

“Check our cash balance, bank account, and show the top 5 sundry debtors in Tally.”

AI invokes: tally_list_companies → tally_set_active_company → tally_list_ledgers
Recipe 2: Day Book Transactions (Structured JSON)Deterministic JSON

“Show all sales vouchers entered yesterday and calculate total GST collected.”

AI invokes: tally_day_book (returns typed voucher objects with voucher_type, amount, and ledger_entries).
Recipe 3: Drafting Vouchers (Two-Phase Commit)Human Approval Required

“Draft a payment voucher of ₹12,500 to Electricity Expense from our HDFC bank account.”

TallyMCP stages the draft locally, validates double-entry balance (Debits + Credits == 0), and emits an approval URL (http://127.0.0.1:9190/approve?token=...). The AI presents the URL to you. You review the XML preview and click Approve to post the entry into Tally.

Connecting to Tally Across Your Network (Wi-Fi or LAN)

Use TallyMCP directly on the PC/laptop where Tally is installed (localhost), or from any PC/laptop connected to the same network (including Wi-Fi or office LAN):

Pass --host and --port in your client arguments or environment variable:

{
  "mcpServers": {
    "tally": {
      "command": "tally-mcp",
      "args": ["serve", "--host", "192.168.1.50", "--port", "9000"]
    }
  }
}

Or set environment variable: TALLY_HOST=192.168.1.50. TallyMCP automatically enables LAN mode and validates connection latency.

Data Hygiene & Clean Uninstallation

TallyMCP puts you in complete control of your local logs, cache, drafts, and credentials.

CLI Cleanup Commands:

# Inspect data inventory without deleting anything:
tally-mcp cleanup --dry-run

# Clean temporary logs and cache with automatic backup:
tally-mcp cleanup --backup C:\Backups\TallyMCP

# Complete clean uninstall (removes data, PATH entries, and shortcuts):
tally-mcp uninstall

Troubleshooting Matrix

SymptomResolution
“Tally connection refused on 127.0.0.1:9000”Verify Tally is open with a company loaded. Check F1 ▸ Settings ▸ Connectivity has “Enable HTTP Server” set to Yes on port 9000. Run tally-mcp doctor to diagnose.
Empty report envelope / No recordsTallyMCP v1.0.0+ automatically catches empty report envelopes and informs your agent deterministically instead of returning blank XML tags. Ensure the active company has transactions within the requested date period.
Claude Desktop doesn't show Tally toolsFully quit Claude Desktop from the system tray icon, not just by closing the window. Then restart Claude. Run tally-mcp setup to ensure the executable path is verified.
Tally returns <LINEERROR>TallyMCP intercepts Tally line errors (e.g. unknown ledger or duplicate voucher number) and translates them into clear, formatted error messages so the AI agent can adjust its arguments.