cli-anything-firefly-iii について
cli-anything-firefly-iiiは、API経由でFirefly IIIを管理するステートレスなコマンドラインツールです。金融記録、予算、レポート、自動化などを扱い、スクリプトやエージェントワークフロー向けにJSON出力とコマンドプリセットを備えています。
主な機能
- 01口座と取引の管理
- 02予算、請求、カテゴリの管理
- 03ルール、定期取引、Webhookの管理
- 04検索、エクスポート、レポート表示
- 05プリセットによるコマンド絞り込み
- 06構造化JSON出力
活用シーン
- 01支出の記録と口座残高の確認
- 02収支レポートの作成
- 03ルールや定期取引による処理の自動化
- 04JSON出力を使ったFirefly III操作のスクリプト化
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ hkuds/ cli-anything --skill cli-anything-firefly-iiiインストール後、Claude Code で/cli-anything-firefly-iiiを入力して読み込まれたか確認します。
詳細
Firefly III CLI
CLI-Anything 仕様に基づく Firefly III コマンドラインインターフェースです。MCP モードをステートレスな CLI モードに変換し、Node の残留プロセスの問題を回避します。
インストール
pip install cli-anything-firefly-iii
前提条件
- Python 3.10 以上
- 実行中の Firefly III インスタンス
- パーソナルアクセストークン(PAT)
設定
環境変数(推奨)
export FIREFLY_III_BASE_URL="https://firefly.yourdomain.com"
export FIREFLY_III_PAT="your-personal-access-token"
コマンドライン引数
cli-anything-firefly-iii --base-url https://firefly.yourdomain.com --pat your-token
コマンドグループ
| コマンドグループ | 説明 | 対応する API |
|---|---|---|
accounts | 口座管理(CRUD) | /api/v1/accounts |
transactions | 取引管理(CRUD) | /api/v1/transactions |
budgets | 予算管理(CRUD + 上限) | /api/v1/budgets |
categories | カテゴリ管理(CRUD) | /api/v1/categories |
tags | タグ管理(CRUD) | /api/v1/tags |
bills | 請求書管理(CRUD) | /api/v1/bills |
piggy-banks | 貯金箱管理(CRUD + イベント) | /api/v1/piggy-banks |
autocomplete | 各種エンティティのオートコンプリート | /api/v1/autocomplete/* |
currencies | 通貨管理(CRUD) | /api/v1/currencies |
recurrences | 定期取引管理(CRUD) | /api/v1/recurrences |
rules | ルール管理(CRUD + テスト/実行) | /api/v1/rules |
rule-groups | ルールグループ管理(CRUD + 実行) | /api/v1/rule-groups |
summary | 財務サマリー | /api/v1/summary/* |
webhooks | Webhook 管理(CRUD + トリガー) | /api/v1/webhooks |
insights | インサイトとレポート | /api/v1/insight/* |
search | 検索 | /api/v1/search/* |
export | データエクスポート | /api/v1/data/export/* |
info | システム情報 | /api/v1/about |
使用例
口座管理
# List all accounts
cli-anything-firefly-iii --json accounts list
# List asset accounts
cli-anything-firefly-iii --json accounts list --type asset
# Get account details
cli-anything-firefly-iii --json accounts get --id 123
# Create account
cli-anything-firefly-iii --json accounts create --name "Cash" --type asset --currency-code USD
# Update account
cli-anything-firefly-iii --json accounts update --id 123 --name "New Name"
# Delete account
cli-anything-firefly-iii accounts delete --id 123
取引管理
# List transactions
cli-anything-firefly-iii --json transactions list --limit 10
# List transactions with date range
cli-anything-firefly-iii --json transactions list --start 2024-01-01 --end 2024-01-31
# Create transaction
cli-anything-firefly-iii --json transactions create \
--description "Grocery" \
--amount 50.00 \
--source-account 1 \
--category "Food"
# Update transaction
cli-anything-firefly-iii --json transactions update --id 456 --description "Updated"
# Delete transaction
cli-anything-firefly-iii transactions delete --id 456
予算管理
# List budgets
cli-anything-firefly-iii --json budgets list
# Get budget details
cli-anything-firefly-iii --json budgets get --id 1
# Create budget
cli-anything-firefly-iii --json budgets create --name "Monthly Budget"
# Update budget
cli-anything-firefly-iii --json budgets update --id 1 --name "New Budget Name"
# Delete budget
cli-anything-firefly-iii budgets delete --id 1
# List budget limits
cli-anything-firefly-iii --json budgets limits --budget-id 1
# Create budget limit
cli-anything-firefly-iii --json budgets limit-create --budget-id 1 --amount 1000 --start 2024-01-01 --end 2024-01-31
# Update budget limit
cli-anything-firefly-iii --json budgets limit-update --id 1 --amount 1500
# Delete budget limit
cli-anything-firefly-iii budgets limit-delete --id 1
カテゴリ管理
# List categories
cli-anything-firefly-iii --json categories list
# Get category
cli-anything-firefly-iii --json categories get --id 1
# Create category
cli-anything-firefly-iii --json categories create --name "Food"
# Update category
cli-anything-firefly-iii --json categories update --id 1 --name "Food & Dining"
# Delete category
cli-anything-firefly-iii categories delete --id 1
タグ管理
# List tags
cli-anything-firefly-iii --json tags list
# Get tag
cli-anything-firefly-iii --json tags get --id "uuid-here"
# Create tag
cli-anything-firefly-iii --json tags create --tag "important"
# Update tag
cli-anything-firefly-iii --json tags update --id "uuid-here" --tag "important-updated"
# Delete tag
cli-anything-firefly-iii tags delete --id "uuid-here"
請求書管理
# List bills
cli-anything-firefly-iii --json bills list
# Get bill
cli-anything-firefly-iii --json bills get --id 1
# Create bill
cli-anything-firefly-iii --json bills create \
--name "Netflix" \
--amount-min 15.99 \
--amount-max 15.99 \
--frequency monthly
# Update bill
cli-anything-firefly-iii --json bills update --id 1 --amount-min 19.99
# Delete bill
cli-anything-firefly-iii bills delete --id 1
貯金箱管理
# List piggy banks
cli-anything-firefly-iii --json piggy-banks list
# Get piggy bank
cli-anything-firefly-iii --json piggy-banks get --id 1
# Create piggy bank
cli-anything-firefly-iii --json piggy-banks create \
--name "Vacation Fund" \
--account-id 1 \
--target-amount 5000
# Update piggy bank
cli-anything-firefly-iii --json piggy-banks update --id 1 --name "New Name"
# Delete piggy bank
cli-anything-firefly-iii piggy-banks delete --id 1
# List piggy bank events
cli-anything-firefly-iii --json piggy-banks events --id 1
# Add money to piggy bank
cli-anything-firefly-iii --json piggy-banks add-money --id 1 --amount 100
オートコンプリート
# Autocomplete accounts
cli-anything-firefly-iii --json autocomplete accounts --query "bank"
# Autocomplete categories
cli-anything-firefly-iii --json autocomplete categories --query "food"
# Autocomplete tags
cli-anything-firefly-iii --json autocomplete tags --query "important"
# Autocomplete transactions
cli-anything-firefly-iii --json autocomplete transactions --query "grocery"
# Autocomplete budgets
cli-anything-firefly-iii --json autocomplete budgets --query "monthly"
# Autocomplete bills
cli-anything-firefly-iii --json autocomplete bills --query "netflix"
# Autocomplete piggy banks
cli-anything-firefly-iii --json autocomplete piggy-banks --query "vacation"
# Autocomplete currencies
cli-anything-firefly-iii --json autocomplete currencies --query "dollar"
# Autocomplete rules
cli-anything-firefly-iii --json autocomplete rules --query "auto"
# Autocomplete rule groups
cli-anything-firefly-iii --json autocomplete rule-groups --query "finances"
# Autocomplete recurring
cli-anything-firefly-iii --json autocomplete recurring --query "rent"
# Autocomplete object groups
cli-anything-firefly-iii --json autocomplete object-groups --query "group"
# Autocomplete transaction types
cli-anything-firefly-iii --json autocomplete transaction-types --query "with"
通貨管理
# List currencies
cli-anything-firefly-iii --json currencies list
# Get currency
cli-anything-firefly-iii --json currencies get --id 1
# Create currency
cli-anything-firefly-iii --json currencies create \
--code "CNY" \
--name "Chinese Yuan" \
--symbol "¥"
# Update currency
cli-anything-firefly-iii --json currencies update --id 1 --symbol "元"
# Delete currency
cli-anything-firefly-iii currencies delete --id 1
# Get exchange rates
cli-anything-firefly-iii --json currencies exchange-rates --from USD --to EUR
定期取引管理
# List recurring transactions
cli-anything-firefly-iii --json recurrences list
# Get recurring transaction
cli-anything-firefly-iii --json recurrences get --id 1
# Create recurring transaction
cli-anything-firefly-iii --json recurrences create \
--title "Rent Payment" \
--type withdrawal \
--amount 1500 \
--source-account 1 \
--destination-account 2 \
--frequency monthly
# Update recurring transaction
cli-anything-firefly-iii --json recurrences update --id 1 --amount 1600
# Delete recurring transaction
cli-anything-firefly-iii recurrences delete --id 1
ルール管理
# List rules
cli-anything-firefly-iii --json rules list
# Get rule
cli-anything-firefly-iii --json rules get --id 1
# Create rule
cli-anything-firefly-iii --json rules create \
--title "Auto-tag groceries" \
--trigger "description_contains" \
--value "grocery" \
--action set_category \
--action-value "Food"
# Update rule
cli-anything-firefly-iii --json rules update --id 1 --title "New Title"
# Delete rule
cli-anything-firefly-iii rules delete --id 1
# Test rule
cli-anything-firefly-iii --json rules test --id 1
# Execute rule
cli-anything-firefly-iii --json rules execute --id 1
ルールグループ管理
# List rule groups
cli-anything-firefly-iii --json rule-groups list
# Get rule group
cli-anything-firefly-iii --json rule-groups get --id 1
# Create rule group
cli-anything-firefly-iii --json rule-groups create --title "Finance Rules"
# Update rule group
cli-anything-firefly-iii --json rule-groups update --id 1 --title "New Title"
# Delete rule group
cli-anything-firefly-iii rule-groups delete --id 1
# Execute rule group
cli-anything-firefly-iii --json rule-groups execute --id 1
サマリーレポート
# Default summary set
cli-anything-firefly-iii --json summary default-set --start 2024-01-01 --end 2024-01-31
# Account summary
cli-anything-firefly-iii --json summary account-summary --start 2024-01-01 --end 2024-01-31
# Available budget summary
cli-anything-firefly-iii --json summary available-budget --start 2024-01-01 --end 2024-01-31
# Bill summary
cli-anything-firefly-iii --json summary bill-summary --start 2024-01-01 --end 2024-01-31
# Budget summary
cli-anything-firefly-iii --json summary budget-summary --start 2024-01-01 --end 2024-01-31
# Category summary
cli-anything-firefly-iii --json summary category-summary --start 2024-01-01 --end 2024-01-31
# Tag summary
cli-anything-firefly-iii --json summary tag-summary --start 2024-01-01 --end 2024-01-31
# Transfer summary
cli-anything-firefly-iii --json summary transfer-summary --start 2024-01-01 --end 2024-01-31
Webhook 管理
# List webhooks
cli-anything-firefly-iii --json webhooks list
# Get webhook
cli-anything-firefly-iii --json webhooks get --id 1
# Create webhook
cli-anything-firefly-iii --json webhooks create \
--title "My Webhook" \
--trigger create \
--url "https://example.com/webhook" \
--secret "my-secret"
# Update webhook
cli-anything-firefly-iii --json webhooks update --id 1 --title "New Title"
# Delete webhook
cli-anything-firefly-iii webhooks delete --id 1
# Trigger webhook manually
cli-anything-firefly-iii --json webhooks trigger --id 1
インサイトとレポート
# Expense report (by category)
cli-anything-firefly-iii --json insights expense \
--start 2024-01-01 \
--end 2024-01-31 \
--group-by category
# Income report
cli-anything-firefly-iii --json insights income \
--start 2024-01-01 \
--end 2024-01-31
# Transfer insights
cli-anything-firefly-iii --json insights transfer \
--start 2024-01-01 \
--end 2024-01-31
# Account overview
cli-anything-firefly-iii --json insights overview \
--start 2024-01-01 \
--end 2024-01-31
検索
# Search transactions
cli-anything-firefly-iii --json search transactions --query "grocery"
データエクスポート
# Export transactions
cli-anything-firefly-iii --json export transactions \
--start 2024-01-01 \
--end 2024-01-31
# Export accounts
cli-anything-firefly-iii --json export accounts
# Export budgets
cli-anything-firefly-iii --json export budgets
# Export categories
cli-anything-firefly-iii --json export categories
システム情報
# System information
cli-anything-firefly-iii --json info about
# Connection status
cli-anything-firefly-iii info status
プリセットフィルタリング
--preset パラメータを使用して、利用可能なコマンドをフィルタリングできます。
# Default preset
cli-anything-firefly-iii --preset default accounts list
# Full preset
cli-anything-firefly-iii --preset full accounts list
# Budget preset
cli-anything-firefly-iii --preset budget budgets list
# Reporting preset
cli-anything-firefly-iii --preset reporting insights expense --start 2024-01-01 --end 2024-01-31
利用可能なプリセット:
default: コア機能(accounts、transactions、categories、tags、bills、search)full: すべての機能basic: 基本機能(accounts、transactions、categories、tags、search)budget: 予算関連(accounts、budgets、transactions、summary、insight)reporting: レポート関連(accounts、transactions、categories、insight、summary、search)admin: 管理機能(about、configuration、currencies、users、preferences)automation: 自動化(rules、recurrences、webhooks、transactions)
エージェント向けガイドライン
基本的な使い方
- 構造化出力には
--jsonを使用: すべてのコマンドは--jsonフラグをサポートしており、JSON 形式のデータを返します - 最初に
info statusを呼び出して接続を確認: 操作を実行する前に Firefly III への接続が正常であることを確認します - プリセットを使用してコマンド数を削減:
--presetで不要なコマンドをフィルタリングします
一般的なワークフロー
口座残高の確認
# 1. Check connection
cli-anything-firefly-iii info status
# 2. List asset accounts
cli-anything-firefly-iii --json accounts list --type asset
# 3. View account details (get balance)
cli-anything-firefly-iii --json accounts get --id <account_id>
支出の記録
# 1. Find expense accounts
cli-anything-firefly-iii --json accounts list --type expense
# 2. Create transaction
cli-anything-firefly-iii --json transactions create \
--description "Lunch" \
--amount 15.50 \
--source-account <asset_account_id> \
--destination-account <expense_account_id> \
--category "Food"
定期予算の設定
# 1. Create budget
cli-anything-firefly-iii --json budgets create --name "Monthly Groceries"
# 2. Set budget limit
cli-anything-firefly-iii --json budgets limit-create \
--budget-id <budget_id> \
--amount 500 \
--start 2024-01-01 \
--end 2024-01-31
自動化ルールの作成
# 1. List rule groups
cli-anything-firefly-iii --json rule-groups list
# 2. Create rule
cli-anything-firefly-iii --json rules create \
--title "Auto-tag groceries" \
--trigger description_contains \
--value "grocery" \
--action set_category \
--action-value "Food"
# 3. Execute rule to apply to existing transactions
cli-anything-firefly-iii --json rules execute --id <rule_id>
月次財務レポート
# 1. Expense report
cli-anything-firefly-iii --json insights expense \
--start 2024-01-01 \
--end 2024-01-31 \
--group-by category
# 2. Income report
cli-anything-firefly-iii --json insights income \
--start 2024-01-01 \
--end 2024-01-31
# 3. Budget summary
cli-anything-firefly-iii --json summary budget-summary \
--start 2024-01-01 \
--end 2024-01-31
# 4. Export data
cli-anything-firefly-iii --json export transactions \
--start 2024-01-01 \
--end 2024-01-31
エラー処理
一般的なエラーと解決方法:
- 接続失敗: FIREFLY_III_BASE_URL が正しいか確認してください
- 認証失敗: FIREFLY_III_PAT が有効か確認してください
- リソースが見つからない: ID が正しいか確認してください
- パラメータエラー: 必須パラメータが指定されているか確認してください
- 検証エラー: 有効なパラメータ値については API ドキュメントを確認してください
ベストプラクティス
- 認証情報には環境変数を使用する: コマンドラインで PAT を露出させないようにしてください
- スクリプト処理には
--jsonを使用する: 出力の解析と処理が容易になります - プリセットで権限を制御する: シナリオに応じて適切なプリセットを選択してください
- 変更する前にクエリを実行する: 誤操作を避けてください
- クイック検索にはオートコンプリートを使用する: 既存のエンティティを探すのに最適です
トラブルシューティング
接続の問題
Error: Cannot connect to Firefly III instance
- Firefly III インスタンスが実行中かどうかを確認してください
- ネットワーク接続を確認してください
- ベース URL が正しいかどうかを確認してください
認証の問題
Error: Authentication failed: Personal Access Token is invalid
- PAT が正しいかどうかを確認してください
- Firefly III の オプション > プロフィール > OAuth で新しい PAT を生成してください
- PAT が期限切れになっていないことを確認してください
パラメータ検証エラー
Error: Request parameter error: [details]
- 必須パラメータが指定されているかどうかを確認してください
- 日付形式 (YYYY-MM-DD) を確認してください
- 通貨コード (ISO 4217) を確認してください
- 列挙値が許可された選択肢と一致することを確認してください
MCP バージョンとの比較
| 機能 | MCP バージョン | CLI-Anything バージョン |
|---|---|---|
| プロセスライフサイクル | 長時間実行 | 単一呼び出し、即時終了 |
| メモリ使用量 | 継続的 | オンデマンド、実行後に解放 |
| 通信 | Stdio/SSE | コマンド引数 + stdout |
| 状態管理 | ステートフル | ステートレス |
| プリセットフィルタリング | 対応 | 対応 |
| JSON 出力 | 組み込み | --json フラグ |
| 完全な API カバレッジ | 部分的 | 完全な API カバレッジ |
API カバレッジ
この CLI は以下の Firefly III API エンドポイントをカバーしています:
-
/api/v1/about- システム情報 -
/api/v1/accounts- 口座管理 (完全な CRUD) -
/api/v1/transactions- 取引管理 (完全な CRUD) -
/api/v1/budgets- 予算管理 (完全な CRUD + 限度額) -
/api/v1/categories- カテゴリ管理 (完全な CRUD) -
/api/v1/tags- タグ管理 (完全な CRUD) -
/api/v1/bills- 請求書管理 (完全な CRUD) -
/api/v1/piggy-banks- 貯金箱管理 (完全な CRUD + イベント) -
/api/v1/autocomplete/*- すべてのオートコンプリートエンドポイント -
/api/v1/currencies- 通貨管理 (完全な CRUD) -
/api/v1/recurrences- 定期取引管理 (完全な CRUD) -
/api/v1/rules- ルール管理 (完全な CRUD + テスト/実行) -
/api/v1/rule-groups- ルールグループ管理 (完全な CRUD + 実行) -
/api/v1/summary/*- サマリーエンドポイント -
/api/v1/webhooks- Webhook 管理 (完全な CRUD + トリガー) -
/api/v1/insight/*- インサイトエンドポイント -
/api/v1/search/*- 検索エンドポイント -
/api/v1/data/export/*- エクスポートエンドポイント -
/api/v1/chart/*- チャートエンドポイント -
/api/v1/configuration- 設定 -
/api/v1/preferences- ユーザー設定 -
/api/v1/available_budgets- 利用可能な予算 -
/api/v1/object-groups- オブジェクトグループ -
/api/v1/links- 取引リンク -
/api/v1/attachments- 添付ファイル -
/api/v1/currency_exchange_rates- 為替レート -
/api/v1/data/bulk- 一括操作 -
/api/v1/user-groups- ユーザーグループ (読み取り専用) -
/api/v1/users- ユーザー管理 (管理者)
ライセンス
MIT License
コメント
Markdown 対応