Skip to main content
Glama
calebl

YNAB MCP Server

by calebl

ynab-mcp-server

A Model Context Protocol (MCP) server built with mcp-framework. This MCP provides tools for interacting with your YNAB budgets setup at https://ynab.com

In order to have an AI interact with this tool, you will need to get your Personal Access Token from YNAB: https://api.ynab.com/#personal-access-tokens. When adding this MCP server to any client, you will need to provide your personal access token as YNAB_API_TOKEN. This token is never directly sent to the LLM. It is stored privately in an environment variable for use with the YNAB api.

Setup

Specify env variables:

  • YNAB_API_TOKEN (required)

  • YNAB_BUDGET_ID (optional)

Related MCP server: ynab-mcp

Goal

The goal of the project is to be able to interact with my YNAB budget via an AI conversation. There are a few primary workflows I want to enable:

Workflows:

First time setup

  • be prompted to select your budget from your available budgets. If you try to use another tool first, this prompt should happen asking you to set your default budget.

    • Tools needed: ListBudgets

Manage overspent categories

Adding new transactions

Approving transactions

Check total monthly spending vs total income

Auto-distribute ready to assign funds based on category targets

Current state

Available tools:

  • ListBudgets - lists available budgets on your account

  • BudgetSummary - provides a summary of categories that are underfunded and accounts that are low

  • GetUnapprovedTransactions - retrieve all unapproved transactions

  • CreateTransaction - creates a transaction for a specified budget and account.

    • example prompt: Add a transaction to my Ally account for $3.98 I spent at REI today

    • requires GetBudget to be called first so we know the account id

  • ApproveTransaction - approves an existing transaction in your YNAB budget

    • requires a transaction ID to approve

    • can be used in conjunction with GetUnapprovedTransactions to approve pending transactions

    • After calling get unapproved transactions, prompt: approve the transaction for $6.95 on the Apple Card

Next:

  • be able to approve multiple transactions with 1 call

  • updateCategory tool - or updateTransaction more general tool if I can get optional parameters to work correctly with zod & mcp framework

  • move off of mcp framework to use the model context protocol sdk directly?

Quick Start

# Install dependencies
npm install

# Build the project
npm run build

Project Structure

ynab-mcp-server/
├── src/
│   ├── tools/        # MCP Tools
│   └── index.ts      # Server entry point
├── .cursor/
│   └── rules/        # Cursor AI rules for code generation
├── package.json
└── tsconfig.json

Adding Components

The YNAB sdk describes the available api endpoints: https://github.com/ynab/ynab-sdk-js.

YNAB open api specification is here: https://api.ynab.com/papi/open_api_spec.yaml. This can be used to prompt an AI to generate a new tool. Example prompt for Cursor Agent:

create a new tool based on the readme and this openapi doc: https://api.ynab.com/papi/open_api_spec.yaml

The new tool should get the details for a single budget

You can add more tools using the CLI:

# Add a new tool
mcp add tool my-tool

# Example tools you might create:
mcp add tool data-processor
mcp add tool api-client
mcp add tool file-handler

Tool Development

Example tool structure:

import { MCPTool } from "mcp-framework";
import { z } from "zod";

interface MyToolInput {
  message: string;
}

class MyTool extends MCPTool<MyToolInput> {
  name = "my_tool";
  description = "Describes what your tool does";

  schema = {
    message: {
      type: z.string(),
      description: "Description of this input parameter",
    },
  };

  async execute(input: MyToolInput) {
    // Your tool logic here
    return `Processed: ${input.message}`;
  }
}

export default MyTool;

Publishing to npm

  1. Update your package.json:

    • Ensure name is unique and follows npm naming conventions

    • Set appropriate version

    • Add description, author, license, etc.

    • Check bin points to the correct entry file

  2. Build and test locally:

    npm run build
    npm link
    ynab-mcp-server  # Test your CLI locally
  3. Login to npm (create account if necessary):

    npm login
  4. Publish your package:

    npm publish

After publishing, users can add it to their claude desktop client (read below) or run it with npx

Using with Claude Desktop

Installing via Smithery

To install YNAB Budget Assistant for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @calebl/ynab-mcp-server --client claude

Local Development

Add this configuration to your Claude Desktop config file:

MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "ynab-mcp-server": {
      "command": "node",
      "args":["/absolute/path/to/ynab-mcp-server/dist/index.js"]
    }
  }
}

After Publishing

Add this configuration to your Claude Desktop config file:

MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "ynab-mcp-server": {
      "command": "npx",
      "args": ["ynab-mcp-server"]
    }
  }
}

Other MCP Clients

Check https://modelcontextprotocol.io/clients for other available clients.

Building and Testing

  1. Make changes to your tools

  2. Run npm run build to compile

  3. The server will automatically load your tools on startup

Learn More

Available Tools

16 tools
ynab_approve_transactionApprove TransactionB

Approves an existing transaction in your YNAB budget.

ParametersJSON Schema
NameRequiredDescriptionDefault
budgetIdNoThe id of the budget containing the transaction (optional, defaults to the budget set in the YNAB_BUDGET_ID environment variable)
transactionIdYesThe id of the transaction to approve
approvedNoWhether the transaction should be marked as approved

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description only states 'Approves' without detailing mutation behavior, required permissions, or effects on already-approved transactions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence is concise and front-loaded, but could include slightly more context without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Sufficient for a simple action, but given sibling tools and no output schema, more detail on scope (single vs bulk) and parameter use would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameter descriptions; tool description adds no extra meaning beyond what is already in the schema, so baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Approves' and resource 'existing transaction', distinguishing it from siblings like ynab_bulk_approve_transactions and ynab_create_transaction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies single-transaction approval but does not explicitly guide when to use this tool over the bulk alternative or mention prerequisites like transaction existing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ynab_budget_summaryBudget SummaryA

Get a summary of the budget for a specific month highlighting overspent categories that need attention and categories with a positive balance that are doing well.

ParametersJSON Schema
NameRequiredDescriptionDefault
budgetIdNoThe ID of the budget to get a summary for (optional, defaults to the budget set in the YNAB_BUDGET_ID environment variable)
monthNoThe budget month in ISO format (e.g. 2016-12-01). The string 'current' can also be used to specify the current calendar month (UTC)current

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It describes what the tool does (get summary) but does not explicitly state that it is read-only, nor does it disclose any behavioral traits like authentication needs, rate limits, or side effects. The term 'summary' suggests a read operation, but this is not confirmed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that clearly conveys the purpose without redundancy. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema, the description should ideally hint at the return structure. It mentions 'highlighting overspent categories and positive balance categories', which provides some completeness, but lacks specifics on whether the summary is a text report, a list of categories, or a data object. For a tool with only 2 parameters and no annotations, this is adequate but not thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each parameter has a description. The tool description adds context that the summary is for a specific month, which aligns with the month parameter, but does not add semantic detail beyond the schema for budgetId (defaulting to env var) or month format. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get a summary of the budget for a specific month' with a specific verb and resource. It distinguishes from sibling tools by focusing on a consolidated summary highlighting overspent and positive categories, not listing transactions or accounts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for a monthly overview with overspent/positive categories but does not explicitly state when to use this tool versus alternatives like ynab_list_categories or ynab_get_transactions. No when-not or alternative guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ynab_bulk_approve_transactionsBulk Approve TransactionsA

Approves multiple transactions at once. Provide an array of transaction IDs to approve them all in a single API call.

ParametersJSON Schema
NameRequiredDescriptionDefault
budgetIdNoThe ID of the budget (optional, defaults to YNAB_BUDGET_ID environment variable)
transactionIdsYesArray of transaction IDs to approve

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It merely states 'Approves' without disclosing side effects, permission requirements, rate limits, or error handling. For a mutation operation, this 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two short sentences, no fluff, and the key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the basic function but lacks details on expected behavior (e.g., partial success, idempotency, response structure). Given the simplicity, it is minimally adequate but could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters. The description adds no new meaning beyond restating the need for transaction IDs, which is already in the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the verb 'Approves' and the resource 'multiple transactions', clearly differentiating from the sibling tool 'ynab_approve_transaction' which handles single transactions. The phrase 'at once' and 'bulk' reinforce the batch nature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for approving multiple transactions in one call but does not explicitly state when to use versus calling the single-approve tool multiple times. No when-not scenarios or alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ynab_create_transactionCreate TransactionB

Creates a new transaction in your YNAB budget. Either payeeId or payeeName must be provided in addition to the other required fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
budgetIdNoThe id of the budget to create the transaction in (optional, defaults to the budget set in the YNAB_BUDGET_ID environment variable)
accountIdYesThe id of the account to create the transaction in
dateYesThe date of the transaction in ISO format (e.g. 2024-03-24)
amountYesThe amount in dollars (e.g. 10.99)
payeeIdNoThe id of the payee (optional if payeeName is provided)
payeeNameNoThe name of the payee (optional if payeeId is provided)
categoryIdNoThe category id for the transaction (optional)
memoNoA memo/note for the transaction (optional)
clearedNoWhether the transaction is cleared (optional, defaults to false)
approvedNoWhether the transaction is approved (optional, defaults to false)
flagColorNoThe transaction flag color (red, orange, yellow, green, blue, purple) (optional)

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Fails to mention side effects (budget balance changes), idempotency, rate limits, or error conditions. Minimal disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no redundancy, conveys essential function and a key constraint efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, description omits response details. For 11 parameters, lacks guidance on default behavior for optional fields or error handling. Incomplete for a creation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with good descriptions. Description adds value by clarifying mutual exclusivity of payeeId/payeeName, which is not evident from schema. Baseline 3 + 1 for this insight.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'creates' with resource 'new transaction in YNAB budget'. Distinct from siblings like get, delete, import. Constraint on payee fields adds specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this vs alternatives (e.g., import, update). Does not mention prerequisites or context for creation. Only mentions a constraint but no usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ynab_delete_transactionDelete TransactionA

Deletes a transaction from the budget. This action cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
budgetIdNoThe ID of the budget (optional, defaults to YNAB_BUDGET_ID environment variable)
transactionIdYesThe ID of the transaction to delete

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description notes that the action cannot be undone, which is a critical behavioral trait. However, with no annotations present, it fails to disclose other potential behaviors such as permissions required, effects on related entities, or error conditions like attempting to delete a deleted transaction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences: the first states the primary action, and the second adds a critical warning. Every word earns its place, and key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (delete a transaction) and the lack of an output schema, the description covers the core action and an important behavioral warning. However, it could be more complete by indicating what the response looks like (e.g., success confirmation) or any constraints on the transaction status.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides full parameter descriptions (100% coverage). The description adds no additional meaning beyond the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (delete) and the resource (transaction). It distinguishes this tool from siblings like ynab_create_transaction or ynab_update_transaction by specifying deletion, making it easy for an agent to select the correct tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any guidance on when to use this tool versus alternatives or any prerequisites. For example, it doesn't explain that transactions might need to be unapproved before deletion, nor does it mention appropriate context for deletion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ynab_get_transactionsGet TransactionsB

Gets transactions from a budget with optional filters. Can filter by date range, account, category, payee, or approval status.

ParametersJSON Schema
NameRequiredDescriptionDefault
budgetIdNoThe ID of the budget (optional, defaults to YNAB_BUDGET_ID environment variable)
sinceDateNoOnly return transactions on or after this date (ISO format: 2024-01-01)
typeNoFilter by transaction type. Defaults to 'all'.
accountIdNoFilter to only transactions in this account
categoryIdNoFilter to only transactions in this category
payeeIdNoFilter to only transactions with this payee
limitNoMaximum number of transactions to return (default: 100)

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It correctly implies a read operation ('Gets'), but does not disclose response structure, pagination behavior, or the default limit of 100 transactions (though the schema includes a limit parameter). No hidden behaviors are suggested.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently conveys purpose and key filters. It is front-loaded and contains no extraneous words, though it could be slightly more structured with bullet points.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description adequately covers the main filters but omits mention of the optional budgetId defaulting to an environment variable and does not explicitly state the tool is read-only. Given the absence of output schema and annotations, a slightly more complete description would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the description adds limited value beyond summarizing filter capabilities (date range, account, category, payee, approval status). It does not improve on schema details significantly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'Gets transactions from a budget' and lists optional filters, distinguishing it from creation/deletion siblings. However, it does not distinguish from the more specific sibling 'ynab_get_unapproved_transactions', which could cause ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions optional filters but offers no guidance on when to use this tool versus the sibling 'ynab_get_unapproved_transactions' or other transaction tools. No explicit when-not or alternative suggestions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ynab_get_unapproved_transactionsGet Unapproved TransactionsA

Gets unapproved transactions from a budget. First time pulls last 3 days, subsequent pulls use server knowledge to get only changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
budgetIdNoThe ID of the budget to fetch transactions for (optional, defaults to the budget set in the YNAB_BUDGET_ID environment variable)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses key behavioral traits: first call fetches last 3 days, subsequent calls use server knowledge for incremental updates. This is helpful, but it omits other traits like read-only nature, authorization requirements, or rate limits. The provided information is decent but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no wasted words. It front-loads the core action and efficiently adds operational detail. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description fails to mention output format, pagination, or any return structure. There is no output schema, so the description must compensate. For a simple fetch tool, the absence of output details makes it incomplete for an agent to fully understand what the tool returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage for the single optional parameter, with a clear description of its default behavior. The description does not add any additional meaning beyond what the schema already provides. Thus baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('gets'), the resource ('unapproved transactions'), and the context ('from a budget'). It distinguishes from sibling tools like 'ynab_get_transactions' by specifying 'unapproved'. The addition of first-time vs. subsequent behavior further clarifies its scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for unapproved transactions via the first sentence, but it does not explicitly state when to use this tool versus alternatives like 'ynab_get_transactions'. It gives operational guidance on first-time vs. subsequent calls but lacks explicit 'when-not-to-use' or comparison to siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ynab_import_transactionsImport TransactionsA

Imports available transactions on all linked accounts for the budget. This triggers an import from connected financial institutions (equivalent to clicking 'Import' in the YNAB app).

ParametersJSON Schema
NameRequiredDescriptionDefault
budgetIdNoThe ID of the budget (optional, defaults to YNAB_BUDGET_ID environment variable)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that it triggers network import from financial institutions, implying potential latency and side effects. No mention of error handling, idempotency, or success/failure responses. With no annotations, description should be more thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, action first, no filler. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given single optional param and no output schema, description adequately conveys purpose and behavior. Missing details on return behavior and error states, but sufficient for common use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with descriptions. The description reinforces 'all linked accounts for the budget' but adds no new semantic detail beyond schema. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb 'Imports' and resource 'transactions on all linked accounts for the budget'. Distinguishes from sibling tools like create, delete, get, etc. by explicitly mentioning automated import from financial institutions, making it unique.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides context by comparing to 'Import' button in YNAB app, implying it's for syncing from banks. Lacks explicit exclusions or when to prefer alternatives like create_transaction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ynab_list_accountsList AccountsA

Lists all accounts in a budget. Useful for finding account IDs when creating transactions.

ParametersJSON Schema
NameRequiredDescriptionDefault
budgetIdNoThe ID of the budget (optional, defaults to YNAB_BUDGET_ID environment variable)
includeClosedAccountsNoInclude closed accounts in the list (default: false)

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It does not disclose behavioral traits beyond listing accounts, such as read-only nature, rate limits, or sorting behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is concise and includes a practical hint, but lacks structured formatting for quick scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no output schema, the description provides the basic purpose and a use case, but does not mention response details, pagination, or filtering, which may be expected.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters, so description adds minimal extra meaning beyond stating the default for budgetId, which is already documented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Lists all accounts in a budget' and provides a specific use case ('finding account IDs when creating transactions'), distinguishing it from sibling tools like ynab_list_budgets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by noting it's 'useful for finding account IDs when creating transactions', but does not explicitly state when not to use it or compare to alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ynab_list_budgetsList BudgetsB

Lists all available budgets from YNAB API

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It only states 'lists budgets' but does not disclose whether the operation is read-only, whether authentication is required, or any pagination or filtering behavior. For a simple list, the lack of explicit transparency is a gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single 8-word sentence, extremely concise with no unnecessary verbiage. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool lacks an output schema and has no annotations. The description does not hint at what information is returned for each budget (e.g., id, name, currency). For a tool with zero parameters and simple behavior, the absence of return value details makes it incomplete for an agent to understand what to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so baseline is 4. The description adds no parameter-specific meaning, but none is needed since there are no parameters. The 100% schema coverage further reduces the need for additional description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Lists') and the resource ('all available budgets'), making the purpose obvious. It contrasts sufficiently with sibling tools that have different actions (e.g., create, update, delete), though it doesn't explicitly differentiate itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidelines are provided. The description does not mention when to prefer this tool over siblings like ynab_budget_summary or ynab_get_transactions, nor does it state any prerequisites or limitations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ynab_list_categoriesList CategoriesA

Lists all categories in a budget, grouped by category group. Useful for finding category IDs when creating transactions or updating budgets.

ParametersJSON Schema
NameRequiredDescriptionDefault
budgetIdNoThe ID of the budget (optional, defaults to YNAB_BUDGET_ID environment variable)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It clearly states the tool 'lists all categories in a budget, grouped by category group', which is the core behavior. While it doesn't discuss edge cases like pagination or permissions, the simplicity of the tool (single parameter, read-only) makes this level of detail acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences with no fluff. The first sentence states the primary action, the second provides context. Every word serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (1 parameter, no output schema), the description adequately explains the tool's purpose and usage. It mentions grouping and the use case. A slight improvement would be to hint at the return structure (e.g., 'returns category groups with nested categories'), but it is already reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a well-described optional budgetId parameter (including default from environment variable). The description adds no additional parameter meaning beyond what the schema already provides, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Lists') and resource ('categories'), mentions grouping by category group, and explains the use case (finding category IDs). It clearly distinguishes from sibling tools like ynab_list_accounts or ynab_list_payees by specifying 'grouped by category group'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states it is 'useful for finding category IDs when creating transactions or updating budgets', providing clear context for when to use this tool. It does not explicitly mention when not to use it or list alternatives, but the usage guidance is strong enough for a general-purpose listing tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ynab_list_monthsList MonthsB

Lists all budget months. Each month contains summary information about budgeting status.

ParametersJSON Schema
NameRequiredDescriptionDefault
budgetIdNoThe ID of the budget (optional, defaults to YNAB_BUDGET_ID environment variable)

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states the tool lists budget months (implying a read operation) and mentions monthly summaries but does not disclose pagination, sorting, error handling, or the exact meaning of 'summary information'. Adequate for a simple read tool but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with no fluff. Each sentence provides essential information: the action (list all budget months) and the content (summary information about budgeting status). No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with one optional parameter and no output schema, the description is mostly complete. It covers what the tool does and what the result contains. However, it could be slightly richer by noting that the output is a list or mentioning the default budget behavior, but overall adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers the single parameter (budgetId) with full description, including its optional nature and default from an environment variable. The description adds no additional parameter information beyond the schema, so baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool lists all budget months and that each month contains summary information about budgeting status. It distinguishes itself from sibling tools like ynab_list_accounts or ynab_list_budgets by focusing on months, though it does not explicitly differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It lacks context such as prerequisites or typical use cases, leaving the agent to infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ynab_list_payeesList PayeesA

Lists all payees in a budget. Useful for finding payee IDs when creating transactions.

ParametersJSON Schema
NameRequiredDescriptionDefault
budgetIdNoThe ID of the budget (optional, defaults to YNAB_BUDGET_ID environment variable)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only states 'Lists all payees in a budget', which implies a read-only operation but does not disclose any other behavioral traits such as pagination, authentication needs, or rate limits. For a simple list tool this is minimally adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences, both front-loaded and adding value. Every sentence earns its place without any unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, and the description does not explain what information is returned (e.g., payee IDs, names). While the tool name suggests the response includes payee details, the lack of any return format description leaves agents to infer, which is adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has one parameter with 100% description coverage, fully documenting its optional nature and default value. The description adds no additional meaning about the parameter beyond what the schema already provides, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Lists all payees in a budget' which is a specific verb and resource. It also provides a use case for finding payee IDs. However, it does not differentiate from sibling list tools such as list_accounts or list_categories, which are also present on the same server.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a usage hint ('Useful for finding payee IDs when creating transactions'), which implies when to use the tool. However, it lacks explicit guidance on when not to use it or alternatives that might be better suited for other scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ynab_list_scheduled_transactionsList Scheduled TransactionsB

Lists all scheduled (recurring) transactions in a budget.

ParametersJSON Schema
NameRequiredDescriptionDefault
budgetIdNoThe ID of the budget (optional, defaults to YNAB_BUDGET_ID environment variable)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden for behavioral disclosure. It only states the action ('list'), omitting details like read-only nature, pagination, or response format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is clear and without fluff, but could be slightly expanded (e.g., mentioning return type) without harming conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (1 optional param, no output schema), the description covers the primary purpose adequately, but lacks context on behavior like whether it returns scheduled-only items, ordering, or limits.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter (budgetId) is already described in the schema (optional, defaults to env variable). The description adds no further meaning, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Lists') and identifies the resource ('scheduled (recurring) transactions'), clearly distinguishing from siblings like 'get_transactions' which likely covers all transactions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No information is provided about when to use this tool versus alternatives (e.g., get_transactions), nor any prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ynab_update_category_budgetUpdate Category BudgetA

Updates the budgeted amount for a category in a specific month. Use this to allocate funds to categories or move money between categories.

ParametersJSON Schema
NameRequiredDescriptionDefault
budgetIdNoThe ID of the budget (optional, defaults to YNAB_BUDGET_ID environment variable)
monthYesThe budget month in ISO format (e.g. 2024-01-01). Must be the first day of the month.
categoryIdYesThe ID of the category to update
budgetedYesThe amount to budget in dollars (e.g. 500.00). This sets the total budgeted amount, not an increment.

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description should disclose behavioral traits like idempotency, permissions, or side effects. It only states the action and relies on schema for parameter details, missing important context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences, no fluff, and purpose is front-loaded. It could possibly include more structure but is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main action and usage but lacks context about optional budgetId defaulting, month format requirements, and absence of output schema. Schema partially compensates but not fully.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema, which already describes each parameter sufficiently.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool updates the budgeted amount for a category in a specific month, and distinguishes from siblings by specifying use for allocation or moving money between categories.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when to use it (allocate funds or move money between categories), but does not mention when not to use or alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ynab_update_transactionUpdate TransactionA

Updates an existing transaction. All fields except transactionId are optional - only provide fields you want to change.

ParametersJSON Schema
NameRequiredDescriptionDefault
budgetIdNoThe ID of the budget (optional, defaults to YNAB_BUDGET_ID environment variable)
transactionIdYesThe ID of the transaction to update
accountIdNoMove transaction to a different account
dateNoThe date of the transaction in ISO format (e.g. 2024-03-24)
amountNoThe amount in dollars (e.g. -10.99 for outflow, 10.99 for inflow)
payeeIdNoThe ID of the payee
payeeNameNoThe name of the payee (creates new payee if doesn't exist)
categoryIdNoThe category ID for the transaction
memoNoA memo/note for the transaction
clearedNoThe cleared status
approvedNoWhether the transaction is approved
flagColorNoThe transaction flag color

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description should disclose behavior beyond 'updates'. It omits whether it returns the updated transaction, what happens on invalid IDs, or how it handles nested data. Only provides a merge hint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, first gives purpose, second gives usage nuance. No filler, every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a straightforward update tool with well-documented schema. Lacks output description and error behavior, but sibling tools cover other operations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all 12 parameters with descriptions (100% coverage). Description adds only that all optional fields are for partial updates, which is minimal added value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it updates an existing transaction, differentiating it from create and delete siblings. The optionality hint distinguishes it from a full replacement update.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains that all fields except transactionId are optional, guiding sparse updates. Does not explicitly exclude scenarios (e.g., creating transactions) but name and sibling list make it clear.

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. Dates show when Glama detected each change.

  1. 17 tool updatesv1.0.0
    • Removedlist_budgets
    • Addedynab_approve_transaction
    • Addedynab_budget_summary
    • Addedynab_bulk_approve_transactions
    • Addedynab_create_transaction
    • Addedynab_delete_transaction
    • Addedynab_get_transactions
    • Addedynab_get_unapproved_transactions
    • Addedynab_import_transactions
    • Addedynab_list_accounts
    • Addedynab_list_budgets
    • Addedynab_list_categories
    • Addedynab_list_months
    • Addedynab_list_payees
    • Addedynab_list_scheduled_transactions
    • Addedynab_update_category_budget
    • Addedynab_update_transaction
  2. 1 tool update
    • First observedlist_budgets

TDQS

A3.8/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no ambiguity, covering specific actions like approve, create, delete, get, list, update, import, and summary for different YNAB entities such as transactions, budgets, accounts, categories, payees, and months. The descriptions clearly differentiate overlapping tools like ynab_approve_transaction vs. ynab_bulk_approve_transactions, and ynab_get_transactions vs. ynab_get_unapproved_transactions, ensuring agents can easily select the correct tool.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with the 'ynab_' prefix, using clear verbs like approve, create, delete, get, list, update, import, and summary paired with specific nouns such as transaction, budget, account, category, payee, and month. There are no deviations in naming conventions, making the set predictable and readable.

Tool Count5/5

With 16 tools, the count is well-scoped for a YNAB budget management server, covering essential CRUD operations, listing resources, and specialized actions like importing transactions and updating category budgets. Each tool earns its place by addressing specific needs in the domain without being excessive or insufficient.

Completeness5/5

The tool set provides complete CRUD/lifecycle coverage for the YNAB domain, including listing budgets, accounts, categories, payees, months, and transactions; creating, updating, approving, and deleting transactions; importing transactions; and updating category budgets. There are no obvious gaps, as all core workflows for budget management are supported without dead ends.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    An MCP server that allows users to interact with YNAB data, enabling access to account balances, transactions, and the creation of new transactions through the Model Context Protocol.
    8
    6
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A 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.
    4
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A Model Context Protocol server that enables interaction with You Need A Budget (YNAB) via their API, allowing users to manage budgets, accounts, categories, and transactions through natural language.
    2
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    A Model Context Protocol server for YNAB (You Need A Budget). Enables users to query budgets, accounts, categories, transactions, and more, as well as create, update, and delete transactions and manage scheduled transactions from any MCP client.
    25
    2
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/calebl/ynab-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server