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.

概览

AI 生成的概览

本地运行的 MCP 服务器,让助手读取日本收据与发票,按规则重命名或复制文件,并向记账 CSV 台账追加记录。

可以做什么
  • 列出允许文件夹中的 PDF、JPG、PNG、HEIC 文件,含大小、修改时间与是否已入台账
  • 打开单份凭证并返回内容:图片以 base64 图片返回,PDF 返回内嵌文本或 PDF 资源
  • 按日期、交易方、金额、单据类型生成命名方案,并给出格式错误、重复警告和方案 ID
  • 执行方案:复制到整理文件夹或原地重命名,并把每次操作记入日志 CSV
  • 向可用 Excel 打开的台账 CSV 追加记录,默认跳过报价单,并对疑似重复给出警告
  • 按日期区间、金额区间和交易方检索台账,返回条数、合计金额与匹配行
适用场景
适合把收据和发票以 PDF 或照片形式存放在本地文件夹,希望助手读取内容、统一命名并生成简单费用台账的场景。它面向个人电脑上的小型记账整理,而非合规级别的档案管理。
运行要求
需本地运行 Node.js 20 或更高版本,或使用面向 Claude Desktop 的 .mcpb 安装包。必须通过命令行参数或环境变量 KEIRI_ALLOWED_DIRS 指定一个或多个允许文件夹。无需账号、API 密钥或网络访问。
安装前请注意
写入类工具会在允许文件夹内复制或重命名文件并追加台账 CSV;是否弹出确认取决于客户端设置,可能被自动批准。请只指向专用的收据文件夹,因为允许文件夹内的文件都可被读取。它不做 OCR,也不做税务判断,不保证满足日本电子账簿保存法要求,命名与台账内容需自行核对。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Keiri Files (Japanese receipt filer),将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

keiri-files-mcp(経理ファイル整理MCP)

AIに貼る導入プロンプト

次の文をそのままAI(Claude Code/Codex/Gemini CLI など、ファイル操作ができるAI)に貼ってください。

text
このリポジトリのREADMEとsrcを読んで、外部通信・削除・許可フォルダ外アクセスがないか要約してください。問題なければ、私の環境(Claude Desktop/Claude Code/Codex 等)に合う導入手順を示し、私の承認を得てから実行してください。許可フォルダには、レシート・請求書を置く専用のフォルダだけを指定してください。

PC内のレシート・請求書(PDF/画像)を、あなたのAIが読み取った内容をもとに

  1. 中身をAIに見せる(read_file。JPG/PNGは画像、PDFは埋め込みテキスト)
  2. 規則的なファイル名 YYYYMMDD_取引先_金額_書類種別.拡張子 へコピー(またはリネーム)
  3. 台帳CSV(UTF-8 BOM付き、Excelでそのまま開ける)へ追記
  4. 日付・金額・取引先で検索

するローカルMCPサーバーです。

  • 文字認識(OCR)はしません。read_file は画像やPDFのテキストをそのままAIに渡すだけで、読み取るのはあなたのAIです
  • 外部通信なし・削除なし・子プロセスの実行なし。依存は公式MCP SDKと zod のみ(SDKが内部で依存する express 等のパッケージも .mcpb に同梱されますが、このツールのコードからは使っておらず、通信用のサーバーも起動しません)
  • 許可したフォルダの外は読み書きしません(../ やシンボリックリンクでの脱出も拒否)
  • 書き込みを伴うツールは、AIクライアントの承認画面を通ります(ただし承認画面はクライアントの設定(自動承認など)によって出ないことがあります)

免責

  • ファイル名と一覧表を整える補助ツールです。電子帳簿保存法の要件を満たすことは保証しません。
  • 税務判断(勘定科目の確定、経費になるか等)はしません。読み取り結果と台帳の内容の確認は利用者の責任で行ってください。
  • 本ソフトウェアは現状のまま提供され、利用によって生じた損害について作者は責任を負いません(LICENSE 参照)。

ツール

ツール内容書き込み
scan_folder(subdir?, recursive?)PDF/JPG/PNG/HEIC の一覧(相対パス、サイズ、更新日時、台帳登録済みか)。最大500件。整理済み は対象外。recursive の既定は trueなし
read_file(path)証憑1件の中身を返す。JPG/PNG → MCP の image(base64)。PDF → 埋め込みテキスト(下記)。HEIC は非対応(JPGに変換を案内)。画像は約3.7MB(base64で5MB)までなし
propose_names(items[])命名案と形式エラー(日付・金額・登録番号・書類種別)を返し、plan_id を発行。同名は _2 等で回避。日付・取引先・金額が同じもの(同じ依頼内・台帳の既存行)は warnings に「重複の可能性」なし
apply_renames(plan_id, mode)plan_id の案だけ実行。既定 copy は 整理済み へコピー。rename は元ファイル名を変更(上書きなし)。整理済み/log.csv に記録あり
ledger_append(entries[], include_quotes?)整理済み/ledger.csv に追記。同じ証憑ファイル名、および実在しない証憑ファイル名(整理済み に無く、log.csv の copy/rename の記録先にも無いもの)は警告して追記しない。見積書は既定で追記しない(include_quotes: true で追記)。納品書は二重計上の注意つきで追記。日付・取引先・金額が同じ行は「重複の可能性」の警告つきで追記あり(追記のみ)
search_ledger(date_from?, date_to?, amount_min?, amount_max?, vendor?)条件を組み合わせて検索。件数・合計金額・該当行なし
  • 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)を超える画像はエラーで知らせます。スマホの写真など大きい画像は、縮小してから(または解像度を下げて保存し直してから)読み取ってください

フォルダ構成(例)

text
<許可フォルダ>/  受信/                 ← レシート・請求書を置く  整理済み/             ← ツールが作る    20261001_架空商事テスト株式会社_55000_請求書.pdf    ledger.csv          ← 台帳    log.csv             ← 実行ログ

使い方の流れ(AI向けの手順は SKILL.md)

  1. scan_folder で一覧を出す
  2. AIが各ファイルを開いて日付・取引先・金額・書類種別・登録番号を読む(自信がない項目は利用者に聞く)
  3. propose_names で命名案を作り、利用者が確認・承認する
  4. apply_renames で実行(既定はコピー)
  5. ledger_append で台帳に追記(科目・支払方法などは利用者が決める)
  6. search_ledger で確認

導入

必要なもの: Node.js 20 以上。

bash
npm cinpm run buildnpm test

起動は node dist/index.js <許可フォルダ> [<許可フォルダ2> ...] です。環境変数 KEIRI_ALLOWED_DIRS(Windows は ;、macOS/Linux は : 区切り)でも指定できます。以下の <...> は自分の絶対パスに置き換えてください。Windows のパスは / 区切りで書いても動きます。

Claude Desktop(.mcpb)

GitHub の Releases にある keiri-files-mcp-<版>.mcpb を使うか、自分で作ります。

bash
npm cinpm run buildnpm testnpm run pack

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

bash
claude mcp add keiri-files -- node <keiri-files-mcpの場所>/dist/index.js <許可フォルダ>

未確認(コマンドの形式は公式ドキュメントに基づく)。

Codex(~/.codex/config.toml)

toml
[mcp_servers.keiri-files]command = "node"args = ["<keiri-files-mcpの場所>/dist/index.js", "<許可フォルダ>"]

未確認。

Gemini CLI(~/.gemini/settings.json)

json
{  "mcpServers": {    "keiri-files": {      "command": "node",      "args": ["<keiri-files-mcpの場所>/dist/index.js", "<許可フォルダ>"]    }  }}

未確認。

安全のための設計

  • パスは実パスに解決してから許可フォルダ配下かを判定します
  • 一覧ではシンボリックリンクをたどりません
  • コピーは既存ファイルを上書きしません(同名は _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
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.3.1最新Nov 7, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分