TallyPrime MCP服务器

TallyPrime MCP服务器是一个生产级的模型上下文协议(MCP)服务器,使AI模型能够完全控制TallyPrime ERP,覆盖169+工具的功能模块。

  • by anshveerturna
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 anshveerturna/tally-mcp

使用说明

TallyPrime MCP服务器

A生产级 模型上下文协议(MCP) 服务器,为AI模型提供完整的本地控制 TallyPrime ERP --涵盖169+个工具的每个功能模块。

建筑

                    ┌─ Stdio Transport (Claude Desktop / CLI)
AI Model ──► MCP ──┤
                    └─ StreamableHTTP (port 4000, remote clients)
                          │
                          ▼
                    TallyPrime XML Server (port 9000)
                          │
                    ├─ UTF-16LE encoded communication
                    ├─ Serial request queue (single-threaded safety)
                    ├─ Standard XML Export (Method A)
                    ├─ Inline TDL Queries (Method B)
                    ├─ XML Import (Method C)
                    ├─ TDL Actions (Method D)
                    └─ Object Export (Method E)

三层系统

层 目的 示例
标准XML API CRUD操作,报告导出 创建分类账,获取试算表
内联TDL查询 以编程方式构建的复杂过滤查询 “马哈拉施特拉邦余额>1L的所有债务人”
持久TDL文件 Tally启动时加载预构建集合 MCP Ledgers, MCP StockItems, MCP FinancialSnapshot

快速开始

先决条件

  • TallyPrime 在启用XML服务器的情况下运行(端口9000)
  • Node.js 20+

设置

# Clone & install
cd tally-mcp-server
npm install

# Configure
cp .env.example .env
# Edit .env with your Tally settings

# Run in development (HTTP mode)
npm run dev

# Run in Stdio mode (for Claude Desktop)
npm run dev:stdio

# Build & run production
npm run build
npm start          # HTTP mode
npm run start:stdio  # Stdio mode

码头工人

docker compose up -d

运输方式

Stdio(适用于克劳德桌面/CLI)

添加到您的Claude桌面配置(claude_desktop_config.json):

{
  "mcpServers": {
    "tally": {
      "command": "node",
      "args": ["/path/to/tally-mcp-server/dist/index.js", "--stdio"]
    }
  }
}

或者设置环境变量:

MCP_TRANSPORT=stdio node dist/index.js

StreamableHTTP(用于远程/web客户端)

{
  "mcpServers": {
    "tally": {
      "url": "http://localhost:4000/mcp",
      "transport": "streamable-http"
    }
  }
}

配置

变量 默认值 描述
TALLY_HOST localhost TallyPrime主机名
TALLY_PORT 9000 TallyPrime XML服务器端口
TALLY_TIMEOUT_MS 30000 请求超时(毫秒)
TALLY_COMPANY (自动) 强制特定公司(可选)
MCP_SERVER_PORT 4000 HTTP传输端口
MCP_TRANSPORT http 运输方式: stdio 或 http
MASTER_CACHE_TTL_MS 300000 主缓存TTL(5分钟)
LOG_LEVEL info Winston日志级别

工具模块(169+个工具)

# 模块 工具 说明
1 大师 28 账簿、组、库存项目、单位、仓库、成本中心、货币
2 代金券 16 销售、采购、收据、付款、日记账、对账单、贷记/借记单
3 订单 10 销售/采购订单、交货/收货单、拒收
4 财务报告 15 试算表、损益表、资产负债表、现金流、日记账、比率分析
5 库存报告 10 库存汇总、变动、批次、到期、重新订购、估值
6 杰出的 8 应收账款、应付账款、账龄分析、账单、逾期
7 商品及服务税 18 GSTR-1/2A/2B/3B、HSN、电子发票、电子路单、ITC、对账
8 TDS/TCS 12 计算,表格26Q/27Q/16,challans,PAN验证
9 工资单 20 员工、薪酬负责人、薪酬结构、工资单、PF/ESI/酬金
10 制造 14 物料清单、生产、消耗、作业成本、产量分析
11 银行业 10 银行对账、支票登记簿、PDC、现金状况
12 预算 8 预算CRUD、差异、利用率、场景报告
13 安全 8 用户、审计跟踪、更改/删除凭证日志、异常
14 公司 8 公司信息、连接测试、缓存刷新、功能状态
15 批量操作 12 批量创建/更新/删除母版和凭证
16 TDL查询引擎 12 自定义查询、内联TDL、函数、原始XML、搜索、引用

主要技术特点

  • UTF-16LE编码 --Tally的XML服务器的正确线路编码(支持印度语言:印地语、泰米尔语等)
  • 串行请求队列 --所有请求都被序列化,以保护Tally的单线程XML服务器免受并发请求崩溃的影响
  • 异常/线性错误/状态检测 --全面的错误检测,涵盖所有理货错误响应格式
  • 带TTL的主机名缓存 --快速查找分类账/股票/组名,无需点击Tally
  • 持久TDL文件 --Tally启动时加载预构建的优化集合
  • 计数值解析器 --正确解析Tally的日期、金额、数量、费率和布尔格式
  • 输入验证 --带有GSTIN/PAN/日期格式验证器的Zod模式
  • 结构化日志记录 --具有可配置级别的Winston记录器

持久TDL文件

安装 tdl/tally-mcp.tdl 在TallyPrime TDL文件夹中,用于优化预构建集合:

收藏 目录
MCP Ledgers 所有具有关键财务字段的分类账
MCP StockItems 所有带有库存字段的库存项目
MCP Groups 所有帐户组
MCP Vouchers 所有凭证(通过SV筛选的日期)
MCP Debtors 有余额的杂项债务人
MCP Creditors 有余额的杂项债权人
MCP BankAccounts 有余额的银行账户
MCP CostCentres 成本中心
MCP Employees 所有员工详细信息
MCP CashBankSummary 现金+银行头寸
MCP FinancialSnapshot 快速财务摘要功能

API端点(仅限HTTP模式)

端点 方法 描述
/mcp POST MCP流式HTTP传输
/mcp GET SSE流(基于会话)
/mcp DELETE 关闭会话
/health GET 健康检查+缓存统计信息

项目结构

tally-mcp-server/
├── src/
│   ├── index.ts              # Entry point (Stdio + HTTP)
│   ├── server.ts             # MCP server factory
│   ├── tally/
│   │   ├── client.ts         # HTTP client (UTF-16LE, serial queue)
│   │   ├── xml-builder.ts    # XML request builders
│   │   ├── xml-parser.ts     # XML response parser + value helpers
│   │   ├── tdl-builder.ts    # Inline TDL builder
│   │   └── state.ts          # Master cache with TTL
│   ├── tools/                # 16 tool modules (169+ tools)
│   └── utils/
│       ├── logger.ts         # Winston logger
│       ├── validators.ts     # GSTIN/PAN/date validators
│       ├── date-utils.ts     # Date utilities
│       └── helpers.ts        # Shared result/error helpers
├── tdl/
│   └── tally-mcp.tdl        # Persistent TDL file
├── package.json
└── tsconfig.json

许可证

麻省理工学院