Skip to content

beatinaniwa/mf-cli

Repository files navigation

mf - MoneyForward 会計 / 請求書 CLI

Go License: MIT CI Release

マネーフォワード クラウド会計マネーフォワード クラウド請求書 のAPIを操作するコマンドラインツールです。

Note: リポジトリ名は mf-cli ですが、インストールされるバイナリ名は mf です。

特徴

  • OAuth 2.0 + PKCE による認証
  • 仕訳帳・勘定科目・取引先・部門・税区分などのCRUD操作(クラウド会計)
  • 請求書の作成・更新・削除と取引先 / 部署 / 品目の参照(クラウド請求書)
  • 試算表・推移表などの財務レポート取得
  • JSON / テーブル形式での出力切替
  • --dry-run による安全な事前確認
  • --fields によるJSONフィールドフィルタリング
  • 組み込みOpenAPIスキーマブラウザ(mf describe
  • AIエージェントとの連携に最適化されたJSON出力

インストール

go install

go install github.com/beatinaniwa/mf-cli@latest

バイナリダウンロード

GitHub Releases から各プラットフォーム向けのバイナリをダウンロードできます。

対応プラットフォーム: Linux / macOS / Windows(amd64 / arm64)

ソースからビルド

git clone https://github.com/beatinaniwa/mf-cli.git
cd mf-cli
make build  # ./mf が生成されます

クイックスタート

1. APIクレデンシャルの取得

マネーフォワード クラウド API でアプリケーションを登録し、クライアントIDを取得してください。

リダイレクトURIの登録が必要です:

http://127.0.0.1:8089/callback

MF_AUTH_PORT を変更する場合は、リダイレクトURIのポート番号も合わせて変更してください。

2. 環境変数の設定

export MF_CLIENT_ID=your_client_id
export MF_CLIENT_SECRET=your_client_secret  # 公開クライアントの場合は省略可

3. 認証

# ブラウザで認証(デフォルト)
mf auth login

# 書き込み権限も含める場合(クラウド請求書APIを使う場合は必須)
mf auth login --scopes all

# ブラウザを使わずに認証(SSHセッション等)
mf auth login --no-browser

# 認証状態の確認
mf auth status

4. 基本的な使い方

# 事業所情報を表示
mf office

# 勘定科目一覧をテーブル形式で表示
mf accounts --format table

# 仕訳帳を取得
mf journals list --start-date 2025-01-01 --end-date 2025-03-31

# 仕訳を新規作成(dry-run で事前確認)
mf journals create --json '{"..."}' --dry-run

# 試算表(P/L)を取得
mf reports trial-balance-pl --fiscal-year 2024

# APIスキーマを確認(会計)
mf describe --list          # 利用可能なリソース一覧
mf describe journals        # journals の詳細

# 請求書APIスキーマを確認
mf describe --api invoice --list
mf describe --api invoice invoices

# 請求書ドラフトを作成(dry-run で事前確認)
mf invoices create --dry-run --json '{"department_id":"...","billing_date":"2026-05-08","title":"請求書","items":[{"name":"作業費","price":10000,"quantity":1,"excise":"ten_percent"}]}'

# 請求書一覧
mf invoices list --per-page 5

# 取引先・部署・品目の参照
mf invoice-partners list
mf invoice-departments list --partner-id <partner_id>
mf invoice-items list

コマンド一覧

コマンド 説明 テーブル dry-run --json
auth login OAuth認証
auth status 認証状態表示(JSON)
auth logout トークン削除
accounts 勘定科目一覧 o
sub-accounts 補助科目一覧 o
departments 部門一覧 o
taxes 税区分一覧 o
connected-accounts 連携口座一覧 o
office 事業所情報 o
trade-partners list 取引先一覧 o
trade-partners create 取引先作成 o o
journals list 仕訳一覧 o
journals get <ID> 仕訳詳細
journals create 仕訳作成 o o
journals update <ID> 仕訳更新 o o
journals delete <ID> 仕訳削除 o
transactions create 取引作成 o o
vouchers create 証憑作成 o o
vouchers delete 証憑削除 o
reports trial-balance-bs 試算表(B/S)
reports trial-balance-pl 試算表(P/L) o
reports transition-bs 推移表(B/S)
reports transition-pl 推移表(P/L)
describe [resource] APIスキーマ表示(--api accounting|invoice で切替) o
invoices list 請求書一覧 o
invoices get <ID> 請求書詳細
invoices create 請求書ドラフト作成(POST /invoice_template_billings o o
invoices update <ID> 請求書更新 o o
invoices delete <ID> 請求書削除 o
invoice-partners list / get 請求書取引先 o
invoice-departments list / get 取引先の部署(--partner-id 必須) o
invoice-items list / get 請求書品目 o
version バージョン表示

入出力

出力形式

# JSON出力(デフォルト)
mf accounts

# テーブル出力(対応コマンドのみ)
mf accounts --format table

# 特定フィールドのみ出力(JSONモードのみ有効)
mf accounts --fields id,display_name

# デバッグ出力(HTTPリクエスト/レスポンス詳細)
mf accounts --debug

--fields はJSON出力時のみフィルタリングが適用されます。テーブルモードでは無視されます。 reports trial-balance-pl--fields 指定時、テーブルの代わりにJSON出力にフォールバックします。

JSON入力

書き込みコマンドでは --json フラグでリクエストボディを指定します。

# 直接指定
mf journals create --json '{"description": "test"}'

# 標準入力から読み込み
cat request.json | mf journals create --json -

dry-run

書き込みコマンドでは --dry-run で実行前にリクエスト内容を確認できます。

mf journals create --json '{"..."}' --dry-run

設定

環境変数

変数 説明 デフォルト
MF_CLIENT_ID OAuthクライアントID (必須)
MF_CLIENT_SECRET OAuthクライアントシークレット (公開クライアントでは省略可)
MF_AUTH_PORT ローカルコールバックポート 8089
MF_CONFIG_DIR 設定ディレクトリのパス OS依存(下記参照)
MF_SCOPES スペース区切りのスコープリスト --scopes フラグより優先
MF_INVOICE_BASE_URL クラウド請求書 API のオリジン(/api/v3 を含めない) https://invoice.moneyforward.com

環境変数は設定ファイルの値を上書きします。

設定ファイル

設定ファイルの保存場所は XDG Base Directory に準拠します:

条件 パス
MF_CONFIG_DIR 設定時 $MF_CONFIG_DIR/
XDG_CONFIG_HOME 設定時 $XDG_CONFIG_HOME/mf-cli/
デフォルト(macOS/Linux) ~/.config/mf-cli/
デフォルト(Windows) %AppData%\mf-cli\

config.json

{
  "client_id": "your_client_id",
  "client_secret": "your_client_secret",
  "base_url": "https://api-accounting.moneyforward.com",
  "invoice_base_url": "https://invoice.moneyforward.com",
  "auth_port": 8089
}

invoice_base_url は origin のみを指定してください(末尾の /api/v3 は不要)。/api/v3 付きで設定された場合や末尾スラッシュは自動でトリムされ、それ以外の不正値は invoice 系コマンド実行時にエラーになります。

token.json

認証トークンは同ディレクトリ内の token.json に自動保存されます。

AIエージェント向け

mf-cli はAIエージェント(Claude Code、Codex等)からの利用に適した設計です。

  • リソースコマンド(accounts, journals, reports 等)と auth status はデフォルトでJSON出力
  • auth login/logoutversion は平文出力
  • --fields でJSON出力から必要なフィールドのみ抽出可能
  • --dry-run で安全にリクエスト内容を事前確認
  • --json - で標準入力からJSONを渡せる
  • エラーは構造化JSONとしてstderrに出力(cobra/pflagの未定義フラグや型不正のみ平文で stderr に出力されます)
  • 請求書APIを使うには mf auth login --scopes all で再認可が必要です(MF_SCOPES を設定中の場合は unset MF_SCOPES してから実行してください)

開発

make build      # バイナリをビルド
make test       # テスト実行(-race付き)
make lint       # golangci-lint実行
make coverage   # カバレッジレポート
make clean      # 成果物を削除

詳細は CONTRIBUTING.md を参照してください。

ライセンス

MIT License

About

MoneyForward Cloud Accounting & Invoice API CLI for AI agents — JSON-first output, dry-run, OAuth 2.0 PKCE, embedded OpenAPI describe / マネーフォワード クラウド会計・請求書 API を AI エージェントから操作する Go 製 CLI

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors