tally-mcp-server について
Tally Prime を利用する会計・業務チーム向けの MCP サーバーで、ERP データや操作を LLM クライアントに公開します。財務レポート、元帳、在庫の照会に対応し、ローカルとクラウドの構成を選べます。
主な機能
- 01Tally Prime ERP データの取得
- 02財務レポートと元帳の照会
- 03在庫・未決済請求・マスターの照会
- 04会社と日付による絞り込み
- 05ローカルおよびクラウドでの運用
活用シーン
- 01LLM 経由で試算表や損益データを照会
- 02指定期間の貸借対照表を確認
- 03在庫残高や商品取引を分析
- 04売掛金・買掛金の未決済分を確認
MCP 対応
MCP クライアントに Tally Prime のデータ照会と一部の元帳管理ツールを公開します。クライアントからローカル起動する構成と、Tally に接続する Web サーバー構成があります。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Tally Prime MCP サーバー
Claude、ChatGPT など、MCP クライアントに対応する人気の LLM に Tally Prime ERP のデータを提供する、Tally Prime MCP(Model Context Protocol)サーバーの実装です。この MCP サーバーを使うと、Tally の機能を LLM に直接公開できます。
前提条件
- Tally Prime(Silver / Gold)
- Node JS
以下が事前にインストールおよび設定されていることを確認してください。
- 公式ウェブサイトからNode JS をダウンロードしてインストールしてください。
- 以下の設定で Tally Prime の XML ポートを有効にしてください(F1 > Settings > Connectivity > Client/Server configuration)。
TallyPrime acts as = Server
Port = 9000
注:日付範囲に制限があるため、Tally Prime の教育版は使用しないでください。LLM に無効または不完全なデータが提供され、回答の精度が大幅に低下したり、誤った回答につながったりする可能性があります。
ダウンロード
リポジトリを直接クローンしないでください。必要な依存関係を含むユーティリティは、以下のリンクからダウンロードできます。
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 の両方がローカル PC にある場合に使用します。この場合、MCP クライアントのソフトウェア自体が MCP サーバーを内部で実行します。
zip ファイルをダウンロードし、ディスク上の任意の場所に展開してください。以下のパス(フォルダー)に zip ファイルをダウンロードして展開したとします。
D:\Software\Tally MCP Server
いくつかの人気ツールを使ったセットアップ例を紹介します。
Claude Desktop
Claude AI のデスクトップ版では、ローカル MCP サーバーを読み込めます。無料版より利用上限が高い Pro / Team / Max / Enterprise のいずれかのサブスクリプションを利用していることを確認してください。MCP は検証と推論のために Tally を複数回呼び出すため、無料版の利用上限はすぐに使い切る可能性があります。以下のリンクから Claude Desktop をダウンロードしてください。 claude.ai/download
ワンクリックインストール(拡張機能を使用)
メニューから > File > Settings を選択します。
Extensions > Advance Settings を選択します。
拡張機能のインストールボタンをクリックします。
最初にダウンロードした拡張機能ファイル(拡張子 mcpb)を選択します。
Tally Prime をインストールしますか? というダイアログが表示されるので、Install ボタンをクリックすると、Tally MCP サーバーがインストールされます。
設定ファイルによるインストール(開発者メニューから)
メニュー > File > Settings > Developer に移動します。
「マイコンピューター」ウィンドウが開きます。右クリックして、claude_desktop_config.json ファイルを(メモ帳で)編集し、以下の JSON を設定します。
{
"mcpServers": {
"Tally Prime": {
"command": "node",
"args": ["D:\\Software\\Tally MCP Server\\dist\\index.mjs"]
}
}
}
注:フォルダーのパスにあるスラッシュは、2 つのスラッシュに置き換える必要があります。
ファイルを保存します。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 アプリを終了して、再度開きます。
セットアップ(クラウド)
このセットアップ方式は、ChatGPT、Claude AI、Copilot などのブラウザーベースの MCP クライアントや、ローカル PC 上で実行中の Tally Prime にアクセスできない、これらの LLM 向けモバイルアプリを使用する場合に利用します。このシナリオでは、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 を使用してください |
出力
フィールド名、説明(ある場合)、正規化されたデータ型(string、number、date、boolean)を含むフィールドメタデータの JSON 配列。
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 (optional) | 会社名(デフォルトはアクティブな会社) |
| fromDate (optional) | YYYY-MM-DD 形式の日付 |
| toDate (optional) | YYYY-MM-DD 形式の日付 |
出力
JSON:{ "tableID": "..." }
list-master
検証と自動補完に使用するマスターのリストを取得します。
入力
| 引数 | 説明 |
|---|---|
| targetCompany (optional) | 会社名(デフォルトはアクティブな会社) |
| collection | 次のいずれか:group、ledger、vouchertype、unit、godown、stockgroup、stockitem、costcategory、costcentre、attendancetype、company、currency、gstin、gstclassification |
| containsFilter (optional) | 値を絞り込むためにCONTAINS操作に適用するフィルター |
出力
JSON:{ "list": [ ... ] }
chart-of-accounts
貸借対照表、損益計算書、試算表の作成に役立つ勘定科目表(またはグループ階層)を抽出します。
入力
| 引数 | 説明 |
|---|---|
| targetCompany (optional) | 会社名(デフォルトはアクティブな会社) |
出力
JSON:{ "tableID": "..." }(次の列を含みます):
ledger_namegroup_nameprimary_groupbs_pl(boolean) [true = 損益 / false = 貸借対照表]dr_cr(boolean) [true = 借方 / false = 貸方]affects_gross_profit(boolean) [true = 売上総利益に影響する / false = 売上総利益に影響しない]sort_position(number)
trial-balance
期間の試算表を取得します。
入力
| 引数 | 説明 |
|---|---|
| targetCompany (optional) | 会社名(デフォルトはアクティブな会社) |
| fromDate | YYYY-MM-DD形式の日付 |
| toDate | YYYY-MM-DD形式の日付 |
| group_name (optional) | グループ名で絞り込みます |
出力
JSON:{ "tableID": "..." }(次の列を含みます):
ledger_namegroup_nameopening_balance(number) [negative = 借方 / positive = 貸方]net_debitnet_creditclosing_balance(number) [negative = 借方 / positive = 貸方]
profit-loss
期間の損益データを取得します。
入力
| 引数 | 説明 |
|---|---|
| targetCompany (optional) | 会社名(デフォルトはアクティブな会社) |
| fromDate | YYYY-MM-DD形式の日付 |
| toDate | YYYY-MM-DD形式の日付 |
出力
JSON:{ "tableID": "..." }(次の列を含みます):
ledger_namegroup_nameclosing_balance(number) [negative = 借方 / positive = 貸方]
balance-sheet
期間の貸借対照表データを取得します。
入力
| 引数 | 説明 |
|---|---|
| targetCompany (optional) | 会社名(デフォルトはアクティブな会社) |
| fromDate | YYYY-MM-DD形式の日付 |
| toDate | YYYY-MM-DD形式の日付 |
出力
JSON:{ "tableID": "..." }(次の列を含みます):
ledger_namegroup_nameclosing_balance(number) [negative = 借方 / positive = 貸方]
stock-summary
期間の在庫品目サマリーを取得します。
入力
| 引数 | 説明 |
|---|---|
| targetCompany (optional) | 会社名(デフォルトはアクティブな会社) |
| fromDate | YYYY-MM-DD形式の日付 |
| toDate | YYYY-MM-DD形式の日付 |
| stockGroup (optional) | 在庫グループ名で絞り込みます |
出力
JSON:{ "tableID": "..." }(次の列を含みます):
stock_item_namestock_group_nameopening_quantity(number)opening_value(number) [negative = 借方 / positive = 貸方]inward_quantity(number)inward_value(number)outward_quantity(number)outward_value(number)closing_quantity(number)closing_value(number) [negative = 借方 / positive = 貸方]
ledger-balance
日付時点の勘定科目の期末残高を返します。
入力
| 引数 | 説明 |
|---|---|
| targetCompany (optional) | 会社名(デフォルトはアクティブな会社) |
| ledgerName | 勘定科目の正確な名前 |
| toDate | YYYY-MM-DD形式の日付 |
出力
JSON:{ "amount": number }。負の値は借方、正の値は貸方です。
stock-item-balance
日付時点の在庫品目の期末数量を返します。
入力
| 引数 | 説明 |
|---|---|
| targetCompany (optional) | 会社名(デフォルトはアクティブな会社) |
| itemName | 在庫品目の正確な名前 |
| toDate | YYYY-MM-DD形式の日付 |
出力
見つかった場合、JSON:{ "quantity": number, "unit_of_measurement": string }。
bills-outstanding
指定日時点の売掛金/買掛金の請求書別未決済残高を取得します。
入力
| 引数 | 説明 |
|---|---|
| targetCompany (optional) | 会社名(既定値はアクティブな会社) |
| nature | receivable または payable |
| toDate | YYYY-MM-DD 形式の日付 |
出力
JSON:{ "tableID": "..." }。列は次のとおりです:
bill_datereference_numberoutstanding_amountparty_nameoverdue_days
ledger-account
期間を指定して元帳勘定の明細書を取得します。
入力
| 引数 | 説明 |
|---|---|
| targetCompany (optional) | 会社名(既定値はアクティブな会社) |
| ledgerName | 元帳名 |
| fromDate | YYYY-MM-DD 形式の日付 |
| toDate | YYYY-MM-DD 形式の日付 |
出力
JSON:{ "tableID": "..." }。列は次のとおりです:
guiddatevoucher_typevoucher_numberalternate_ledgerparty_nameamount(数値)[負の値 = 借方/正の値 = 貸方]narration
stock-item-account
期間を指定して在庫品目勘定の明細書を取得します。
入力
| 引数 | 説明 |
|---|---|
| targetCompany (optional) | 会社名(既定値はアクティブな会社) |
| itemName | 在庫品目名 |
| fromDate | YYYY-MM-DD 形式の日付 |
| toDate | YYYY-MM-DD 形式の日付 |
出力
JSON:{ "tableID": "..." }。列は次のとおりです:
datevoucher_typevoucher_numberparty_ledgerquantityamount(数値)[負の値 = 借方/正の値 = 貸方]narrationtracking_numbervoucher_category
ledger-create-update
1つ以上の元帳を作成または更新します。
注意:このツールは既存の元帳を変更できます。このツールの使用を指示する前に、必ず会社のバックアップを作成してください。
入力
| 引数 | 説明 |
|---|---|
| targetCompany (optional) | 会社名(既定値はアクティブな会社) |
| masters | 作成または更新する元帳マスターオブジェクトの配列 |
マスター元帳オブジェクトで指定できる項目は次のとおりです。
| プロパティ | 説明 |
|---|---|
| name | 元帳名、または更新時の新しい元帳名 |
| _name | 既存の元帳名 |
| parent | 元帳が属するグループ |
| openingBalance | (任意)元帳の期首残高 |
| isBillWise | (任意)請求書ごとの参照を有効にするフラグ |
| billCreditPeriod | (任意)請求書の支払猶予期間(日数) |
| mailingDetails | (任意)郵送用の事業者名、国、州、郵便番号、住所 |
| gstRegistrationDetails | (任意)GST番号、登録種別、供給地(州)などのGST登録情報 |
出力 インポート処理から返されるJSON結果(成功/失敗の詳細)。
delete-master
Tallyから1つ以上のマスターを削除します。
入力
| 引数 | 説明 |
|---|---|
| targetCompany (optional) | 会社名(既定値はアクティブな会社) |
| collection | 削除するマスターまたはコレクションの種類。次のいずれか:group、ledger、vouchertype、unit、godown、stockgroup、stockitem、costcategory、costcentre、attendancetype、company、currency、gstin、gstclassification |
| name | 削除するマスター名の配列 |
出力 削除処理から返されるJSON結果(削除件数、スキップ件数など)。
voucher-journal
Tallyで1つ以上の仕訳伝票を作成します。
入力
| 引数 | 説明 |
|---|---|
| targetCompany (optional) | 会社名(既定値はアクティブな会社) |
| vouchers | 作成する仕訳伝票オブジェクトの配列 |
伝票オブジェクトで指定できる項目は次のとおりです。
| プロパティ | 説明 |
|---|---|
| isoptional | (任意)任意伝票を作成するには true に設定します |
| date | YYYY-MM-DD 形式の伝票日付 |
| voucherType | (任意)伝票種別(既定値は Journal。Journal 親グループに属している必要があります) |
| voucherNumber | (任意)伝票番号 |
| narration | (任意)摘要テキスト |
| accountingEntry | 会計明細行の配列(最低2行。金額の合計は0である必要があります) |
会計明細オブジェクトで指定できる項目は次のとおりです。
| プロパティ | 説明 |
|---|---|
| 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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。