Tally MCP server
Ask an AI assistant about your books. The server speaks the Model Context Protocol, so Claude, Cursor and other MCP clients can read balances, statements, the trial balance, outstanding bills, the day book and stock of the companies you synced, in a conversation.
Endpoint https://acc.ejiapi.com/mcp (Streamable HTTP). It uses your own accounting key (acc_…), the same one as the REST API, so the assistant sees exactly the companies your key may read and nothing else. Finance keys do not work here; the finance MCP server is at fin.ejiapi.com/mcp-server.
Connect
claude mcp add --transport http eji-tally https://acc.ejiapi.com/mcp \ --header "x-api-key: YOUR_ACC_KEY"
{
"mcpServers": {
"eji-tally": {
"url": "https://acc.ejiapi.com/mcp",
"headers": { "x-api-key": "YOUR_ACC_KEY" }
}
}
}
{
"mcpServers": {
"eji-tally": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://acc.ejiapi.com/mcp",
"--header", "x-api-key:${EJI_ACC_KEY}"],
"env": { "EJI_ACC_KEY": "YOUR_ACC_KEY" }
}
}
}
mcp-remote helper, which needs Node.js. Your key reads your accounts: keep it out of shared config files and repositories, and prefer a key limited to the companies the assistant needs.Try without a key
Connect without the header and every tool reads Demo Traders Pvt Ltd, the made-up company of the explorer. Answers then carry "demo": true.
claude mcp add --transport http eji-tally-demo https://acc.ejiapi.com/mcp
Tools
All tools are read-only. Amounts are debit-positive: a debit balance is positive, a credit balance negative. Pass company as an id or name from tally_list_companies, or - when your key reads one company.
| Tool | What it does |
|---|---|
tally_list_companies | Companies your key can read, with last sync time. |
tally_company_summary | Counts of ledgers and vouchers, first and last voucher date. |
tally_list_groups | Account groups with parent, primary group and nature. |
tally_list_ledgers | Ledgers with balance, GSTIN and state; filter by group or text. |
tally_get_ledger | One ledger's balance on a date, with its details. |
tally_get_balances | Balances of many ledgers in one call. |
tally_ledger_statement | Entries between two dates with running balance; long statements keep the latest rows. |
tally_trial_balance | Trial balance on a date, by group or by ledger. |
tally_group_total | Debits, credits, net and closing of a group in a period (sales, purchases, expenses). |
tally_day_book | Vouchers of a period with lines and items; page with offset. |
tally_outstanding | Open bills with due dates and days overdue, per party; optionally overdue only. |
tally_stock_items | Stock items with unit, HSN and closing quantity. |
tally_stock_movement | Quantity and value in and out of an item in a period. |
Example questions
- Which customers have bills overdue by more than 60 days, and how much in total?
- What were sales and purchases each month this financial year?
- Show the ledger statement of Ravi Traders for October and explain the closing balance.
- Is the trial balance on 31 March in balance? Which groups carry the largest balances?
- Which stock items moved least in the last 90 days?
Your data
- The server keeps no session: each request uses the key it came with and nothing else, so one user's key can never answer another user's question.
- Tools only read. Nothing can change your books on EJI or in Tally.
- The assistant you connect sends the answers to its own model provider. Connect only assistants you are allowed to share these books with.
- Calls count against your key's quota like REST calls. Demo calls are limited per visitor.
Tally and TallyPrime are trademarks of Tally Solutions Pvt. Ltd. EJI API is an independent product and is not affiliated with or endorsed by Tally Solutions.