ynab-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ynab-mcphow much did I spend on groceries last month?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ynab-mcp
YNAB(You Need A Budget)の家計データをRead-onlyで読み取る個人用MCPサーバー。Claude Desktop / Claude CodeからDaily/Weekly/Monthlyの支出振り返り・計画支援に使う。
書き込み機能は一切なし。詳細な要件・設計は docs/requirements.ja.md / docs/design.ja.md を参照(日本語版が正)。
セットアップ
uv syncYNABのPersonal Access Token(YNAB設定画面で発行)をシェルの環境変数にexportする。リポジトリには一切書き込まない。
# ~/.zshrc 等に追記
export YNAB_API_TOKEN="your-personal-access-token"任意の追加設定(省略可):
環境変数 | 用途 | 既定値 |
| Budgetが複数ある場合の既定budget_id | なし(単一Budgetなら自動解決) |
| プロセス内キャッシュのTTL(秒) | 300 |
| 週の開始曜日(0=月曜) | 0 |
Related MCP server: YNAB MCP Server
動作確認
uv run ruff check .
uv run pytest
uv run python -c "from ynab_mcp.server import mcp" # importスモークテストClaude Codeへの登録
このリポジトリの .mcp.json にプロジェクトスコープで登録済み。ynab_mcp ディレクトリで作業する際、Claude Codeが自動的にサーバーを認識する(初回は承認プロンプトが出る)。
Claude Desktopへの登録
Claude Desktopの設定ファイル(~/Library/Application Support/Claude/claude_desktop_config.json)の mcpServers に以下を追加する。
{
"mcpServers": {
"ynab": {
"command": "uv",
"args": ["run", "--directory", "/path/to/ynab_mcp", "ynab-mcp"],
"env": { "YNAB_API_TOKEN": "${YNAB_API_TOKEN}" }
}
}
}提供するTool
list_budgets— Budget一覧get_categories(budget_id?)— カテゴリと当月のbudgeted/activity/balancelist_transactions(budget_id?, since_date?, until_date?, category_id?, type?)— 取引明細get_period_summary(period, budget_id?, date?)— 期間別の支出実績+月次予算からの按分ペース(参考値)
提供するPrompt
daily_review/weekly_review/monthly_review— 定型の振り返りプロンプト
License
Apache License 2.0. 詳細は LICENSE を参照。
Available Tools
4 toolsget_categoriesC
カテゴリグループとカテゴリ、当月のbudgeted/activity/balanceを返す。
| Name | Required | Description | Default |
|---|---|---|---|
| budget_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It fails to disclose critical behaviors such as what happens when budget_id is null, whether the 'current month' is based on server time, or any authorization or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, but it omits essential details about the parameter and usage. Conciseness is achieved at the cost of completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists, the description lacks necessary context about the input parameter and the meaning of 'current month'. It is insufficient for a user to confidently use the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description does not mention the budget_id parameter at all. Users are left uninformed about the purpose or effect of this optional parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns category groups, categories, and budgeted/activity/balance for the current month, distinguishing it from siblings that return budgets, transactions, or period summaries. However, 'current month' is ambiguous without clarification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like get_period_summary or list_transactions. The description only states what it returns, not the context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_period_summaryB
期間(daily/weekly/monthly)の支出実績と、月次予算からの按分ペース指標を返す。
ペース指標はYNABに存在しない週次/日次予算の代わりの参考値。
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| period | Yes | ||
| budget_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description bears full responsibility for behavioral disclosure. It explains the output (actuals and pace indicator) and the rationale for the pace metric. However, it does not specify whether the tool is read-only, how it calculates the pace, or if it requires a budget_id for the pace calculation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences), front-loaded with the main action (returns actuals and pace indicator), and provides necessary context about the pace indicator. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description partially explains the return structure but lacks specifics (e.g., format of actuals and pace, whether currency amounts or ratios). It also does not clarify how optional parameters like 'date' and 'budget_id' affect the result. Adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% – description does not explain any parameters. Only 'period' is implicitly described via the enum values in the schema and the field list in the description. 'date' and 'budget_id' are not mentioned at all, leaving their semantics unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool returns spending actuals for a period (daily/weekly/monthly) and a pace indicator prorated from the monthly budget. It specifies the valid period values and the purpose of the pace indicator as a substitute for nonexistent budgets. The tool is distinct from siblings which deal with categories, budgets, or transactions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like list_transactions or get_categories. The description implies it aggregates spending for a period, but does not state prerequisites, exclusions, or scenarios where other tools would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_budgetsA
YNABのBudget一覧を返す。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only says 'returns a list', lacking details on side effects, authentication, or rate limits. For a simple read tool, minimal transparency is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence conveying the exact function. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with an output schema, this description is complete. It covers the essential purpose without needing to explain parameters or return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, so baseline is 4. Description adds no param info, but schema coverage is 100% and no further elaboration needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it returns a list of YNAB budgets, with specific verb and resource. Differentiates from sibling tools (get_categories, get_period_summary, list_transactions) by focusing on budgets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use vs alternatives, but the use is implied for listing budgets. Does not mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_transactionsC
取引明細を返す(深掘り用の生データ)。日付は YYYY-MM-DD 形式。
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| budget_id | No | ||
| since_date | No | ||
| until_date | No | ||
| category_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only mentions returning raw data and date format, but does not state that it is a read-only operation, whether it lists all transactions or filters, or any side effects. The 'raw data for deep dive' hint is useful but insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (2 sentences), which is concise but lacks necessary detail. It is front-loaded with the main purpose but misses parameter descriptions. Conciseness at the expense of completeness is not ideal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 5 parameters with no schema descriptions and minimal description coverage. Although there is an output schema, the description is too sparse to be complete. Important context such as required filters, pagination, or limits is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter meaning. It only mentions date format for the date parameters but does not describe type, budget_id, since_date, until_date, or category_id. No parameter semantics are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns transaction details for deep dive analysis, and the sibling tools are distinct (categories, budgets, period summary), so purpose is clear. However, it does not explicitly use a specific verb like 'list' but 'returns' is acceptable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. No mention of prerequisites or context. The description does not specify that this is for getting raw data, but doesn't explain when to use it vs other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v0.1.0- First observed
get_categories - First observed
get_period_summary - First observed
list_budgets - First observed
list_transactions
TDQS
Scored across 4 tools
Each tool targets a distinct aspect: categories, period summaries, budgets list, and transactions. There is no overlap or ambiguity.
All tool names follow a clear verb_noun pattern: get_categories, get_period_summary, list_budgets, list_transactions. The verbs 'get' and 'list' are semantically appropriate and consistent with each other.
With only 4 tools, the server feels thin for the domain of personal budgeting, which typically requires CRUD operations and more read views (accounts, payees, etc.). However, it's not critically underpowered, just minimal.
The server is entirely read-only, missing essential mutation tools (create/update/delete for budgets, categories, transactions). Even among reads, there are no tools for accounts, payees, or detailed budget month data beyond categories. This will leave agents unable to perform many common YNAB tasks.
Maintenance
Related MCP Connectors
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Hosted remote MCP server for YNAB on Cloudflare Workers with OAuth
Query your real net worth, spending, transactions, budgets and portfolio from any MCP client.
The Ramp MCP server enables users to securely connect Ramp with AI assistants like ChatGPT and Claude to query financial data and take actions using natural language. It transforms Ramp's developer API into a SQL interface that LLMs can query, allowing admins to analyze spend trends, identify cost savings, and run complex SQL analyses on comprehensive datasets (transactions, purchase orders, vendors, users), while all users can manage cards, view transactions, request reimbursements, and get expense policy answers.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server for interacting with YNAB (You Need A Budget). Provides tools for accessing budget data through MCP-enabled clients like Claude Desktop.4MIT
- AlicenseAqualityDmaintenanceA minimal and auditable MCP server that enables local AI assistants to read and manage YNAB budget data. It supports operations like listing accounts, tracking transactions, and moving money between categories while maintaining user privacy.9MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that connects AI assistants to YNAB budgets, enabling natural language queries about finances backed by full API coverage and built-in YNAB methodology knowledge.1MIT
- FlicenseBqualityDmaintenanceA personal MCP server that gives Claude native access to YNAB budget data.46-