mcpField
Y
ynab-mcpb

ynab-mcpb

ローカル
github.com/dizzlkheinz金融データ91 日前に更新

ynab-mcpb について

ynab-mcpbは、自然言語で予算を管理する人向けに、YNABとMCPクライアントをつなぐローカル実行型のMCPサーバーです。レシート分割、銀行明細の照合、支出分析を提供し、書き込みは既定でプレビュー確認を求めます。

主な機能

  1. 01税額を配分したレシート明細分割
  2. 02銀行CSVの照合と一括修正
  3. 03予算管理用の35ツール
  4. 04書き込み時の厳密な確認
  5. 05ツールプロファイルと読み取り形式の選択

活用シーン

  1. 01レシートをカテゴリ別の分割取引に変換
  2. 02銀行CSVから未記録や不一致の取引を特定
  3. 03指定期間の支出を確認
  4. 04予定済みの請求とキャッシュフローを確認

MCP 対応

MCPサーバーはYNAB APIを通じて、予算、口座、取引、予定取引、分析のツールをMCPクライアントに公開します。ローカルで動作し、ツールプロファイル、構造化出力、リソーステンプレートに対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"dizzlkheinz-ynab-mcpb": {
"command": "npx",
"args": [
"-y",
"@dizzlkheinz/ynab-mcpb"
],
"env": {
"YNAB_ACCESS_TOKEN": "<YNAB_ACCESS_TOKEN>",
"YNAB_MCP_WRITE_MODE": "<YNAB_MCP_WRITE_MODE>",
"YNAB_MCP_TOOL_PROFILE": "<YNAB_MCP_TOOL_PROFILE>"
}
}
}
}
起動コマンドnpx -y @dizzlkheinz/ynab-mcpb
設定が必要な環境変数
YNAB_ACCESS_TOKENシークレットYNAB Personal Access Token from https://app.youneedabudget.com/settings/developer
YNAB_MCP_WRITE_MODEWrite policy: read-only, preview (default), or enabled
YNAB_MCP_TOOL_PROFILEStatic tool profile: core, read-only, or full (default)

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@dizzlkheinz/ynab-mcpb0.31.0

ツール

35

掲載時のツール一覧 · 1 日前に更新

パラメーター型必須説明
response_formatenumいいえjson | markdown

詳細

YNAB MCP サーバー

YNAB をあらゆる AI アシスタントに接続できます。予算を自然な英語で管理できます。

MCPB をダウンロード npm ライセンス:AGPL v3 Node.js


デモ

レシート明細化のデモ
レシートを貼り付ける → 数秒で明細ごとに分割された取引が完成

できること

ワークフロープロンプトの例
レシートの分割"このレシートの分割取引を作成し、税額を割り当ててください。"
銀行口座の照合"この CSV を使って当座預金口座を照合してください。"
支出分析"今月、テイクアウトにいくら使いましたか?"
予定されているキャッシュフロー"今月支払期限を迎える予定の請求と収入は何ですか?"
取引の作成"昨日、Trader Joe's で 42.18 ドルの取引を作成してください。"
月間の概要"1 月の予算概要を表示してください。"

仕組み

graph LR
    U(You) -->|Plain English| C[Claude Desktop<br/>or any MCP client]
    C -->|MCP protocol| S[YNAB MCP Server<br/>35 tools]
    S -->|YNAB API| Y[(Your Budget)]

    style S fill:#2563EB,color:#fff,stroke:#1d4ed8
    style Y fill:#16a34a,color:#fff,stroke:#15803d
    style C fill:#7c3aed,color:#fff,stroke:#6d28d9

特長

  • レシートの明細化 — レシートを貼り付けると、明細項目ごとに税額が自動配分された分割取引を作成できます。
  • 銀行口座の照合(ベータ版) — 銀行の CSV をインポートし、YNAB の取引とあいまい一致で照合して、不足または不一致の取引を検出し、一括修正できます。
  • 35 個の YNAB ツール — 予定取引と決定論的な期間分析を含む、幅広い機能を利用できます。
  • 書き込みはデフォルトで安全 — プレビューモードでは、検証済みのリクエストそのものにひも付けられた、短時間のみ有効な一度限りの確認が必要です。
  • 小規模なツールプロファイル — 起動時に core、read-only、full を選択できます。動的な登録は行いません。
  • 差分同期 — 前回のリクエスト以降に変更されたデータのみを取得するため、高速に動作します。
  • Markdown または JSON — すべての読み取りツールで response_format を利用でき、人間が読みやすい Markdown テーブル(デフォルト)または構造化 JSON を選択できます。
  • MCP ネイティブ — 構造化出力、アノテーション、補完 API、リソーステンプレートに対応しています。

照合の仕組み

ワークフロー図を表示
sequenceDiagram
    participant You
    participant Claude
    participant MCP as YNAB MCP Server
    participant YNAB

    You->>Claude: "Reconcile my checking<br/>with this CSV"
    Claude->>MCP: reconcile_account(csv_data)
    MCP->>YNAB: Fetch transactions
    YNAB-->>MCP: YNAB transactions
    MCP->>MCP: Parse CSV<br/>Fuzzy-match payees & dates<br/>Detect missing / mismatched
    MCP-->>Claude: Matches + recommendations
    Claude->>You: "Found 47 matches, 3 missing.<br/>Apply changes?"
    You->>Claude: "Yes"
    Claude->>MCP: Apply recommended changes
    MCP->>YNAB: Create / update transactions
    MCP-->>Claude: Done
    Claude->>You: "3 transactions created,<br/>account reconciled."

セットアップ(2 分)

1 — YNAB トークンを取得する
  1. YNAB Web アプリを開きます
  2. アカウント設定 → 開発者設定 → 新しいトークンに移動します
  3. トークンをコピーします(表示されるのは一度だけです)
2 — インストールする
Claude Desktop — MCPB ファイル(推奨)
  1. リリースから最新の .mcpb をダウンロードします
  2. Claude Desktop にドラッグします
  3. 求められたら YNAB_ACCESS_TOKEN を入力します
  4. Claude Desktop を再起動します
Claude Desktop — npx

Claude Desktop の設定に追加します。

{
  "mcpServers": {
    "ynab": {
      "command": "npx",
      "args": ["-y", "@dizzlkheinz/ynab-mcpb@latest"],
      "env": {
        "YNAB_ACCESS_TOKEN": "your-token-here"
      }
    }
  }
}
Cline(VS Code)
{
  "mcpServers": {
    "ynab": {
      "command": "npx",
      "args": ["-y", "@dizzlkheinz/ynab-mcpb@latest"],
      "env": {
        "YNAB_ACCESS_TOKEN": "your-token-here"
      }
    }
  }
}
Codex
[mcp_servers.ynab-mcpb]
command = "npx"
args = ["-y", "@dizzlkheinz/ynab-mcpb@latest"]
env = {"YNAB_ACCESS_TOKEN" = "your-token-here"}
startup_timeout_sec = 120
その他の MCP クライアント
  • コマンド: npx
  • 引数: ["-y", "@dizzlkheinz/ynab-mcpb@latest"]
  • 環境変数: YNAB_ACCESS_TOKEN=<your token>
3 — 次のプロンプトを試す
List my budgets and set the default to my main budget.
Show recent transactions in my checking account.
How much did I spend on groceries in the last 30 days?
Create a transaction: $42.18 at Trader Joe's yesterday.

ツール(35)

カテゴリ別にすべてのツールを表示
カテゴリツール
予算list_budgets get_budget get_default_budget set_default_budget
アカウントlist_accounts get_account create_account
取引list_transactions get_transaction create_transaction create_transactions update_transaction update_transactions delete_transaction export_transactions compare_transactions create_receipt_split_transaction
カテゴリlist_categories get_category update_category
受取人list_payees get_payee
月list_months get_month
照合reconcile_account
定期取引list_scheduled_transactions get_scheduled_transaction create_scheduled_transaction update_scheduled_transaction delete_scheduled_transaction
分析analyze_spending compare_spending_periods
ユーティリティget_user diagnostic_info clear_cache

すべての読み取りツールは response_format("markdown" または "json"、既定値:"markdown")を受け付けます。

完全なリファレンス:docs/reference/API.md


設定

変数既定値説明
YNAB_ACCESS_TOKEN—必須。 YNAB の個人用アクセストークンです。
YNAB_EXPORT_PATH~/Downloadsエクスポートした取引ファイルの保存先ディレクトリです。
YNAB_MCP_ENABLE_DELTAfalse差分同期(変更されたデータのみ取得)を有効にするには、true に設定します。値は true または false のいずれかである必要があります。
YNAB_MCP_WRITE_MODEpreviewread-only は YNAB の変更操作を非表示にします。preview は正確な確認を要求します。enabled は直接書き込みを許可します。
YNAB_MCP_TOOL_PROFILEfull起動時に公開するツール群として、core、read-only、full のいずれかを指定します。
YNAB_MCP_CACHE_DEFAULT_TTL_MS300000キャッシュの TTL(ミリ秒、5 分)です。
YNAB_MCP_CACHE_MAX_ENTRIES1000LRU による削除が始まるまでのキャッシュエントリの最大数です。

すべてのオプションについては .env.example を参照してください。

書き込みモードと互換性

preview は保守的な既定値です。変更操作の呼び出しでは、まず既存の dry_run 処理を実行し、確認トークンを返します。このトークンは 2 分後に期限切れとなり、一度だけ使用でき、同じ正規ツール名と検証済み引数に対してのみ有効です。read-only では、YNAB の変更操作ツールは登録されません。enabled は、明示的にオプトインしたユーザー向けに、安全対策導入前の直接書き込み動作を維持します。

取引金額には、amount_decimal(例:-12.34)または明示的な生データフィールド amount_milliunits(-12340)が優先して使用されるようになりました。カテゴリへの割り当て額には、budgeted_decimal または budgeted_milliunits が優先して使用されます。旧来の amount と budgeted フィールドも、後方互換性のため、非推奨のミリ単位エイリアスとして引き続き受け付けられます。これらの意味を推測することはありません。

ツールプロファイル

プロファイルはサーバー起動時に一度だけ選択されるため、クライアントが受け取る tools/list の応答は安定しています。

  • core には、一般的な読み取り、取引の安全なワークフロー、照合、レシートの分割、定期取引の確認、支出分析が含まれます。
  • read-only では、読み取り専用と明示的に注釈されたすべてのツールを公開します。
  • full では、選択した書き込みモードに従い、35 個のツールすべてを公開します。

プライバシーと信頼

  • サーバープロセスはローカルで実行され、YNAB の API を介して YNAB と通信します。
  • YNAB の個人用アクセストークンは機密情報です。MCP クライアントのシークレット設定に保存し、会話、issue、フィクスチャ、ログには決して貼り付けないでください。
  • ツールが返し、会話に含まれる財務データは、MCP クライアントで選択した AI プロバイダーによって処理される場合があります。機密情報を共有する前に、そのプロバイダーのデータ管理設定を確認してください。
  • トランザクションのエクスポートファイルはローカルディスクの YNAB_EXPORT_PATH(またはプラットフォームのデフォルトの場所)に保存されます。サーバーがエクスポートファイルを他の場所へアップロードすることはありません。
  • YNAB への書き込みを行わない場合は read-only、リクエストの内容を正確に確認する場合は preview、直接書き込むことが意図的な互換性上の選択である場合にのみ enabled を使用してください。
  • この独立したオープンソースプロジェクトは、YNAB とは提携しておらず、YNAB の推奨を受けているものでもありません。

トラブルシューティング

症状対処方法
npx が失敗するNode.js 24 以降をインストールしてから、MCP クライアントを再起動してください。
認証エラーが発生するYNAB トークンを再生成し、YNAB_ACCESS_TOKEN を更新してください。
ツールが検出されない設定を変更した後は、MCP クライアントを再起動してください。
照合で問題が発生する匿名化した CSV のサンプルを添えて、issue を作成してください。

開発者向け

git clone https://github.com/dizzlkheinz/ynab-mcpb.git
cd ynab-mcpb
npm ci --ignore-scripts
npm run build
npm test
npm run test:integration

ビルドとオフラインテストに YNAB の認証情報は必要ありません。npm test はユニットテストとパフォーマンステストを実行します。test:integration はモックを使用した統合テストを実行します。テスト一式、カバレッジ、ウォッチモードには、それぞれ test:all、test:coverage、test:watch を使用してください。たとえば npm run test:integration -- transactionTools のように、ファイル名やテスト名のフィルターを直接渡せます。

サーバーをローカルで起動するには、.env.example を .env にコピーし、トークンを追加してから npm start を実行してください。実環境でのスモークテストには、明示的に RUN_LIVE_YNAB_TESTS=true を設定する必要があります。テストは npm run test:live で実行します。SKIP_E2E_TESTS=true を設定すると、テストは無効になります。

ビルドでは、グローバルツールのパッケージ化やインストールは行われません。Claude Desktop バンドルを作成するには、公式 CLI を一度インストールしてから(npm install --global @anthropic-ai/mcpb)、npm run build と npm run package:mcpb を実行してください。npm pack --dry-run --ignore-scripts で npm パッケージの内容を確認してください。

アーキテクチャとコントリビューター向けガイダンス:CLAUDE.md

照合アーキテクチャ:docs/technical/reconciliation-system-architecture.md


コントリビューション

バグ報告や、CSV のエッジケースを再現できる事例を歓迎します。特に銀行口座の照合に関する報告をお待ちしています。 issue を作成

PR も歓迎します。提出前に npm test と npm run lint を実行してください。


ライセンス

AGPL-3.0

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。