mf-cli

command module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 29, 2026 License: MIT Imports: 2 Imported by: 0

README

mf - MoneyForward会計 CLI

Go 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

# 書き込み権限も含める場合
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 の詳細

コマンド一覧

コマンド 説明 テーブル 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スキーマ表示 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 フラグより優先

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

設定ファイル

設定ファイルの保存場所は 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",
  "auth_port": 8089
}
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に出力

開発

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

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

ライセンス

MIT License

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
api

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL