robcerda/monarch-mcp-server

MCP Server for use with Monarch Money

Monarch Money MCP Server

概要 – Monarch Moneyの個人財務APIと通信し、そのデータをModel Context Protocol(MCP)を通じて公開する、小さなPythonサーバーです。MCPは、Claude Desktop、Claude Codeなど、Anthropic系のAIエージェントが外部ツールを呼び出す際の標準的な方法です。このサーバーを実行すると、AIがMonarchのアカウント、取引、予算、タグなどを読み取り・変更できるようになります。

注目すべき点 – Claudeをパーソナルアシスタント(例:Claude Desktop、Claude Code、Meta Muse)として使用していて、銀行や予算データへの直接的なプログラムアクセスを希望する場合、このサーバーが橋渡し役となります。Monarchの複雑なMFA/ログインフローを処理し、AIが呼び出せる明確なコマンドセットを提供します。


主な機能(READMEに記載)

  • アカウント管理 – アカウント、保有資産の一覧表示、更新のトリガー。
  • 取引CRUD – 取得、作成、更新、削除、一括カテゴリ分類、タグ付け、確認済みマーク。
  • カテゴリとタグの処理 – カテゴリ、グループ、タグの一覧表示、新しいタグの作成。
  • 検索とフィルタ – 日付、金額、店舗名、タグなどによる強力な取引検索。
  • 定期予測と同期済み請求書 – 今後の定期支払いと負債請求書の詳細を表示。
  • ルールエンジン – 自動カテゴリ分類ルールの一覧表示、作成、更新、削除。
  • 複数のトランスポートオプション – 標準のstdioベースのツールとして実行(デフォルト)、またはStreamable-HTTPエンドポイント(/mcp)を公開。
  • コンテナサポート – Astralのuv/Python 3.12スリムをベースにしたDockerイメージで、認証済みセッション用の永続ボリュームを備えています。
  • 統合ノート – Claude Desktop/Code、Meta Muse、およびMCP互換のクライアントで動作します。

クイックスタート(ローカル)

  1. クローンとインストール
    git clone https://github.com/robcerda/monarch-mcp-server.git
    cd monarch-mcp-server
    uv sync --locked   # または pip install -r requirements-lock.txt && pip install -e .
    
  2. Claudeクライアントを設定 – mcpServersエントリを追加し、uv run … monarch-mcp-serverコマンドを指定します(パスはmacOSとWindowsで異なります。正確なJSONはREADMEを参照)。
  3. 一度だけ認証
    uv run python login_setup.py   # または python login_setup.py
    
    スクリプトでは以下のことが可能です:
    • ブラウザのセッションCookieを貼り付ける(推奨 – Cloudflare CAPTCHAを回避)。
    • メールアドレス/パスワード+MFAでログイン。
    • レガシートークンを使用(保持している場合)。 生成されたセッショントークンはOSのキーリング(またはDockerコンテナ内のファイル)に保存されます。
  4. Claudeを再起動 – AIが新しい「Monarch Money」ツールを認識し、get_accounts、get_transactionsなどのコマンドを利用できるようになります。

コンテナデプロイメント

  • ビルド: docker build -t monarch-mcp-server .
  • 認証(一度だけ)永続ボリュームを使用:
    docker run --rm -it -v monarch-session:/home/app/.monarch-mcp-server \
        monarch-mcp-server python login_setup.py
    
  • サーバーを実行(HTTPモード、デフォルトは読み取り専用):
    docker run -d --name monarch-mcp \
        -p 127.0.0.1:8000:8000 \
        -v monarch-session:/home/app/.monarch-mcp-server \
        monarch-mcp-server
    
    クライアントはhttp://127.0.0.1:8000/mcpに接続します。
  • 書き込みを有効にする(公開すると危険):-e MONARCH_MCP_READ_ONLY=0を追加。
  • セキュリティのヒント – セッションボリュームにはLinuxコンテナ上で暗号化されていないMonarchトークンが保存されます。ボリュームを機密として扱い、使用後は削除してください。

セキュリティと運用上の注意

  • 単一アカウントサーバー – 接続されたすべてのクライアントが同じMonarchセッションを共有します。認証付きリバースプロキシの背後に置かない限り、HTTPエンドポイントを公開しないでください。
  • ホスト/オリジンチェック – MONARCH_MCP_ALLOWED_HOSTSを使用して特定のHostヘッダーにサーバーを制限し、DNSリバインディング攻撃を軽減できます。
  • 読み取り専用デフォルト – Dockerイメージは読み取り専用モードで実行されます。変更コマンド(ログイン/ログアウトを含む)はMONARCH_MCP_READ_ONLY=0のときのみ登録されます。
  • 資格情報の保存 – ローカルインストールではセッションはOSのキーリングに保存されます。Dockerではプレーンファイルにフォールバックします(WindowsではDPAPIで暗号化されるのみ)。ボリュームは非公開に保ってください。
  • MFA処理 – ログインスクリプトはTOTPコードをサポートしており、Monarchが要求した場合は確認コードの入力を求めます。

対象ユーザー

  • Claudeのパワーユーザー – AIアシスタントに予算管理、支出のカテゴリ分類、オンデマンドでの取引データ取得をさせたい方。
  • カスタムAIエージェントを開発する方 – 個人財務データのための信頼性の高いMCP互換エンドポイントが必要な方。
  • コマンドライン/Dockerの基礎知識がある方 – 上記のセキュリティモデルを信頼できる方。

結論 – Monarch Money MCP Serverは、Claude系AIエージェントが標準プロトコルを介してMonarchの財務データと対話できるようにするための専用ブリッジであり、ローカルおよびコンテナ化されたデプロイオプションと、認証とセキュリティに関する明確なガイダンスを提供します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト