Tally MCP
Tally MCP
Сервер MCP (Model Context Protocol), который подключает Claude напрямую к TallyPrime через встроенный XML-HTTP-шлюз Tally. Укажите Claude Desktop или Claude Code на ваш экземпляр Tally и попросите его прочитать счета, выгрузить пробный баланс, свести дневник операций или подготовить (и после вашего одобрения провести) ваучеры — всё без ручного экспорта/импорта.
Создано и опубликовано в открытом доступе индийской фирмой дипломированных бухгалтеров, которая использует его для собственных клиентских бухгалтерских рабочих процессов. Официально не связано с Tally Solutions или Anthropic.
Что с этим можно делать
После подключения вы можете просить Claude, например:
"Покажи пробный баланс на 31-03-2026"
"Выгрузи карточку счёта ABC Traders и обобщи последние 10 операций"
"Перечисли все товарные позиции со ставкой GST 18%"
"Создай ваучер продажи от сегодняшней даты: Debtor XYZ ₹1,18,000, Sales ₹1,00,000, Output CGST ₹9,000, Output SGST ₹9,000" — сначала Claude показывает предпросмотр; ничего не записывается в Tally, пока вы не одобрите.
⚠️ Модель безопасности — прочтите перед использованием
Этот коннектор может иметь полный доступ на чтение и запись к любой компании, открытой в Tally. Встроены три уровня защиты:
По умолчанию выполняется пробный запуск (dry-run). Каждый инструмент записи (
tally_create_voucher,tally_create_ledger,tally_create_stock_item) возвращает предпросмотр точного XML, который был бы отправлен, и ничего не делает с Tally, если не вызван с"confirm": true. Описания инструментов предписывают Claude всегда сначала показывать вам предпросмотр и получать ваше одобрение — но читайте то, что он показывает, перед одобрением; не полагайтесь на Claude как на единственную контрольную точку.Блокировка компании. В
.envтребуетсяTALLY_COMPANY_NAME. Перед любой записью сервер повторно проверяет, что в Tally открыта именно эта компания. Если с момента запуска сервера была открыта другая компания, запись блокируется, а не молча перенаправляется.Журнал аудита. Каждый вызов инструмента — чтение или запись, пробный или реальный — добавляется в
audit/tally-mcp-audit.logв виде JSON Lines: временная метка, инструмент, входные данные, отправленный XML, ответ Tally и статус.
Также есть глобальный аварийный выключатель: установите DRY_RUN_ONLY=true в .env, чтобы принудительно перевести каждый инструмент записи в режим только предпросмотра независимо от confirm — полезно при первом тестировании на реальных данных.
Это шаблон безопасной интеграции, а не гарантия. Изучите код, особенно src/tallyClient.ts и src/tools/writeTools.ts, прежде чем использовать его с производственными бухгалтерскими данными.
Предварительные требования
Node.js 18+
TallyPrime с включённым подключением ODBC/HTTP (Gateway of Tally → F1 (Help) → Settings → Connectivity → включите HTTP, порт по умолчанию 9000)
Компания, к которой вы хотите подключиться, должна быть открыта в Tally до запуска MCP-сервера
Настройка
git clone https://github.com/<your-username>/tally-mcp.git
cd tally-mcp
npm install
cp .env.example .envОтредактируйте .env:
TALLY_URL=http://localhost:9000
TALLY_COMPANY_NAME=<exact company name as shown in Tally>
DRY_RUN_ONLY=falseСоберите:
npm run buildВыполните смоук-тест — убедитесь, что сервер запускается без ошибок:
npm start
# Expect: [tally-mcp] Connected. Tally URL: ..., Company lock: "...", DRY_RUN_ONLY: false
# Ctrl+C to stop.Подключение к Claude Desktop
Добавьте в конфигурацию MCP Claude Desktop (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"
}
}
}
}Перезапустите Claude Desktop. Вы должны увидеть «tally» в списке подключённых инструментов/MCP-серверов.
Подключение к Claude Code
claude mcp add tally -- node /absolute/path/to/tally-mcp/dist/index.jsЗадайте переменные окружения через ваш shell, скрипт-обёртку или .env в рабочем каталоге (загружается автоматически через dotenv).
Справка по инструментам
Чтение (подтверждение не требуется)
Инструмент | Назначение |
| Перечисляет компании, открытые в Tally — используйте для проверки подключения |
| Полный план счетов с исходящими остатками |
| Детализация отдельного счёта + история ваучеров |
| Все ваучеры за диапазон дат |
| Пробный баланс на дату |
| Список товарных позиций с количеством/ценой/HSN/GST |
Запись (по умолчанию пробный запуск, требуется "confirm": true)
Инструмент | Назначение |
| Продажа / Закупка / Оплата / Поступление / Журнал / Контра / Кредит-нота / Дебет-нота |
| Новый мастер-счёт в родительской группе |
| Новая товарная позиция с HSN и ставкой GST |
Архитектура
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 trailИзвестные ограничения / дорожная карта
Типы
tally_alter_voucherсуществуют, но инструмент ещё не подключён — изменение существующего ваучера требует дополнительного шага поиска по номеру ваучера в XML-схеме Tally. PR приветствуются.Отсутствует отдельный инструмент для отчётов по GST (сводка GSTR-1/3B) —
tally_get_daybook+tally_get_ledgerсейчас покрывают большинство потребностей в сверке, но специализированный инструмент для сводки по GST был бы хорошим дополнением.Учётные данные хранятся в обычном
.env. Это нормально для локального/однопользовательского использования; если вы разворачиваете это для команды или нескольких клиентских инстансов, рассмотрите вместо этого подключение полноценного менеджера секретов.Одна компания на работающий экземпляр сервера — блокировка
TALLY_COMPANY_NAMEв.envпредполагает один серверный процесс на компанию Tally. Поддержка нескольких компаний (название компании как параметр каждого вызова вместо блокировки.env) — разумный этап 2, если будет интерес.
Вклад по любому из перечисленных пунктов приветствуется — см. CONTRIBUTING.md.
Лицензия
MIT — см. LICENSE. Это программное обеспечение подключается к работающей бухгалтерской системе; вы несёте ответственность за проверку предпросмотров в режиме dry-run и за защиту собственного подключения к Tally. Операционные рекомендации см. в SECURITY.md.
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