tiedout について
tiedoutは、小規模事業者、フリーランス、簿記担当者向けのMCPサーバー兼CLIです。銀行明細と請求書のCSVを正確な計算で照合し、確度と理由で結果を分類します。CLI処理はローカルで完結します。
主な機能
- 01銀行CSVと請求書や支払請求書の照合
- 02確度別の分類と理由の提示
- 03重複支払いの可能性を検出
- 04多様なCSV形式と列名に対応
- 05ネットワーク接続なしでローカル実行
活用シーン
- 01顧客の入金と請求書を照合
- 02仕入先への支払いと請求書を照合
- 03未照合取引や重複支払いの可能性を発見
MCP 対応
2つのCSVファイルの照合と、検出した列や行数の確認に使うツールを提供します。MCP経由の照合結果にはファイル内の名称と金額が含まれ、MCPクライアントに返されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
2掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| mode | enum | いいえ | receivable は入金を顧客の請求書と照合し、payable は出金を請求書と照合しますreceivable | payable |
| limit | integer | いいえ | グループごとの項目数の上限。0 の場合は概要のみを返します |
| bank_path | string | はい | 銀行明細 CSV のパス |
| date_format | enum | いいえ | ツールが日付を特定できないと報告した場合のみ必要ですdmy | mdy |
| window_days | integer | いいえ | 請求書番号がない照合で、請求書の日付から何日後までの支払いを一致とみなすか |
| bank_columns | object | いいえ | 検出に失敗した場合の列名。例:{"date":"Posted","amount":"Value"} |
| invoices_path | string | はい | 請求書または請求明細 CSV のパス |
| invoice_columns | object | いいえ | 列名。検出に失敗した場合に使用します。例:{"number":"Doc","amount":"Gross"} |
詳細
tiedout:CSV ファイルの銀行照合
銀行取引明細を請求書や請求明細と照合します。正確に計算し、帳簿をどこにもアップロードしません。小規模事業者、フリーランサー、簿記担当者向けです。
手作業で支払いを照合するのは時間がかかり、AI モデルに長い CSV ファイルの比較を頼むと計算ミスを招きます。tiedout はコードで照合し、各行を理由とともに「一致」「可能性あり」「要確認」「不一致」に分類します。人やエージェントは例外だけを確認すれば済みます。これは、アカウントも API キーもネットワークアクセスも不要な MCP サーバー兼 CLI です。
CSV をエクスポートできる銀行や請求ツールであれば、どれでも使用できます。タイトル行、フッター、個別の貸方・借方列、セミコロン、小数点としてのカンマ、日・月の順の日付、複数言語の列名に対応しています。
エージェントに頼めること
- 「銀行のエクスポートと請求書はこちらです。誰が支払いましたか?」
- 「まだ支払いが残っている顧客は誰ですか?」
- 「これらの仕入先の請求書を銀行取引明細と照合してください。」
- 「重複した支払いや、請求書のない支払いはありますか?」
インストール
MCP サーバーと、Claude に使用するタイミングを知らせるスキルを追加する Claude Code プラグインとしてインストールします。
claude plugin marketplace add GillMacedo/tiedout
claude plugin install tiedout@tiedout-marketplace
その他の MCP クライアントでは、npm から実行します。Node 22.19 以降が必要です。
{
"mcpServers": {
"tiedout": {
"command": "npx",
"args": ["-y", "tiedout", "serve"]
}
}
}
使い方
examples/ にあるサンプルファイルで試してください。ファイル内の名前はすべて架空のものです。
$ node plugin/dist/tiedout.js match examples/bank.csv examples/invoices.csv
一致 (2)
2026-03-02 1200.00 TRANSFER FROM EXAMPLE SUPPLIES REF INV-1001 -> INV-1001 [請求書番号と金額]
2026-03-04 450.50 PAYMENT FICTIONAL CAFE INV 1002 INV1003 -> INV-1002, INV-1003 [請求書番号と合計額]
可能性あり:要確認 (2)
2026-03-09 975.00 SAMPLE WIDGETS ONLINE TRANSFER -> INV-1004 [金額と相手先名]
2026-03-16 700.00 PLACEHOLDER GARDENS -> INV-1007, INV-1008 [相手先名と、金額の合計が一致]
要確認:人による判断が必要 (3)
2026-03-11 590.00 ACME TEST CO INV-1005 -> INV-1005 [INV-1005 という名前があるものの、10.00 不足]
2026-03-18 1200.00 TRANSFER FROM EXAMPLE SUPPLIES REF INV-1001 [すでに決済済みの INV-1001 という名前がある:支払いの重複の可能性]
2026-03-12 310.00 DEPOSIT 3301 -> INV-1006 [金額のみ]
不一致の銀行明細 (1)
2026-03-20 42.00 UNKNOWN SENDER
未決済の請求書 (1)
INV-1009 125.00 Mock Logistics 期限 2026-03-28
スキップした銀行行 12:有効な日付がありません
2 件一致、2 件は可能性あり、3 件は要確認、1 件は不一致、未決済の請求書は 1 件
--payable を使うと、支出と請求書を照合できます。引数なしで tiedout を実行すると、--json や列名を手動で指定する方法など、すべてのオプションが表示されます。
判定方法
| グループ | ルール |
|---|---|
| 一致 | 銀行明細に請求書の名前があり、金額が正確に一致します |
| 可能性あり | 相手先名があり、金額に合う候補が 1 つだけ、または相手先の請求書の組み合わせが 1 通りだけ合計金額と一致します |
| 要確認 | 名前がある請求書の金額が一致しない場合、重複の可能性がある場合、複数候補が同条件で並ぶ場合、または他の裏付けのない金額の場合 |
同条件の候補に優劣をつけることはなく、理由を示さずに行が消えたと報告することもありません。
MCP ツール
| ツール | 機能 |
|---|---|
reconcile_match | 2つのCSVファイルを照合し、大量の結果には上限を設けてグループを返します |
reconcile_inspect_csv | 行の内容を表示せずに、検出した列と行数を表示します |
どちらも読み取り専用です。reconcile_match はファイル内の名称と金額をMCPクライアントに返すため、使用するAIモデルに届きます。tiedout CLIを使えば、すべてのデータをお使いのマシン上に保持できます。
制限事項
- このツールは帳簿管理を支援するものであり、会計上の助言ではありません。結果を信頼する前に確認してください。
- CSVのみを読み込むため、PDFの明細書は事前に変換する必要があります。
- 小数点以下2桁を前提としており、通貨の換算は行いません。通貨が異なる明細は一致しません。
- 各ファイルには未決済項目の全件が含まれていることを前提としています。実行をまたいだ一部支払いの追跡は行いません。
- これまでにテストしたのは、一般的なエクスポート形式の架空データのみであり、すべての銀行の実際のエクスポート形式ではありません。お使いのデータで問題が起きた場合は、データではなく列見出しを添えてイシューを作成してください。
よくある質問
銀行明細書と請求書を自動で照合するにはどうすればよいですか? 両方をCSV形式でエクスポートし、npx tiedout match bank.csv invoices.csv を実行します。一致した項目はその理由とともに表示され、不確かな項目は確認対象になります。
財務データはアップロードされますか? このツールにはネットワーク通信を行うコードはありません。CLIではすべてのデータがお使いのマシン上に保持されます。MCP経由では、結果がお使いのクライアントが利用するAIモデルに送られます。
QuickBooks、Xero、または自分の銀行で使えますか? それらに接続するのではなく、CSV形式のエクスポートデータを読み込みます。ほとんどの会計ツールや銀行ではCSVをエクスポートできます。ただし、それぞれの実際のエクスポート形式でのテストはまだ行われていません。
買掛金を照合できますか? はい。--payable を使うと、支出と請求書を照合できます。
コントリビューション
人による貢献も、AIエージェントと協力している人による貢献も歓迎します。CONTRIBUTING.md をご覧ください。初めての方におすすめのイシュー:
- ほかの言語や会計ツールの列名を追加する
--outを追加して、結果をスプレッドシート用のCSVに書き出す- OFXおよびQIF形式の銀行ファイルに対応する
- 複数の銀行明細行にまたがる一部支払いを追跡する
- プラグインアイコンを追加する
プルリクエストの流れ
- PRを作成します。 リポジトリをフォークし、ブランチで作業して、変更を1つに絞ってください。ユーザーにとって何が変わるのかが分かるタイトルを付けてください。タイトルは変更履歴の行になるため、
feat:は Added、fix:は Fixed の項目に記載されます。 - 自動チェック。 コードの変更にはテストが必要で、
make testが成功しなければなりません。30行を超える変更には関連する未解決イシュー(Closes #<number>)が必要で、PRの変更行数は最大800行です。不足がある場合は、修正すべき内容がコメントで通知されます。 - レビュー。 Claudeが各PRを自動的にレビューします。コードのPRにはセキュリティレビューも行われ、サンドボックスでテストされます。その後、レビュー担当者がPRをマージするか、変更を依頼します。CI、エージェントの設定、npmまたはPythonの依存関係、ベンダーコード、ビルドファイルを変更するPRはこの方法ではマージできず、その旨がコメントで通知されます。セキュリティレビューで承認されなかった変更も同様です。
- リリース。 ユーザーがインストールする内容を変更するマージは、約2時間以内に新しいバージョンとしてリリースされます。GitHub Releaseも作成され、プロジェクトにnpmパッケージがある場合はそれもリリースされます。ドキュメントとCIの変更は次回のリリースまで保留されます。
AIの利用に関する開示
このプロジェクトは主にClaude Codeで生成され、メンテナーによるレビューを受けています。
自己紹介
私はGiulliano Macedoです。GoTech Solutionsで開発者向けツールを開発しています。最新情報を確認したり、連絡を取ったりするには、以下をご覧ください。
- GitHub:GillMacedo
- LinkedIn:giulliano
- X:@giumacedo
tiedout で午後の時間を節約できたら、スターを付けていただけると、ほかの人にも見つけてもらいやすくなります。
MITライセンスです。
Giulliano Macedo、GoTech Solutionsが開発 · LinkedIn · X
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。