Tally MCP
Tally MCP
Ein MCP (Model Context Protocol)-Server, der Claude direkt mit TallyPrime verbindet und dabei Tallys integriertes XML-HTTP-Gateway nutzt. Richten Sie Claude Desktop oder Claude Code auf Ihre Tally-Instanz und bitten Sie darum, Ledger zu lesen, eine Probebilanz abzurufen, ein Tagebuch zusammenzufassen oder Belege zu entwerfen (und nach Ihrer Freigabe zu buchen) – alles ohne manuellen Export/Import.
Entwickelt und als Open Source veröffentlicht von einer Chartered-Accountancy-Kanzlei in Indien, die es für ihre eigenen Mandantenbuchhaltungsabläufe nutzt. Nicht offiziell mit Tally Solutions oder Anthropic verbunden.
Was Sie damit tun können
Sobald die Verbindung steht, können Sie Claude zum Beispiel Folgendes fragen:
„Zeig mir die Probebilanz zum 31.03.2026“
„Ruf das Ledger für ABC Traders ab und fass die letzten 10 Buchungen zusammen“
„Liste alle Lagerartikel mit 18 % GST-Satz auf“
„Erstelle einen Verkaufsbeleg mit heutigem Datum: Debitor XYZ ₹1,18,000, Umsatz ₹1,00,000, Ausgangs-CGST ₹9,000, Ausgangs-SGST ₹9,000“ – Claude zeigt Ihnen zuerst eine Vorschau; in Tally wird erst dann etwas geschrieben, wenn Sie es freigeben.
⚠️ Sicherheitsmodell – vor der Verwendung lesen
Dieser Connector kann vollen Lese-/Schreibzugriff auf die jeweils in Tally geöffnete Firma haben. Es sind drei Schutzebenen eingebaut:
Trockenlauf (Dry-Run) standardmäßig. Jedes Schreib-Tool (
tally_create_voucher,tally_create_ledger,tally_create_stock_item) gibt eine Vorschau des genauen XML zurück, das gesendet würde, und tut nichts in Tally, sofern es nicht mit"confirm": trueaufgerufen wird. Die Tool-Beschreibungen weisen Claude an, Ihnen immer zuerst die Vorschau zu zeigen und Ihre Freigabe einzuholen – aber lesen Sie, was Ihnen angezeigt wird, bevor Sie freigeben; verlassen Sie sich nicht allein auf Claude als Kontrollinstanz.Firmensperre. Die
.env-Datei verlangtTALLY_COMPANY_NAME. Vor jedem Schreibvorgang prüft der Server erneut, ob genau diese Firma in Tally geöffnet ist. Falls seit dem Serverstart eine andere Firma geöffnet wurde, wird der Schreibvorgang blockiert, nicht stillschweigend umgeleitet.Audit-Protokoll. Jeder Tool-Aufruf – lesend oder schreibend, Trockenlauf oder echt – wird als JSON-Zeilen an
audit/tally-mcp-audit.logangehängt: Zeitstempel, Tool, Eingaben, gesendetes XML, Tallys Antwort und Status.
Es gibt auch einen globalen Notausschalter: Setzen Sie DRY_RUN_ONLY=true in der .env-Datei, um jedes Schreib-Tool unabhängig von confirm in den Vorschau-Modus zu zwingen – nützlich beim ersten Testen mit echten Daten.
Dies ist eine Vorlage für eine sicherheitsbewusste Integration, keine Garantie. Prüfen Sie den Code, insbesondere src/tallyClient.ts und src/tools/writeTools.ts, bevor Sie ihn auf Produktionsbuchhaltungsdaten richten.
Voraussetzungen
Node.js 18+
TallyPrime mit aktivierter ODBC/HTTP-Konnektivität (Gateway of Tally → F1 (Hilfe) → Einstellungen → Konnektivität → HTTP aktivieren, Standardport 9000)
Die Firma, mit der Sie sich verbinden möchten, muss geöffnet sein, bevor Sie den MCP-Server starten.
Einrichtung
git clone https://github.com/<your-username>/tally-mcp.git
cd tally-mcp
npm install
cp .env.example .envBearbeiten Sie .env:
TALLY_URL=http://localhost:9000
TALLY_COMPANY_NAME=<exact company name as shown in Tally>
DRY_RUN_ONLY=falseErstellen:
npm run buildPrüfen Sie per Rauchtest, dass es sauber startet:
npm start
# Expect: [tally-mcp] Connected. Tally URL: ..., Company lock: "...", DRY_RUN_ONLY: false
# Ctrl+C to stop.Mit Claude Desktop verbinden
Fügen Sie Folgendes zu Ihrer Claude Desktop MCP-Konfiguration hinzu (claude_desktop_config.json):
{
"mcpServers": {
"tally": {
"command": "node",
"args": ["/absolute/path/to/tally-mcp/dist/index.js"],
"env": {
"TALLY_URL": "http://localhost:9000",
"TALLY_COMPANY_NAME": "Your Company Name",
"DRY_RUN_ONLY": "false"
}
}
}
}Starten Sie Claude Desktop neu. Sie sollten unter den verbundenen Tools/MCP-Servern „tally“ sehen.
Mit Claude Code verbinden
claude mcp add tally -- node /absolute/path/to/tally-mcp/dist/index.jsSetzen Sie die Umgebungsvariablen über Ihre Shell, ein Wrapper-Skript oder eine .env-Datei im Arbeitsverzeichnis (wird automatisch über dotenv geladen).
Tool-Referenz
Lesen (keine Bestätigung erforderlich)
Tool | Zweck |
| In Tally geöffnete Firmen auflisten – zur Überprüfung der Konnektivität verwenden |
| Vollständiger Kontenplan mit Endsalden |
| Einzelnes Ledger-Detail + Belegverlauf |
| Alle Belege in einem Datumsbereich |
| Probebilanz zu einem Stichtag |
| Lagerliste mit Menge/Preis/HSN/GST |
Schreiben (standardmäßig Trockenlauf, erfordert "confirm": true)
Tool | Zweck |
| Verkauf / Einkauf / Zahlung / Einnahme / Journal / Contra / Gutschrift / Belastungsnote |
| Neues Ledger-Stammkonto unter einer übergeordneten Gruppe |
| Neuer Lagerartikel mit HSN- und GST-Satz |
Architektur
Claude (Desktop/Code)
│ MCP protocol (stdio)
▼
tally-mcp server (Node.js/TypeScript)
│ XML over HTTP
▼
TallyPrime (XML-HTTP gateway, default port 9000)src/
├── index.ts # MCP server entry point, tool registry
├── config.ts # .env loading + validation
├── types.ts # Shared TypeScript types
├── tallyClient.ts # HTTP transport to Tally + company-lock check
├── zodToJsonSchema.ts # Zod → MCP tool schema converter
├── xml/
│ ├── builder.ts # Builds Tally XML requests
│ └── parser.ts # Parses Tally XML responses
├── tools/
│ ├── readTools.ts # Read-only tool handlers
│ └── writeTools.ts # Write tool handlers (dry-run/confirm gate)
└── audit/
└── auditLogger.ts # Append-only JSONL audit trailBekannte Einschränkungen / Roadmap
tally_alter_voucher-Typen existieren, aber das Tool ist noch nicht angebunden – das Ändern eines vorhandenen Belegs erfordert einen zusätzlichen Schritt zum Nachschlagen der Belegnummer im XML-Schema von Tally. Pull Requests sind willkommen.Noch kein dediziertes GST-Berichtstool (GSTR-1/3B-Zusammenfassung) –
tally_get_daybook+tally_get_ledgerdecken die meisten Abstimmungsanforderungen heute ab, aber ein speziell entwickeltes GST-Zusammenfassungstool wäre eine sinnvolle Ergänzung.Zugangsdaten liegen im Klartext in
.env. Für den lokalen/Einzelbenutzer-Einsatz in Ordnung; wenn Sie dies für ein Team oder mehrere Mandanteninstanzen bereitstellen, sollten Sie stattdessen einen ordentlichen Secrets-Manager anbinden.Eine einzelne Firma pro laufende Serverinstanz – die
TALLY_COMPANY_NAME-Sperre in.envgeht von einem Serverprozess pro Tally-Firma aus. Multi-Firmen-Unterstützung (Firmenname als Parameter pro Aufruf anstelle einer.env-Sperre) ist eine sinnvolle Phase 2, falls Interesse besteht.
Beiträge zu jedem der oben genannten Punkte sind willkommen – siehe CONTRIBUTING.md.
Lizenz
MIT – siehe LICENSE. Diese Software verbindet sich mit einem Live-Buchhaltungssystem; Sie sind dafür verantwortlich, Trockenlauf-Vorschauen zu prüfen und Ihre eigene Tally-Verbindung zu sichern. Siehe SECURITY.md für betriebliche Hinweise.
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.
Related MCP Connectors
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/sameerprofessional00-ctrl/TALLY_MCP_FOR_CLAUDE'
If you have feedback or need assistance with the MCP directory API, please join our Discord server