
Keiri Files (Japanese receipt filer)
io.github.respectbarristerk-tech由 GitHub 帳號 respectbarristerk-tech 發布v0.3.1更新於 Nov 7, 2026
Local-only MCP: rename Japanese receipts/invoices by rule and append a bookkeeping CSV ledger.
概覽
在本機執行的 MCP 伺服器,讓助理讀取日本收據與發票,依規則重新命名或複製檔案,並將紀錄附加到記帳 CSV 台帳。
- 可以做什麼
- 列出允許資料夾中的 PDF、JPG、PNG、HEIC 檔案,含大小、修改時間與是否已入台帳
- 開啟單一憑證並回傳內容:圖片以 base64 圖片回傳,PDF 回傳內嵌文字或 PDF 資源
- 依日期、交易對象、金額、單據類型產生命名方案,並回報格式錯誤、重複警告與方案 ID
- 執行方案:複製到整理資料夾或就地重新命名,並將每次操作寫入紀錄 CSV
- 將紀錄附加到可用 Excel 開啟的台帳 CSV,預設略過報價單,並對疑似重複提出警告
- 依日期區間、金額區間與交易對象查詢台帳,回傳筆數、合計金額與符合的資料列
- 適用情境
- 適合把收據與發票以 PDF 或照片存放在本機資料夾,希望助理讀取內容、統一命名並建立簡單費用台帳的情況。它著重於個人電腦上的小型記帳整理,而非符合法規要求的檔案管理。
- 執行需求
- 需在本機執行 Node.js 20 以上版本,或使用供 Claude Desktop 使用的 .mcpb 安裝包。必須以命令列參數或環境變數 KEIRI_ALLOWED_DIRS 指定一個或多個允許資料夾。不需帳號、API 金鑰或網路連線。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Keiri Files (Japanese receipt filer),將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
keiri-files-mcp(経理ファイル整理MCP)
AIに貼る導入プロンプト
次の文をそのままAI(Claude Code/Codex/Gemini CLI など、ファイル操作ができるAI)に貼ってください。
PC内のレシート・請求書(PDF/画像)を、あなたのAIが読み取った内容をもとに
- 中身をAIに見せる(
read_file。JPG/PNGは画像、PDFは埋め込みテキスト) - 規則的なファイル名
YYYYMMDD_取引先_金額_書類種別.拡張子へコピー(またはリネーム) - 台帳CSV(UTF-8 BOM付き、Excelでそのまま開ける)へ追記
- 日付・金額・取引先で検索
するローカルMCPサーバーです。
- 文字認識(OCR)はしません。
read_fileは画像やPDFのテキストをそのままAIに渡すだけで、読み取るのはあなたのAIです - 外部通信なし・削除なし・子プロセスの実行なし。依存は公式MCP SDKと zod のみ(SDKが内部で依存する express 等のパッケージも .mcpb に同梱されますが、このツールのコードからは使っておらず、通信用のサーバーも起動しません)
- 許可したフォルダの外は読み書きしません(
../やシンボリックリンクでの脱出も拒否) - 書き込みを伴うツールは、AIクライアントの承認画面を通ります(ただし承認画面はクライアントの設定(自動承認など)によって出ないことがあります)
免責
- ファイル名と一覧表を整える補助ツールです。電子帳簿保存法の要件を満たすことは保証しません。
- 税務判断(勘定科目の確定、経費になるか等)はしません。読み取り結果と台帳の内容の確認は利用者の責任で行ってください。
- 本ソフトウェアは現状のまま提供され、利用によって生じた損害について作者は責任を負いません(LICENSE 参照)。
ツール
itemsの各要素:path,date(YYYY-MM-DD),vendor,amount(整数・円),doc_type(領収書/請求書/見積書/納品書/その他),invoice_no(任意、T+13桁)- 台帳の列: 日付, 支払先, 科目, 内容, 金額, 支払方法, インボイス有無, 登録番号, 証憑ファイル名, 事業割合(%), 書類種別, 元ファイル, 登録日時
- インボイス有無は「あり」「なし」、事業割合は「50%」の形で書きます(Excel で開くと 0.5・パーセント表示として認識されます。未指定は空欄)。v0.3.0 までの「有」「無」の行もそのまま読み込み・重複判定に使えます
- A〜J 列(日付〜事業割合)は、別売の台帳Excelにも貼れる並びです。台帳Excelへは A〜J 列(日付〜事業割合)だけをコピーして「経費」シートの5行目以降に値として貼ります。K列以降(書類種別・元ファイル・登録日時)は貼りません(台帳Excelの K列は台帳側の計算式です)
plan_idはサーバーのメモリ上にだけあり、再起動で消えます。1つのplan_idは1回だけ実行できます- 提案後に元ファイルが変更・移動された場合、その行は実行しません
- 登録番号は形式(T+13桁)だけを確認します。実在の確認はしません
- 「重複の可能性」は日付・取引先・金額が同じときに出す警告です(取引先は前後の空白と全角/半角の違いを無視して比較)。エラーにはせず、止めるかどうかは利用者とAIが決めます
- 見積書は支払いの記録ではないため、
ledger_appendは既定で追記せず理由を警告で返します。台帳に入れたいときはinclude_quotes: trueを指定します。納品書は同じ取引の請求書・領収書と二重計上になりうるため、追記したうえで注意を返します - 取引先が Windows の予約名(CON, PRN, AUX, NUL, COM1〜9, LPT1〜9)になる場合は、先頭に
_を付けます renameモードで整理したファイルも、整理済み/log.csvの記録先に実在すればledger_appendで追記できます(記録先から移動・名前変更すると警告になります)
read_file の PDF の返し方
- 埋め込みテキストを取り出せるPDF(パソコンで作った請求書など)は、テキストで返します。 取り出しは依存を増やさない簡易版です(node:zlib のみ。FlateDecode・ASCII85・ASCIIHex、ToUnicode、オブジェクトストリームに対応)。配置は崩れることがあります
- テキストが無いPDF(スキャン画像だけ等)や暗号化PDFは、PDFファイルそのものを MCP の resource(blob、application/pdf)で返します。 AIクライアントがPDFを表示できるかはクライアント次第です。表示できない場合は、JPG/PNGに変換してから読み取ってください(その旨を結果に書きます)
- 画像の縮小はしません(外部ライブラリを使わないため)。上限(約3.7MB)を超える画像はエラーで知らせます。スマホの写真など大きい画像は、縮小してから(または解像度を下げて保存し直してから)読み取ってください
フォルダ構成(例)
使い方の流れ(AI向けの手順は SKILL.md)
scan_folderで一覧を出す- AIが各ファイルを開いて日付・取引先・金額・書類種別・登録番号を読む(自信がない項目は利用者に聞く)
propose_namesで命名案を作り、利用者が確認・承認するapply_renamesで実行(既定はコピー)ledger_appendで台帳に追記(科目・支払方法などは利用者が決める)search_ledgerで確認
導入
必要なもの: Node.js 20 以上。
起動は node dist/index.js <許可フォルダ> [<許可フォルダ2> ...] です。環境変数 KEIRI_ALLOWED_DIRS(Windows は ;、macOS/Linux は : 区切り)でも指定できます。以下の <...> は自分の絶対パスに置き換えてください。Windows のパスは / 区切りで書いても動きます。
Claude Desktop(.mcpb)
GitHub の Releases にある keiri-files-mcp-<版>.mcpb を使うか、自分で作ります。
npm run pack(scripts/pack-mcpb.mjs)は、一時フォルダに dist・manifest.json・README 等だけをコピーし、本番用の依存だけを入れて keiri-files-mcp-<版>.mcpb を作ります。開発用の依存(typescript、テスト用の架空証憑を作る pdfkit 等)は入りません。
できた .mcpb をダブルクリック(または Claude Desktop の設定画面にドラッグ)し、許可フォルダを選びます。v0.3.0 は Windows の Claude Desktop で導入と動作を確認済みです(macOS は未確認)。
Claude Code
未確認(コマンドの形式は公式ドキュメントに基づく)。
Codex(~/.codex/config.toml)
未確認。
Gemini CLI(~/.gemini/settings.json)
未確認。
安全のための設計
- パスは実パスに解決してから許可フォルダ配下かを判定します
- 一覧ではシンボリックリンクをたどりません
- コピーは既存ファイルを上書きしません(同名は
_2等)。リネームも上書きしません - 台帳CSVは
=+-@で始まる文字列の先頭に'を付け、Excelで数式として実行されないようにしています - ソースは
src/の数ファイルだけです。AIに読ませて確認できます
開発
npm test: 単体テストと、SDKのMCPクライアントで架空の証憑10件を通す結合テスト(v0.2 の read_file・予約名・台帳の存在確認を含む)node test/make_fixtures.mjs [日本語TTF] [欧文TTF]: テスト用の架空の証憑10件(日本語のレシート画像6件・テキスト入りPDF4件、test/fixtures/receipts)と印字内容doc_texts.jsonを作り直す。社名・宛名はすべて架空、登録番号は先頭0の架空番号です。pdfkit・pureimage・pngjs・jpeg-js は開発用(devDependencies)で、.mcpb には入りません
English (summary)
A local MCP server that shows receipt/invoice contents to your AI (read_file: JPG/PNG as images, PDFs as embedded text or as a PDF resource), renames/copies the files (PDF/JPG/PNG/HEIC) to YYYYMMDD_vendor_amount_type.ext and appends rows to an Excel-friendly CSV ledger, based on what your own AI client read from the documents. No OCR, no network access, no deletion; it only touches the folders you allow. It is a helper for tidying file names and lists, not a guarantee of compliance with Japanese e-bookkeeping law, and it makes no tax decisions. License: MIT.
來源:README.md,提交 7288b70
工具
0版本歷史
1- v0.3.1最新Nov 7, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分