• #日記
  • #OAuth
  • #API
  • #Chrome拡張機能
  • #MCP
  • #AutoHotKey
  • #Stream Deck
daily-log

2026年3月26日の開発日記

朝、Claude Codeの許可プロンプトにマウスで応答する往復に嫌気がさしてStreamDeck連携を組み、昼から会計サービスのAPIキーをターミナルに叩き込んだらservices: ["conac"]が返ってきて手が止まった。認証手段を3回乗り換え、Chrome拡張のUIを2回作り直し、公開APIにないエンドポイントをDevToolsで掘り当てた一日。

今日やったこと

1. 会計サービスAPI・OAuth認証の試行錯誤

APIキーで連結会計スコープしか取れず、公式MCPを経由してOAuthトークンを取得、そのトークンでREST APIを直接叩けることを発見した。最終的に自前OAuthアプリを登録し、refresh_token(540日有効)を手に入れた。

主な成果:

  • APIキー → MCP OAuth → 自前OAuthアプリと3段階で認証手段を切り替え
  • 会計サービスAPI (v3) で仕訳の取得・登録・削除に成功
  • refresh_tokenで自動化の土台が整った
  • Chrome拡張 vs APIの速度感比較 → エクスポートはChrome拡張、インポート・削除はAPIに移行

詳細: 会計API・OAuth認証の試行錯誤ログ


2. Chrome拡張エクスポート・インポート機能改善

エクスポートデータの整合性検証関数を3つ追加し、テストを162→200に拡充。一括インポート機能を組み上げ、UIを「使い捨てURL方式」に2回作り直した。

主な成果:

  • validateJournalRow / validateJournalBlock / validateExportData を lib.js に追加
  • 事業者データ一括取得にN/M形式の進捗表示を追加
  • インポートパネルUIを全事業者一覧 + 年度ラジオボタンに再設計
  • 仕訳インポートCSVサンプルフォーマットへのリンクを追加

詳細: Chrome拡張 - エクスポート整合性検証と一括インポート機能


3. 公開APIの棚卸しと自動仕訳ルール戦略

公開APIに未登録明細・連携明細・自動仕訳ルールのエンドポイントが存在しないことを確認。DevToolsで内部APIを掘り当て、ルールをローカルGitで管理する構想をまとめた。

主な成果:

  • 未登録明細 / 連携明細 / 自動仕訳ルール → 公開APIに全て存在しない
  • 内部APIからルール取得可能なエンドポイントを発見
  • 自動仕訳ルールをサービス側に置かずローカルGit管理する方針を決定
  • 仮勘定消し込みフローの構想を策定

詳細: 公開APIの棚卸しと自動仕訳ルール戦略


4. AutoHotKey + StreamDeckによるClaude Codeマルチペイン制御

Claude Codeを4ペインで並行実行する環境で、許可プロンプトへの応答をStreamDeck化した。最初は自動フォーカス方式(AHK + PreToolUseフック)を試したが、WTが2つ開いているとフォーカスの奪い合いが発生して断念。StreamDeck + AHKの半自動方式に転換した。

主な成果:

  • launch-4pane.ps1で4ペイン分割 + PANE_POS環境変数の自動設定
  • claude-approve-pane.ahk: 「CC:」タイトルのWTを特定し指定ペインにEnter送信
  • StreamDeck XLに4ペイン分のbatファイルを登録
  • Chromeを見ながらStreamDeckで許可プロンプトに応答可能に

詳細: AutoHotKey + Stream DeckでClaude Codeマルチペイン制御


5. MCPの価値判断の整理

会計APIの認証試行錯誤を通じて「CLI環境でMCPは必要か?」という問いに答えを出した。ステートフルなプロトコル(CDP等)にはMCPが有利、REST APIには直接叩いた方が柔軟という整理。

詳細: Claude Code CLI環境でMCPは必要か?


今日の試行錯誤

#テーマ試したこと結果気づき
1API認証APIキーでトークン取得失敗conac(連結会計)スコープのみ。確定申告にAPI自体がない
2API認証公式MCP経由でOAuth認証成功トークンは取れるがrefresh_tokenがなく1時間制限
3API認証MCPのトークンで直接REST API成功MCPは薄いラッパー。トークンは共通
4API認証自前OAuthアプリ登録成功refresh_token 540日有効。自動化の土台が整った
5インポートUIURL永続化方式で実装使いづらいURLは毎回変わる。永続化する意味がない
6インポートUI使い捨てURL方式に変更採用プロトタイプを触って初めて気づいた
7スプレッドシート書き込み94件のJSONを1コマンドで送信失敗Windowsコマンドライン長制限(約8,191文字)
8スプレッドシート書き込みバッチ分割で送信成功10〜20件ずつに分割して解決
9内部API調査DevToolsで自動仕訳ルールAPI発見成功JSON/CSV両方で取得可能
10ペイン制御PreToolUseフック+AHKで自動フォーカス失敗WT2つ開くとフォーカス奪い合い
11ペイン制御StreamDeck+AHKの半自動方式成功Chromeから目を離さず許可応答できる

今日の学び

  • クラウド確定申告サービスには公開APIがない。法人向けクラウド会計のみAPIが存在する
  • MCPのOAuthトークンはREST API直叩きに流用できる。MCPはプロトコルの抽象化であり、認証は同一基盤
  • 自前OAuthアプリのrefresh_tokenは540日。MCPの1時間制限を回避できる唯一のルート
  • UIの設計は机上で考え続けるより、プロトタイプを触って壊して作り直す方が正解に速くたどり着く
  • WindowsのCLIでJSON大量データを扱うときは、コマンドライン長制限を常に念頭に置く
  • 全自動(フォーカス奪取)より半自動(StreamDeck)の方が、マルチペイン環境では確実に動く。人間がどのペインに応答するか判断する余地を残す設計が正解

明日やること

  • 自動仕訳ルール取得をChrome拡張に実装し、JSONをリポジトリにコミット
  • インポート機能の実機テスト(実際に仕訳を投入して検証)
  • api-inventory-and-roadmap.md の未実装項目に優先度を付ける

関連記事