会计操作AI工具服务器

TallyPrime MCP服务器将TallyPrime会计操作暴露为AI工具,适用于Claude、Cursor等MCP兼容AI客户端。

  • by santoshhr76-del
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 santoshhr76-del/TallyMCPServer

使用说明

TallyPrime MCP服务器

A. 模型上下文协议(MCP)服务器 这将TallyPrime会计操作暴露为人工智能工具。适用于Claude、Cursor和任何兼容MCP的AI客户端。


特性

类别 工具
公司 get_active_company
账簿和组 get_all_ledgers, get_ledger, create_ledger, get_all_groups
代金券 get_vouchers, create_sales_voucher, create_purchase_voucher, create_payment_voucher, create_receipt_voucher, create_journal_voucher
报告 get_trial_balance, get_balance_sheet, get_profit_loss, get_stock_summary, get_daybook, get_outstanding_receivables

建筑

┌─────────────────────┐        HTTP/SSE (MCP)       ┌────────────────────────┐
│   AI Client         │ ◄────────────────────────── │  Cloud MCP Server       │
│ (Claude / Cursor)   │                              │  (this repo)            │
└─────────────────────┘                              └───────────┬────────────┘
                                                                 │  XML HTTP
                                                        ┌────────▼────────────┐
                                                        │  TallyPrime          │
                                                        │  Gateway Server      │
                                                        │  (port 9000)         │
                                                        └─────────────────────┘

主要挑战: TallyPrime在本地Windows计算机上运行,但MCP服务器在云中。 您需要将TallyPrime的9000端口安全地暴露在互联网上。看 将Tally连接到云端.


快速开始

1.安装

git clone https://github.com/yourname/tallyprime-mcp
cd tallyprime-mcp
pip install -e .

2.配置

cp .env.example .env
# Edit .env — set TALLY_URL, MCP_API_KEY

3.本地运行(Claude Desktop的stdio模式)

tallyprime-mcp

4.作为HTTP/SSE服务器运行(云模式)

tallyprime-mcp-http
# or:
python -m tallyprime_mcp.server_http

服务器启动时间 http://0.0.0.0:8000

  • GET /health → 健康检查
  • GET /sse → MCP SSE流(客户端在此处连接)
  • POST /messages → MCP消息端点

🐳 Docker(推荐用于云)

# Build
docker build -t tallyprime-mcp .

# Run
docker run -d \
  -p 8000:8000 \
  -e TALLY_URL=https://tally.yourdomain.com \
  -e MCP_API_KEY=your-strong-secret \
  tallyprime-mcp

☁️ 云部署

铁路(最便捷)

  1. 将此仓库推送到GitHub
  2. 首选 railway应用程序 → 新项目→ 从GitHub部署
  3. 添加环境变量:
    • TALLY_URL → 您的理货隧道URL
    • MCP_API_KEY → 强随机秘密
  4. Railway自动检测Dockerfile并进行部署

渲染

  1. New → Web服务→ 连接GitHub仓库
  2. 运行时:Docker
  3. 添加与上述相同的env变量
  4. 部署

AWS/GCP/Azure

将Dockerfile与ECS、Cloud Run或App Service一起使用。在云的秘密管理器中设置环境变量。


🔌 将Tally连接到云端

TallyPrime的网关服务器正在监听 localhost:9000 默认情况下。要让您的云MCP服务器访问它,您需要安全地暴露该端口。

选项A:Cloudflare隧道(推荐-免费)

  1. 安装 云耀 在运行Tally的Windows计算机上
  2. 运行:
    cloudflared tunnel --url http://localhost:9000
    
  3. 你会得到一个类似的URL https://random-name.trycloudflare.com
  4. 集 TALLY_URL=https://random-name.trycloudflare.com 在您的云服务器上

对于永久URL,请使用您自己的域设置一个命名隧道。

选项B:ngrok

ngrok http 9000

使用提供的HTTPS URL TALLY_URL.

选项C:VPN/静态IP

如果您的办公室有静态IP或VPN,请在防火墙中打开端口9000并设置:

TALLY_URL=http://YOUR.OFFICE.IP:9000

TallyPrime网关设置

在TallyPrime,请访问 F12 → 高级配置 并确保:

  • 启用ODBC服务器:是的
  • 港口: 9000
  • 启用:远程(如果你想在没有隧道的情况下访问云)

连接AI客户端

克劳德桌面(本地stdio模式)

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "tallyprime": {
      "command": "tallyprime-mcp",
      "env": {
        "TALLY_URL": "http://localhost:9000"
      }
    }
  }
}

克劳德/任何MCP客户端(云SSE模式)

{
  "mcpServers": {
    "tallyprime": {
      "url": "https://your-cloud-server.railway.app/sse",
      "headers": {
        "Authorization": "Bearer your-strong-secret"
      }
    }
  }
}

环境变量

变量 默认值 描述
TALLY_URL http://localhost:9000 TallyPrime网关URL
TALLY_TIMEOUT 30 HTTP超时(秒)
MCP_HOST 0.0.0.0 服务器绑定主机
MCP_PORT 8000 服务器绑定端口
MCP_API_KEY (空) 身份验证的承载令牌(留空禁用)

工具参考

日期格式

所有日期均使用 YYYYMMDD --例如,2024年4月1日= "20240401"

示例:创建销售发票

Tool: create_sales_voucher
Args:
  date: "20250201"
  party_ledger: "ABC Traders"
  sales_ledger: "Sales Accounts"
  amount: 50000
  tax_ledger: "GST @ 18%"
  tax_amount: 9000
  narration: "Invoice #INV-001 for consulting services"

示例:获取2024-25财年的损益表

Tool: get_profit_loss
Args:
  from_date: "20240401"
  to_date: "20250331"

示例:获取截至今天的未偿应收账款

Tool: get_outstanding_receivables
Args: {}

示例:获取截至特定日期的未偿应收账款

Tool: get_outstanding_receivables
Args:
  as_of_date: "31-03-2026"

示例:为特定客户获取未偿应收账款

Tool: get_outstanding_receivables
Args:
  as_of_date: "16-03-2026"
  party_name: "Acme"

响应结构:

{
  "as_of_date": "20260316",
  "total_outstanding": 1500000.00,
  "party_count": 12,
  "party_summary": [
    { "party": "Acme Traders Pvt Ltd", "outstanding": 500000.00 },
    ...
  ],
  "aging_summary": {
    "current_not_due":  300000.00,
    "overdue_1_30":     200000.00,
    "overdue_31_60":    150000.00,
    "overdue_61_90":    100000.00,
    "overdue_above_90": 750000.00
  },
  "bills": [
    {
      "party":       "Acme Traders Pvt Ltd",
      "bill_ref":    "INV-2025-0042",
      "bill_date":   "20250901",
      "due_date":    "20251001",
      "outstanding": 500000.00
    },
    ...
  ],
  "bill_count": 35
}

需求

  • Python 3.11+
  • 启用网关服务器的TallyPrime 3.x或更高版本
  • mcp, httpx, uvicorn, starlette (自动安装)

许可证

麻省理工学院