
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 分