关于 tally-mcp-server
面向使用 Tally Prime 的会计与业务团队的 MCP 服务,将 ERP 数据和操作提供给 LLM 客户端。它包含财务报表、账目与库存查询,并支持本地连接和云端部署。
主要功能
- 01读取 Tally Prime ERP 数据
- 02提供财务报表与账目查询
- 03查询库存、未结账单和主数据
- 04支持按公司与日期筛选
- 05提供本地和云端部署方式
适用场景
- 01通过 LLM 查询试算平衡表和损益
- 02查看指定期间的资产负债表
- 03分析库存余额与商品流水
- 04核对应收应付未结账单
MCP 相关
作为 MCP 服务向客户端公开 Tally Prime 数据查询及部分账目维护工具。可在本地由客户端启动,也可部署为连接 Tally 的 Web 服务。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Tally Prime MCP 服务
Tally Prime MCP(Model Context Protocol)服务实现,可将 Tally Prime ERP 数据提供给支持 MCP 客户端的主流大模型,例如 Claude、ChatGPT。此 MCP 服务可将 Tally 的功能直接开放给大模型。
前提条件
- Tally Prime(Silver / Gold)
- Node JS
请确保已预先安装并完成以下设置:
- 请从官方网站下载并安装 Node JS
- 必须启用 Tally Prime 的 XML Port(F1 > Settings > Connectivity > Client/Server configuration),并采用以下设置
TallyPrime acts as = Server
Port = 9000
注意:请避免使用 Tally Prime 教育版,因为该版本存在日期范围限制。这会导致提供给大模型的数据无效或不完整,进而使回复质量大幅下降且不准确。
下载
请勿直接克隆仓库。可通过以下链接下载实用程序(含所需依赖项)
https://excelkida.com/resource/tally-mcp-server-v7.12.zip
适用于 Claude Desktop 的一键安装器扩展
https://excelkida.com/resource/tally-mcp-server-v7.12.mcpb
上次更新:版本 7.12 [25-Oct-2026]
详情请参阅 docs/CHANGELOG.md
联系方式
项目开发与维护者:
Dhananjay Gokhale
(特许会计师)
电子邮件:[email protected]
Whatsapp:(+91) 90284-63366
支持的平台
已在以下 AI 平台上测试此实现
| 平台 | 本地 | 远程 |
|---|---|---|
| Claude AI | :heavy_check_mark: | :heavy_check_mark: |
| ChatGPT | :heavy_check_mark: | :heavy_check_mark: |
| Grok | :heavy_check_mark: | |
| Mistral | :heavy_check_mark: | |
| LM Studio | :heavy_check_mark: |
设置(本地)
当 MCP 客户端(如 Claude Desktop、Perplexity 等)和 Tally Prime 都在本地电脑上时,请使用此设置模式。在这种情况下,MCP 客户端软件本身会在内部运行 MCP 服务。
只需下载并解压 ZIP 文件到磁盘上的某个位置。假设我们已将 ZIP 文件下载并解压到以下路径(文件夹)
D:\Software\Tally MCP Server
以下演示了几种常用工具的示例设置。
Claude Desktop
Claude AI 桌面版支持加载本地 MCP 服务。请确保订阅 Claude Pro / Team / Max / Enterprise,这些订阅相比 Free 支持更高的使用限额。MCP 会多次调用 Tally 进行验证和推理,可能很快耗尽免费版限额。请通过以下链接下载 Claude Desktop claude.ai/download
一键安装(通过扩展)
前往菜单 > File > Settings
Extensions > Advance Settings
点击安装扩展按钮
浏览并选择开始时下载的扩展文件(文件扩展名为 mcpb)
将出现一个对话框,询问 Do you want to install Tally Prime?,点击 Install 按钮即可安装 Tally MCP 服务
通过配置文件安装(通过 Developer 菜单)
转到菜单 > File > Settings > Developer
这将打开 My Computer 窗口。右键单击并通过 Notepad 编辑 claude_desktop_config.json 文件,内容如下:
{
"mcpServers": {
"Tally Prime": {
"command": "node",
"args": ["D:\\Software\\Tally MCP Server\\dist\\index.mjs"]
}
}
}
注意:文件夹路径中的单斜杠需要替换为双斜杠
保存文件。关闭 Claude Desktop(菜单 > File > Exit),然后重新启动。
点击 Tools 按钮,检查列表中是否显示 Tally Prime(如下方截图所示)。
ChatGPT Desktop
从 Microsoft Store 下载并安装 ChatGPT Desktop,然后登录。
转到 Edit > Settings
导航至 Integration > Plugins。点击 Add 按钮,然后选择 Add MCP Server
在 MCP 设置页面中输入/应用以下选项或值
Name = Tally Prime(或任意其他值)
Command to launch = node
Arguments = D:\Software\Tally MCP Server\dist\index.mjs(或其他路径)
点击 Save 按钮
关闭并重新打开 ChatGPT Desktop 应用
设置(云端)
当使用基于浏览器的 MCP 客户端(如 ChatGPT、Claude AI、Copilot),或使用无法访问本地 PC 上运行的 Tally Prime 的大模型移动应用时,应使用此设置模式。在这种情况下,MCP 服务需要作为 Web 服务运行,并在内部安全地连接到 Tally。设置过程较为复杂,项目的 docs 文件夹中对此有详细说明。
- 基于 Linux 的服务器
- Windows Server(正在探索中)
可用工具
此服务目前提供 20 个 MCP 工具。
metadata-collection
返回受支持集合的元数据。
输入 无需输入。
输出 JSON 对象数组,包含:
collectiondescription
query-option-values
返回输入字段使用的预定义选项值。
输入
| 参数 | 说明 |
|---|---|
| optionName | 支持的值:country-state |
输出 所选选项名称对应的 JSON 选项值数组。
metadata-fields
返回所选集合的字段元数据。
输入
| 参数 | 说明 |
|---|---|
| collection | 集合名称。使用 metadata-collection 查找有效值 |
输出
JSON 字段元数据数组,包含字段名称、说明(如有)和规范化数据类型(string、number、date、boolean)。
query-database
对报告工具先前创建的内存 pglite 表运行 SQL 查询。
输入
| 参数 | 说明 |
|---|---|
| sql | 仅限 SELECT 查询 |
| outputFormat | 以下格式之一:JSON Array of Objects、JSON with Schema and Rows、CSV、Markdown Table。默认格式为 JSON Array of Objects,推荐使用 |
输出 以制表符分隔的文本格式返回查询结果。
query-collection
查询 Tally 集合中所选字段,并将输出缓存到内存表中。
输入
| 参数 | 说明 |
|---|---|
| collection | 集合名称 |
| fields | 要获取的字段名称数组 |
| targetCompany(可选) | 公司名称(默认为当前活动公司) |
| fromDate(可选) | 日期,格式为 YYYY-MM-DD |
| toDate(可选) | 日期,格式为 YYYY-MM-DD |
输出
JSON:{ "tableID": "..." }
list-master
获取用于验证和自动补全的主数据列表。
输入
| 参数 | 说明 |
|---|---|
| targetCompany(可选) | 公司名称(默认为当前公司) |
| collection | 以下选项之一:group、ledger、vouchertype、unit、godown、stockgroup、stockitem、costcategory、costcentre、attendancetype、company、currency、gstin、gstclassification |
| containsFilter(可选) | 应用 CONTAINS 操作以限制值的筛选条件 |
输出
JSON:{ "list": [ ... ] }
chart-of-accounts
提取会计科目表(或组层级),用于编制资产负债表、损益表和试算平衡表。
输入
| 参数 | 说明 |
|---|---|
| targetCompany(可选) | 公司名称(默认为当前公司) |
输出
JSON:{ "tableID": "..." },包含以下列:
ledger_namegroup_nameprimary_groupbs_pl(布尔值)[true = 损益 / false = 资产负债表]dr_cr(布尔值)[true = 借方 / false = 贷方]affects_gross_profit(布尔值)[true = 影响毛利 / false = 不影响毛利]sort_position(数字)
trial-balance
获取指定期间的试算平衡表。
输入
| 参数 | 说明 |
|---|---|
| targetCompany(可选) | 公司名称(默认为当前公司) |
| fromDate | 日期,格式为 YYYY-MM-DD |
| toDate | 日期,格式为 YYYY-MM-DD |
| group_name(可选) | 按组名称筛选 |
输出
JSON:{ "tableID": "..." },包含以下列:
ledger_namegroup_nameopening_balance(数字)[负数 = 借方 / 正数 = 贷方]net_debitnet_creditclosing_balance(数字)[负数 = 借方 / 正数 = 贷方]
profit-loss
获取指定期间的损益数据。
输入
| 参数 | 说明 |
|---|---|
| targetCompany(可选) | 公司名称(默认为当前公司) |
| fromDate | 日期,格式为 YYYY-MM-DD |
| toDate | 日期,格式为 YYYY-MM-DD |
输出
JSON:{ "tableID": "..." },包含以下列:
ledger_namegroup_nameclosing_balance(数字)[负数 = 借方 / 正数 = 贷方]
balance-sheet
获取指定期间的资产负债表数据。
输入
| 参数 | 说明 |
|---|---|
| targetCompany(可选) | 公司名称(默认为当前公司) |
| fromDate | 日期,格式为 YYYY-MM-DD |
| toDate | 日期,格式为 YYYY-MM-DD |
输出
JSON:{ "tableID": "..." },包含以下列:
ledger_namegroup_nameclosing_balance(数字)[负数 = 借方 / 正数 = 贷方]
stock-summary
获取指定期间的库存项目汇总。
输入
| 参数 | 说明 |
|---|---|
| targetCompany(可选) | 公司名称(默认为当前公司) |
| fromDate | 日期,格式为 YYYY-MM-DD |
| toDate | 日期,格式为 YYYY-MM-DD |
| stockGroup(可选) | 按库存组名称筛选 |
输出
JSON:{ "tableID": "..." },包含以下列:
stock_item_namestock_group_nameopening_quantity(数字)opening_value(数字)[负数 = 借方 / 正数 = 贷方]inward_quantity(数字)inward_value(数字)outward_quantity(数字)outward_value(数字)closing_quantity(数字)closing_value(数字)[负数 = 借方 / 正数 = 贷方]
ledger-balance
返回截至指定日期的分类账期末余额。
输入
| 参数 | 说明 |
|---|---|
| targetCompany(可选) | 公司名称(默认为当前公司) |
| ledgerName | 准确的分类账名称 |
| toDate | 日期,格式为 YYYY-MM-DD |
输出
JSON:{ "amount": number },其中负数表示借方,正数表示贷方。
stock-item-balance
返回截至指定日期的库存项目期末数量。
输入
| 参数 | 说明 |
|---|---|
| targetCompany(可选) | 公司名称(默认为当前公司) |
| itemName | 准确的库存项目名称 |
| toDate | 日期,格式为 YYYY-MM-DD |
输出
找到项目时返回 JSON:{ "quantity": number, "unit_of_measurement": string }。
bills-outstanding
获取截至指定日期的应收/应付账单明细未结金额。
输入
| 参数 | 说明 |
|---|---|
| targetCompany(可选) | 公司名称(默认为当前活动公司) |
| nature | receivable 或 payable |
| toDate | 日期,格式为 YYYY-MM-DD |
输出
JSON:{ "tableID": "..." },包含以下列:
bill_datereference_numberoutstanding_amountparty_nameoverdue_days
ledger-account
获取指定期间的分类账账户报表。
输入
| 参数 | 说明 |
|---|---|
| targetCompany(可选) | 公司名称(默认为当前活动公司) |
| ledgerName | 分类账名称 |
| fromDate | 日期,格式为 YYYY-MM-DD |
| toDate | 日期,格式为 YYYY-MM-DD |
输出
JSON:{ "tableID": "..." },包含以下列:
guiddatevoucher_typevoucher_numberalternate_ledgerparty_nameamount(数字)[负数 = 借方 / 正数 = 贷方]narration
stock-item-account
获取指定期间的库存项目账户报表。
输入
| 参数 | 说明 |
|---|---|
| targetCompany(可选) | 公司名称(默认为当前活动公司) |
| itemName | 库存项目名称 |
| fromDate | 日期,格式为 YYYY-MM-DD |
| toDate | 日期,格式为 YYYY-MM-DD |
输出
JSON:{ "tableID": "..." },包含以下列:
datevoucher_typevoucher_numberparty_ledgerquantityamount(数字)[负数 = 借方 / 正数 = 贷方]narrationtracking_numbervoucher_category
ledger-create-update
创建或更新一个或多个分类账。
注意:此工具可以修改现有分类账。使用此工具前,请务必备份公司数据。
输入
| 参数 | 说明 |
|---|---|
| targetCompany(可选) | 公司名称(默认为当前活动公司) |
| masters | 要创建/更新的分类账主数据对象数组 |
分类账主数据对象接受以下属性
| 属性 | 说明 |
|---|---|
| name | 分类账名称;更新时为新分类账名称 |
| _name | 现有分类账名称 |
| parent | 分类账所属的组 |
| openingBalance | (可选)分类账的期初余额 |
| isBillWise | (可选)设置是否按单据逐笔关联的标记 |
| billCreditPeriod | (可选)账单的信用期(天) |
| mailingDetails | (可选)邮寄用途的企业名称、国家、州、邮政编码和地址 |
| gstRegistrationDetails | (可选)GST 注册详情,如 GST 编号、注册类型、供应地(州) |
输出 导入操作返回的 JSON 结果(成功/失败详情)。
delete-master
从 Tally 删除一个或多个主数据项
输入
| 参数 | 说明 |
|---|---|
| targetCompany(可选) | 公司名称(默认为当前活动公司) |
| collection | 要删除的主数据类型或集合。可选项:group、ledger、vouchertype、unit、godown、stockgroup、stockitem、costcategory、costcentre、attendancetype、company、currency、gstin、gstclassification |
| name | 要删除的主数据项名称数组 |
输出 删除操作返回的 JSON 结果(已删除、已跳过等数量)。
voucher-journal
在 Tally 中创建一个或多个日记账凭证。
输入
| 参数 | 说明 |
|---|---|
| targetCompany(可选) | 公司名称(默认为当前活动公司) |
| vouchers | 要创建的日记账凭证对象数组 |
凭证对象接受以下属性
| 属性 | 说明 |
|---|---|
| isoptional | (可选)设为 true 以创建可选凭证 |
| date | 凭证日期,格式为 YYYY-MM-DD |
| voucherType | (可选)凭证类型(默认为 Journal,且必须属于 Journal 上级类别) |
| voucherNumber | (可选)凭证编号 |
| narration | (可选)摘要文本 |
| accountingEntry | 会计分录数组(至少 2 行,且金额合计必须为零) |
会计分录对象接受以下属性
| 属性 | 说明 |
|---|---|
| ledgerName | 分类账名称 |
| amount | 该行金额(正数 = 贷方 / 负数 = 借方) |
输出 导入操作返回的 JSON 结果(成功/失败详情)。
set-company
在 Tally Prime 中设置当前公司上下文。
输入
| 参数 | 说明 |
|---|---|
| companyName | 要激活的公司名称 |
输出
成功时返回 JSON 字符串:"OK"。
set-period
在 Tally Prime 中设置当前报告期间上下文。
输入
| 参数 | 说明 |
|---|---|
| fromDate | 开始日期,格式为 YYYY-MM-DD |
| toDate | 结束日期,格式为 YYYY-MM-DD |
输出
成功时返回 JSON 字符串:"OK"。
环境变量
最终用户可以自行硬编码需要应用的少量设置
| 变量 | 说明 |
|---|---|
| TALLY_PORT | Tally XML 服务器的端口号(可选,默认值为 9000) |
| TALLY_HOST | 运行 XML 服务器的主机名或 IP(可选,默认值为 localhost) |
| BLOCK_WRITE | 控制 MCP 是否完全禁止访问写入功能。将此标志设为 1,即可从工具列表中完全隐藏写入功能工具。[ 0 = 允许,1 = 禁止 ](可选,默认值为 0,即允许)。不适用于 Claude Desktop(因为它提供了用于禁用写入功能的图形开关) |
| PORT | Tally MCP 服务的端口号。仅适用于将 Tally Prime MCP 服务部署为远程 MCP 服务的情况(可选,默认值为 3000)。不适用于 Claude Desktop |
| MCP_DOMAIN | Tally MCP 服务网站的域名(可选,默认值为 https://localhost:9000)。不适用于 Claude Desktop |
| PASSWORD | 用于验证真实用户身份的 OAuth 登录前端页面密码(请设置为复杂密码,默认值为 password)。不适用于 Claude Desktop |
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。