Skip to main content
Glama
rgarcia

YNAB MCP Server

by rgarcia

YNAB MCP Server

An MCP (Model Context Protocol) server for the YNAB (You Need A Budget) API, built with FastMCP.

This server automatically exposes all YNAB API endpoints as MCP tools, allowing AI assistants like Claude to interact with your YNAB budgets, accounts, transactions, and more.

Prerequisites

  • uv package manager

  • A YNAB account with API access

Related MCP server: YNAB MCP Server

Setup

Get Your YNAB API Token

  1. Log in to your YNAB account at app.ynab.com

  2. Go to Account SettingsDeveloper Settings

  3. Click New Token under "Personal Access Tokens"

  4. Give your token a name and click Generate

  5. Copy the token (you won't be able to see it again!)

Add the Server to Your MCP Client

The published package runs with uvx ynab-mcp-tools. uvx downloads it from PyPI and runs it in an isolated environment, so you do not need to clone this repository or manage a virtualenv.

With Claude Desktop

Add the following to your Claude Desktop configuration file:

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

{
  "mcpServers": {
    "ynab": {
      "command": "uvx",
      "args": ["ynab-mcp-tools"],
      "env": {
        "YNAB_API_TOKEN": "your-token-here"
      }
    }
  }
}

With Claude Code

Use Claude Code's MCP CLI. The -- separates Claude's options from the server command.

For all projects (user scope):

claude mcp add ynab --scope user \
  -e "YNAB_API_TOKEN=your-token-here" \
  -- uvx ynab-mcp-tools

For the current directory only, omit --scope user or use --scope local. Use claude mcp list to verify and claude mcp remove ynab --scope user (or local) to uninstall.

With Cursor

Add the following to your Cursor MCP settings (~/.cursor/mcp.json for global or .cursor/mcp.json in your project):

{
  "mcpServers": {
    "ynab": {
      "command": "uvx",
      "args": ["ynab-mcp-tools"],
      "env": {
        "YNAB_API_TOKEN": "your-token-here"
      }
    }
  }
}

With OpenCode

Add the following to your OpenCode configuration file (~/.config/opencode/opencode.json):

{
  "mcp": {
    "ynab": {
      "type": "local",
      "command": ["uvx", "ynab-mcp-tools"],
      "enabled": true,
      "environment": {
        "YNAB_API_TOKEN": "your-token-here"
      }
    }
  }
}

Available Tools

The server automatically exposes all YNAB API endpoints as MCP tools. Here are some of the available operations:

User

  • getUser - Get authenticated user information

Budgets

  • getBudgets - List all budgets

  • getBudgetById - Get a single budget with all related entities

  • getBudgetSettingsById - Get budget settings

Accounts

  • getAccounts - List all accounts for a budget

  • getAccountById - Get a single account

  • createAccount - Create a new account

Categories

  • getCategories - List all categories for a budget

  • getCategoryById - Get a single category

  • updateCategory - Update a category

  • getMonthCategoryById - Get a category for a specific month

  • updateMonthCategory - Update a category for a specific month

Transactions

  • getTransactions - List transactions

  • getTransactionById - Get a single transaction

  • createTransaction - Create a new transaction

  • updateTransaction - Update a transaction

  • deleteTransaction - Delete a transaction

  • importTransactions - Import transactions

  • getTransactionsByAccount - List transactions for an account

  • getTransactionsByCategory - List transactions for a category

  • getTransactionsByPayee - List transactions for a payee

Payees

  • getPayees - List all payees

  • getPayeeById - Get a single payee

  • updatePayee - Update a payee

Scheduled Transactions

  • getScheduledTransactions - List scheduled transactions

  • getScheduledTransactionById - Get a single scheduled transaction

  • createScheduledTransaction - Create a new scheduled transaction

  • updateScheduledTransaction - Update a scheduled transaction

Months

  • getBudgetMonths - List budget months

  • getBudgetMonth - Get a single budget month

Example Usage

Once connected, you can ask Claude things like:

  • "Show me my YNAB budgets"

  • "What's my current balance in my checking account?"

  • "List my transactions from last week"

  • "Create a transaction for $50 at the grocery store"

  • "How much have I spent on dining out this month?"

Creating Custom Skills for Your YNAB Workflow

YNAB workflows are personal. Everyone has their own conventions for handling transactions, categorizing expenses, and managing duplicates. This repo includes a skill system that lets you encode your personal conventions so Claude can learn and apply them consistently.

Step 1: Explore Your Budget

Start by asking Claude to do something useful with your YNAB data:

"Show me all my unapproved transactions"
"Help me categorize my uncategorized transactions"
"Find duplicate transactions in my budget"

Work through the task interactively. As you do, you'll naturally develop conventions. For example:

  • "Venmo transactions always have a matching withdrawal in my checking account - I delete the Venmo one and keep the bank record"

  • "Transactions from 'AMZN' should be categorized as 'Shopping' unless the memo mentions 'Kindle'"

  • "Any transaction over $500 should be flagged for review"

Step 2: Create a Skill to Encode Your Conventions

Once you've established patterns you want to reuse, create a skill to encode them. This repo includes the skill-creator skill in .skills/skill-creator/ to help you build custom skills.

Ask Claude:

"Load the skill-creator skill and help me create a ynab skill that encodes
the conventions we just used for processing transactions"

The skill-creator will guide you through:

  1. Identifying the reusable patterns from your workflow

  2. Creating a SKILL.md file with your conventions

  3. Structuring the skill for future use

Step 3: Use Your Skills

Once created, your skills live in .skills/ and Claude will automatically apply them when relevant. You can:

  • Add more conventions as you discover them

  • Share skills with others who have similar YNAB setups

  • Build on the included examples

Included Skills

  • .skills/skill-creator/ - Claude's official guide for creating new skills, included for convenience

Resources

License

MIT

Available Tools

44 tools
createAccountC

Creates a new account

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan ("last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan)
accountYes

TDQS

C2.9/5.0
Behavior2/5

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

The description only says 'Creates a new account' without any details on side effects, authorization needs, or whether the account is immediately usable. No annotations are provided, so the description carries the full burden but fails to disclose behavioral traits beyond the minimal purpose.

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, front-loaded sentence with no extraneous words. It efficiently conveys the core action and object.

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?

For a tool that creates an account with nested required fields, the description is insufficient. Missing details include return value (e.g., created account id), error conditions, and whether the operation is destructive or reversible. Given the lack of output schema and annotations, the description should compensate but does not.

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 detailed descriptions for 'plan_id' and the 'account' object's properties. With a schema description coverage of 50%, the description adds no new meaning beyond stating the tool's purpose, so it scores at the baseline for covered parameters.

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 verb 'creates' and the resource 'account', making it apparent that this tool creates a new account in the YNAB system. However, it does not differentiate it from sibling tools like 'createCategory' or 'createTransaction', which also create resources.

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 is provided on when to use this tool versus alternatives (e.g., 'createTransaction' for transactions). There is no mention of prerequisites, required setup, or scenarios where this tool is appropriate.

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

createCategoryC

Creates a new category

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan ("last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan)
categoryYes

TDQS

C2.8/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. It only says 'Creates a new category' without mentioning permissions, side effects, or default behaviors. The schema provides some details, but the description adds no behavioral context.

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

Conciseness3/5

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

The description is very concise (4 words), which is efficient but underspecified for a tool with complex nested parameters. It could be more informative without losing conciseness.

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?

Given the tool's complexity (multiple optional fields, nested category object, no output schema), the description is insufficient. It does not explain return behavior or the implications of setting goal-related fields.

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 schema description coverage is moderate (50%). The description does not add meaning beyond the schema; for example, it doesn't explain the 'plan_id' parameter's special values. Baseline 3 is appropriate as the schema carries most semantic weight.

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 it creates a category, using a specific verb and resource. However, it does not distinguish from sibling tools like createCategoryGroup, which creates a category group, missing the opportunity to disambiguate.

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 tool versus alternatives, nor any prerequisites or context for invocation. The description merely restates the action without situational guidance.

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

createCategoryGroupC

Creates a new category group

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan ("last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan)
category_groupYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states 'creates', implying a write operation, but does not mention any side effects, permissions, idempotency, or return behavior. This is insufficient for an agent to understand the tool's full impact.

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 very concise, consisting of a single sentence. It is front-loaded but lacks depth. While efficient, it sacrifices completeness for brevity.

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 has two required parameters and a nested object, and no output schema. The description does not specify what the tool returns (e.g., the created category group) or any important constraints. More context is needed for a creation tool in a complex domain like YNAB.

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

Parameters2/5

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

The input schema already describes the parameters (plan_id and category_group.name). The description adds no additional meaning or usage hints beyond what is in the schema. With 50% schema coverage, the description should compensate but fails to do so.

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 'Creates a new category group' clearly states the verb (creates) and the resource (category group). It is straightforward but does not provide additional context to differentiate from sibling tools like createCategory, though the name itself offers some distinction.

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 is provided on when to use this tool versus alternatives such as createCategory or other creation tools. The description lacks context about typical use cases or prerequisites.

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

createPayeeC

Creates a new payee

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
payeeYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations exist, so the description must fully convey behavioral traits. It only states the action without disclosing permission requirements, idempotency, rate limits, or side effects (e.g., whether creating a payee affects other entities).

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 very short (one sentence), no unnecessary words, and front-loaded. However, it could include more context without breaking conciseness.

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?

Given the tool has 2 parameters and no output schema, the description omits critical context like return value, error scenarios, or any special behavior. It is too minimal for a production tool.

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

Parameters2/5

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

The input schema describes two parameters (plan_id and payee) with some documentation. However, the tool description adds no extra meaning beyond the schema. The payee object lacks a top-level description, and the description does not compensate for this gap.

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 states 'Creates a new payee', which clearly indicates the action and resource. The verb 'creates' is specific, and the resource 'payee' is distinct from sibling tools like 'updatePayee' or 'getPayees'.

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 tool versus alternatives like 'updatePayee' or 'ynab_consolidate_payee'. No prerequisites or exclusion criteria provided.

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

createScheduledTransactionB

Creates a single scheduled transaction (a transaction with a future date).

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
scheduled_transactionYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, and the description gives minimal behavioral disclosure. It does not mention whether the operation is idempotent, required permissions, or constraints like date limits (schema partially covers that). The description fails to add value beyond the basic action.

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

Conciseness3/5

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

The description is a single sentence, making it concise. However, it is too brief for a tool with many parameters and constraints, sacrificing completeness for brevity. It earns a middle score as it is not verbose but could be better structured.

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?

Given the complex nested input schema, multiple optional fields, and constraints (e.g., date must be future <=5 years, no split transactions), the description is starkly incomplete. It omits essential context that an agent needs to use the tool correctly, especially without an output schema.

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

Parameters2/5

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

With only 50% schema description coverage, the tool's description adds no parameter details. It does not explain the nested scheduled_transaction object or critical fields like plan_id, which are partially described in the schema. The description shoulders too little of the explanatory burden.

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 creates a single scheduled transaction defined as a transaction with a future date. This distinguishes it from similar tools like createTransaction (immediate) and updateScheduledTransaction (modifying existing).

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 future-dated transactions but does not explicitly state when to use this tool over siblings like createTransaction. It lacks guidance on exclusions or prerequisites, leaving the agent to infer from context.

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

createTransactionA

Creates a single transaction or multiple transactions. If you provide a body containing a transaction object, a single transaction will be created and if you provide a body containing a transactions array, multiple transactions will be created. Scheduled transactions (transactions with a future date) cannot be created on this endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
transactionNo
transactionsNo

TDQS

A4.2/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses that future dates are not permitted, and explains the effect of `import_id` on matching. It does not cover error handling or rate limits, but the key behavioral constraints are clear.

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 clearly state purpose, mode distinction, and key restriction. No wasted words; front-loaded with main action.

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 complexity (nested objects, multiple modes, sibling tools), the description covers core behavior, restrictions, and mode differentiation. No output schema, so return values not expected. Could mention plan_id requirement but it is in required fields.

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 only 33%, but the schema itself provides detailed descriptions for many nested parameters. The description adds the high-level single vs multiple distinction and the prohibition on future dates, but does not provide additional semantic meaning beyond what the schema already offers for individual parameters.

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 'Creates a single transaction or multiple transactions' with specific verb and resource. It differentiates between single and multiple by body structure (`transaction` object vs `transactions` array). It also explicitly excludes scheduled transactions, distinguishing from sibling `createScheduledTransaction`.

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?

Description explains when to use single vs multiple mode and explicitly states that scheduled transactions (future dates) cannot be created, implying use of `createScheduledTransaction` for those. It does not mention alternatives like `importTransactions` but is clear enough for common scenarios.

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

deleteScheduledTransactionB

Deletes a scheduled transaction

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
scheduled_transaction_idYesThe id of the scheduled transaction

TDQS

B3.2/5.0
Behavior2/5

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

No annotations exist, so description bears full burden, but only states the basic action. Does not disclose permanence, side effects, or permissions needed.

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 with no wasted words, but could be slightly more informative without losing 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?

For a simple delete tool with good schema coverage and no output schema, the description is mostly adequate but lacks behavioral details.

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%, and the description adds no extra meaning beyond the schema's parameter descriptions. 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 (deletes) and the resource (scheduled transaction), distinguishing it from sibling tools like getScheduledTransactions or createScheduledTransaction.

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 tool versus alternatives, such as deleteTransaction. No prerequisites or context provided.

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

deleteTransactionC

Deletes a transaction

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
transaction_idYesThe id of the transaction

TDQS

C2.8/5.0
Behavior2/5

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

Without annotations, the description fails to disclose behavioral traits such as irreversibility, required permissions, or side effects. 'Deletes a transaction' is vague and insufficient.

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

Conciseness3/5

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

The description is brief but lacks necessary details. It is not overly verbose, but brevity comes at the cost of completeness.

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?

Given no output schema and the presence of sibling tools, the description should clarify return behavior and differentiate from similar actions. It falls short on 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?

The input schema already provides clear descriptions for both parameters (plan_id, transaction_id) with 100% coverage. The description adds no additional semantic value beyond the schema.

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?

Description clearly states verb 'Deletes' and resource 'transaction', making the action unambiguous. However, it doesn't explicitly differentiate from sibling tools like deleteScheduledTransaction, though the resource name implies the difference.

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 tool versus alternatives (e.g., deleteScheduledTransaction) or prerequisites. The description lacks context for decision-making.

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

getAccountByIdB

Returns a single account

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
account_idYesThe id of the account

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only says 'Returns a single account,' lacking info on read-only nature, permissions, or side effects. Minimal transparency.

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, front-loaded sentence with no wasted words. Every character 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?

For a simple read tool with no output schema, the description is minimally adequate. However, it could add value by describing the return format or indicating it is a read operation. With rich sibling tools, more context would help.

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 extra meaning beyond what the schema provides, yielding a baseline score.

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 it returns a single account, matching the tool name. It is specific with verb and resource, but does not differentiate from sibling getAccounts.

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 is provided on when to use this tool versus alternatives like getAccounts or other getById tools. The context and exclusions are missing.

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

getAccountsB

Returns all accounts

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
last_knowledge_of_serverNoThe starting server knowledge. If provided, only entities that have changed since `last_knowledge_of_server` will be included.

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 full burden but only states the return type. No disclosure of pagination, filtering, performance implications, or side effects, which is insufficient for a list retrieval tool.

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, earning its place despite limited detail. Could be expanded slightly 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?

Given the low complexity and no output schema, the description is minimally complete but lacks context about result format or handling of the optional parameter, leaving some gaps for an unsuspecting agent.

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 the baseline is 3. The description adds no parameter information beyond the schema, which is adequate but not enhanced.

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 states 'Returns all accounts' with a specific verb and resource, clearly distinguishing it from sibling tools like getAccountById (which retrieves a specific account) and other get* tools that retrieve different entities.

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 tool versus alternatives such as getAccountById or getTransactionsByAccount. No mention of exclusions or prerequisites.

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

getCategoriesA

Returns all categories grouped by category group. Amounts (assigned, activity, available, etc.) are specific to the current plan month (UTC).

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
last_knowledge_of_serverNoThe starting server knowledge. If provided, only entities that have changed since `last_knowledge_of_server` will be included.

TDQS

A4/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 full burden. It discloses that amounts are specific to the current plan month (UTC), which is a useful behavioral detail. However, it does not mention error conditions, authentication needs, or performance implications, leaving some gaps.

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, front-loaded with the core purpose, and contains no extraneous words. Every sentence 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 no output schema, the description adequately explains what is returned (all categories grouped) and notes the time-specific nature of amounts. It is sufficiently complete for a list-function tool, though it could mention potential size or pagination.

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%, meaning the input schema already describes both parameters adequately. The description adds no additional meaning or context for parameters beyond what is in the 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 the tool returns all categories grouped by category group, distinguishing it from tools like getCategoryById or getMonthCategoryById. The verb 'Returns' and resource 'all categories grouped by category group' are specific and unambiguous.

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?

While no explicit when-to-use or alternatives are mentioned, the description implies this is the primary tool for retrieving all categories, contrasting with sibling tools that retrieve single categories or monthly data. The temporal note about current plan month adds context for usage.

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

getCategoryByIdA

Returns a single category. Amounts (assigned, activity, available, etc.) are specific to the current plan month (UTC).

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
category_idYesThe id of the category

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description carries the full burden. It discloses that amounts are specific to the current plan month (UTC), a useful behavioral trait. However, it does not mention permissions, rate limits, or other side effects common for a read operation.

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?

Extremely concise: two sentences. The first states the core action, the second adds a critical nuance. No fluff.

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 get-by-ID tool without output schema, the description covers return value and a key timing nuance. Lacks mention of error conditions or parameter descriptions (though schema covers those). Adequate but not exhaustive.

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 both parameters documented. The description adds no new meaning beyond the schema. Baseline is 3; no improvement.

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?

Explicitly states 'Returns a single category', which is specific and distinguishes from sibling tools like getCategories (plural) and getMonthCategoryById (month-specific). The mention of amounts being plan-month-specific adds precise 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?

No explicit guidance on when to use this tool versus alternatives like getCategories or getMonthCategoryById. The description implies it's for a single category by ID but does not state exclusions or context.

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

getMoneyMovementGroupsC

Returns all money movement groups

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits, but it only states 'Returns' with no side effects, authentication needs, rate limits, or pagination behavior. The description is insufficient for a tool that returns a collection.

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

Conciseness3/5

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

The description is one sentence, which is concise, but it lacks structure and fails to provide necessary detail. It is not overly wordy, but it sacrifices informativeness for brevity.

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 has one required parameter and no output schema. The description does not explain what 'money movement groups' are or the format of the return value. For a listing tool, more context is needed about the response structure.

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% with a detailed explanation of the plan_id parameter (including 'last-used' and 'default' options). The tool description adds no additional meaning beyond what the schema 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.

Purpose4/5

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

The description 'Returns all money movement groups' clearly states the action and resource. However, it does not differentiate from sibling tools like getMoneyMovementGroupsByMonth, which also returns money movement groups but filtered. The purpose is clear but lacks sibling distinction.

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 is provided on when to use this tool versus alternatives (e.g., getMoneyMovementGroupsByMonth for monthly filtering). There is no mention of context, prerequisites, or exclusions, leaving the agent without decision support.

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

getMoneyMovementGroupsByMonthC

Returns all money movement groups for a specific month

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
monthYesThe plan month in ISO format (e.g. 2016-12-01) ("current" can also be used to specify the current calendar month (UTC))

TDQS

C2.9/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 fully disclose behavior. It only states it 'returns' data, but does not mention any side effects, authorization requirements, rate limits, or what the response structure looks like. This is insufficient for a retrieval tool.

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 concise sentence with no unnecessary words. It is front-loaded and efficient, but could benefit from a bit more detail without losing conciseness.

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?

Given the tool has no output schema and is a retrieval operation, the description should provide information about the return format or structure. It does not, leaving the agent uncertain about what to expect. The presence of many similar sibling tools also makes the lack of distinguishing details a gap.

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% description coverage for both parameters (plan_id and month). The tool description adds no additional meaning beyond the schema, which is acceptable per the baseline.

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 it returns 'all money movement groups for a specific month', specifying both the resource and scope. However, it does not differentiate from siblings like 'getMoneyMovementGroups' or 'getMoneyMovementsByMonth', so it's not a 5.

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 is provided on when to use this tool versus alternatives. The description does not mention any context for usage, exclusions, or comparisons to sibling tools.

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

getMoneyMovementsC

Returns all money movements

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).

TDQS

C2.5/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only states that the tool 'returns' data (implying read-only), but does not confirm side effects, authentication needs, rate limits, or pagination. The minimal description fails to provide sufficient transparency.

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

Conciseness3/5

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

The description is extremely concise (4 words). While it is front-loaded, it lacks structure and omits important context that could be added without much length. It is borderline under-specified, earning a 3.

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?

Given no output schema, no annotations, and the existence of sibling tools that filter by month or group, the description does not provide enough context for an agent to understand what is returned or how this tool fits into the workflow. It is insufficiently 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 parameter meaning is already documented. The description adds no extra context beyond what is in the schema. Baseline 3 is appropriate as no value is added beyond schema.

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

Purpose3/5

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

The description states 'Returns all money movements,' which is a clear verb+resource. However, it does not distinguish from sibling tools like getMoneyMovementsByMonth or getMoneyMovementGroups. Without differentiation, an agent may select the wrong tool. Score 3 reflects adequate but not exceptional clarity.

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. For example, it doesn't mention that getMoneyMovementsByMonth is for filtered results. No exclusions or context are given, leaving the agent without decision support.

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

getMoneyMovementsByMonthC

Returns all money movements for a specific month

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
monthYesThe plan month in ISO format (e.g. 2016-12-01) ("current" can also be used to specify the current calendar month (UTC))

TDQS

C2.9/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 burden. It states it returns all money movements but omits details like order, pagination, or whether this is a read-only operation. The behavioral disclosure is minimal.

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 concise sentence with no wasted words. It could be improved by adding more context without becoming verbose.

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?

Given sibling tools like getMoneyMovements and getMoneyMovementGroupsByMonth, this description lacks clarity on what differentiates 'money movements' from 'groups' and does not provide output schema details. It is insufficient for an agent to confidently choose among similar tools.

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?

Input schema has 100% coverage with clear descriptions for both parameters. The tool description adds no new information beyond the schema, so it meets the baseline but does not excel.

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?

Description clearly states verb (Returns), resource (money movements), and time constraint (for a specific month). However, it does not distinguish from siblings like getMoneyMovements or getMoneyMovementGroupsByMonth, which could cause confusion.

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 tool vs alternatives. For example, if the agent needs grouped data, getMoneyMovementGroupsByMonth would be more appropriate. The lack of such guidance increases ambiguity.

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

getMonthCategoryByIdA

Returns a single category for a specific plan month. Amounts (assigned, activity, available, etc.) are specific to the current plan month (UTC).

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
monthYesThe plan month in ISO format (e.g. 2016-12-01) ("current" can also be used to specify the current calendar month (UTC))
category_idYesThe id of the category

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 full burden. It discloses that amounts (assigned, activity, available) are specific to the current plan month in UTC, adding behavioral context beyond the schema. However, it does not mention other traits like read-only nature, pagination, rate limits, or response structure, leaving gaps.

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 zero wasted words. It front-loads the main action ('Returns a single category for a specific plan month') and adds a critical qualifier in the second sentence. Ideal length for a simple retrieval tool.

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 no output schema, the description should provide more context on the return structure (e.g., fields like id, name, budgeted amounts, etc.). It mentions 'amounts' but does not list them fully or describe the response object shape. For a tool with 3 required params and a specific use case, the description leaves the agent guessing about the exact response format.

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 already has 100% coverage with clear descriptions for all three parameters. The tool description adds value by explaining that amounts returned are specific to the month, which is not explicitly stated in the schema's month parameter description (which focuses on format). This clarifies the semantic meaning of the month parameter's effect on the output.

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 it returns a single category for a specific plan month, using a specific verb 'Returns' and resource 'category for a specific plan month'. It is distinct from getCategories (which returns all categories) and getCategoryById (which likely returns category without month context), but does not explicitly differentiate from siblings like getPlanMonth.

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 use when needing a single category's data for a given month (e.g., amounts specific to UTC month), but offers no explicit guidance on when to use this tool vs. alternatives like getCategoryById (no month context) or getPlanMonth (entire month data). No exclusions or alternatives mentioned.

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

getPayeeByIdB

Returns a single payee

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
payee_idYesThe id of the payee

TDQS

B3.1/5.0
Behavior1/5

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

No annotations are present, and the description does not disclose any behavioral traits (e.g., read vs write, idempotency, side effects, authentication needs). It adds no value beyond the tool name.

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 extremely concise at three words, with no wasted text. It is front-loaded and efficient, though it could benefit from slightly more context without sacrificing brevity.

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 retrieval tool with well-documented parameters in the schema, the description is largely complete. It covers the core purpose, though it omits details about return format or error handling.

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 with descriptions for both parameters. The tool description adds no additional meaning beyond what the schema already provides, earning the baseline score.

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 'Returns a single payee' uses a specific verb ('Returns') and resource ('payee'), and clearly distinguishes from sibling tools like 'getPayees' which return multiple payees.

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 is provided on when to use this tool versus alternatives. It does not mention prerequisites, context, or exclusions, 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.

getPayeeLocationByIdC

Returns a single payee location

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
payee_location_idYesid of payee location

TDQS

C2.9/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 only states 'returns a single payee location' without disclosing that it is a read-only operation, any prerequisites, or potential side effects. Minimal behavioral insight.

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?

Extremely concise at one sentence. No wasted words, but could be expanded slightly to include more context without losing efficiency.

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?

For a simple get-by-id tool, the description is basic. It does not mention return format, error cases, or any output schema. Sibling tools provide some context but this description alone is insufficient for an agent to fully understand the tool's role.

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 parameters are already well-documented in the input schema. The description adds no additional semantic context beyond what is provided in the schema descriptions.

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 states it returns a single payee location, which is clear and matches the name. However, it does not explicitly distinguish from sibling tools like getPayeeLocations (returns list) or getPayeeLocationsByPayee (filters by payee).

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 tool versus alternatives such as getPayeeLocations or getPayeeLocationsByPayee. The agent is left to infer 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.

getPayeeLocationsB

Returns all payee locations

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).

TDQS

B3.3/5.0
Behavior2/5

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

No annotations exist, and the description offers no behavioral details such as auth requirements, rate limits, or error handling. A read operation is implied but not explicitly stated, and no additional context is given.

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 (4 words) and front-loaded with the core purpose. Every word is necessary, and no filler is present.

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 tool's simplicity (one parameter, no output schema), the description is minimally adequate. However, it omits details about return structure (e.g., array of location objects) and potential pagination or filtering behavior, which would be helpful for an agent.

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% description coverage for the single parameter, including details about 'last-used' and 'default' values. The description adds no additional meaning beyond the schema, 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 'Returns all payee locations' uses a specific verb and resource, clearly indicating the action and scope. It distinguishes from siblings like 'getPayeeLocationById' (single location) and 'getPayeeLocationsByPayee' (filtered by payee).

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 is provided on when to use this tool versus alternatives. No context about prerequisites, limitations, or when not to use it.

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

getPayeeLocationsByPayeeB

Returns all payee locations for a specified payee

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
payee_idYesid of payee

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so the description must carry the transparency burden. It only restates the purpose without disclosing behavioral traits like authentication, rate limits, or response format beyond 'returns all payee locations'.

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, front-loaded with key action, no wasted words. Highly concise for the given complexity.

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 exists, but the description does not specify return structure (e.g., list of location objects). For a read tool with no annotations, this is insufficient for full 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 coverage is 100% with clear parameter descriptions. The description adds no additional meaning beyond what the schema provides, 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 clearly states the verb 'Returns' and the resource 'payee locations' filtered by a specified payee. This distinguishes it from sibling tools like 'getPayeeLocations' (all) and 'getPayeeLocationById' (single).

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 tool versus alternatives (e.g., getPayeeLocations or getPayeeLocationById). Also lacks context like prerequisites or conditions.

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

getPayeesB

Returns all payees

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
last_knowledge_of_serverNoThe starting server knowledge. If provided, only entities that have changed since `last_knowledge_of_server` will be included.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided. Description only states 'Returns all payees' without disclosing that it is scoped to a given plan (plan_id required) or that the result may be incremental with last_knowledge_of_server. Minimal behavioral 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?

Extremely concise at 4 words, front-loaded with core purpose. Could benefit from slight expansion but no waste.

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 read tool with 2 parameters and no output schema, description is adequate but misses the critical fact that payees are per-plan. Lacks mention of return structure.

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 baseline is 3. Description adds no extra meaning beyond schema. No examples or additional parameter guidance.

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 'Returns all payees' clearly states the action (returns) and the resource (all payees), distinguishing it from siblings like getPayeeById or createPayee.

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 provided on when to use this tool vs alternatives (e.g., getPayeeById). No prerequisites or exclusions mentioned.

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

getPlanByIdA

Returns a single plan with all related entities. This resource is effectively a full plan export.

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
last_knowledge_of_serverNoThe starting server knowledge. If provided, only entities that have changed since `last_knowledge_of_server` will be included.

TDQS

A3.8/5.0
Behavior3/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 identifies the tool as a read operation returning a full plan export, but does not disclose behavioral details such as rate limits, authentication requirements, or the specific scope of 'all related entities'. The description is straightforward and non-contradictory, 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 consists of two short sentences with no unnecessary words. The first sentence front-loads the core purpose, and the second adds crucial context ('full export'). Every word earns its place.

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 tool's complexity (single resource retrieval), the description provides enough context for basic usage. However, without an output schema, more detail about the return structure would be helpful, but the phrase 'full plan export' implies completeness. Sibling tools are numerous, but the description does not need to cover all scenarios.

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 input schema already documents both parameters thoroughly. The description adds no additional meaning beyond the schema, which is acceptable but does not enhance parameter understanding.

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 returns a single plan with all related entities, effectively a full export. It uses a specific verb ('returns') and resource ('single plan'), and the phrase 'full plan export' distinguishes it from sibling tools like 'getPlans' which likely return multiple plans.

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 does not explicitly state when to use this tool versus alternatives like 'getPlans' or 'getPlanMonth'. While the name and 'full plan export' hint at its specific use case, there is no guidance on when not to use it or what prerequisites might be required.

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

getPlanMonthB

Returns a single plan month

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
monthYesThe plan month in ISO format (e.g. 2016-12-01) ("current" can also be used to specify the current calendar month (UTC))

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations present, the description must fully disclose behavior. It only states the function without mentioning read-only nature, side effects, permissions, or rate limits. Minimal transparency.

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, front-loaded sentence that conveys the core purpose efficiently. However, while concise, it omits potentially important context.

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?

Given the lack of output schema and annotations, the description is insufficient. It does not describe the return structure, edge cases, or any additional context needed for effective 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?

The input schema already provides detailed descriptions for both parameters (plan_id and month). The description adds no additional semantic value beyond what the schema offers.

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 'Returns a single plan month' clearly states the action (returns) and resource (a single plan month). It effectively distinguishes from sibling 'getPlanMonths' which returns multiple.

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 is provided on when to use this tool versus alternatives like getPlanMonths or getPlanById. The description lacks any contextual usage advice.

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

getPlanMonthsC

Returns all plan months

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
last_knowledge_of_serverNoThe starting server knowledge. If provided, only entities that have changed since `last_knowledge_of_server` will be included.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral traits. It only states 'returns', implying read-only, but does not disclose pagination, ordering, or potential errors. Insufficient for a safe agent decision.

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, clear sentence with no fluff. It is appropriately concise for a simple retrieval tool, though could benefit from slight expansion on scope.

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?

With no output schema, the description does not explain return values. For a tool returning 'all plan months', lack of format details is a gap, but complexity is low. Adequate but incomplete.

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 schema already explains both parameters. The description adds no additional meaning beyond the schema, meeting baseline expectations.

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 'Returns all plan months' clearly states the verb ('returns') and resource ('plan months'), distinguishing it from the sibling 'getPlanMonth' which returns a single month. However, it doesn't explain what a plan month is, which is minor given context.

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 is provided on when to use this tool versus alternatives like 'getPlanMonth' or 'getPlans'. The description lacks context for appropriate use cases.

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

getPlansB

Returns plans list with summary information

ParametersJSON Schema
NameRequiredDescriptionDefault
include_accountsNoWhether to include the list of plan accounts

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, so the description must fully disclose behavior. It states a read-like operation ('returns plans'), but does not confirm read-only, destructive potential, or other side effects. Lacks details like pagination or rate limits.

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?

One sentence, no extraneous text. Perfectly concise.

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?

No output schema, yet description doesn't hint at the return structure (e.g., array of plan objects). Adequate for a simple list tool, but missing behavioral context due to lack of annotations.

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 clear description of the boolean parameter. The tool description adds no extra meaning beyond the schema. Baseline 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 the tool returns a 'plans list with summary information', which identifies the resource (plans) and the action (returns list). It indirectly distinguishes from getPlanById by focusing on a list, but lacks explicit differentiation.

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 tool versus alternatives like getPlanById or other getters. No mention of prerequisites or context.

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

getPlanSettingsByIdC

Returns settings for a plan

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided; description only says 'Returns settings for a plan'. Lacks details on side effects (none expected), authentication, rate limits, or what exactly constitutes 'settings'. For a read operation, minimal transparency.

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, no filler. Efficient but could be more informative without losing conciseness.

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?

With no output schema, the description should explain what the response contains (e.g., settings structure). It does not, leaving agent uncertain about return value. Incomplete for a simple tool.

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 covers the plan_id parameter with special values. The tool description adds no extra meaning beyond the schema, so baseline 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?

Description states 'Returns settings for a plan', which specifies the verb and resource clearly. It distinguishes from sibling tools like getPlanById (returns plan details) and getPlanMonth (returns month data) by focusing on 'settings', though not explicitly.

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 tool versus alternatives like getPlanById or getPlanMonths. The description does not mention prerequisites, context, or exclusions.

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

getScheduledTransactionByIdB

Returns a single scheduled transaction

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
scheduled_transaction_idYesThe id of the scheduled transaction

TDQS

B3.4/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 only states that it returns a scheduled transaction, implying a read-only operation without side effects. While this is sufficient for a simple getter, it does not explicitly confirm safety or disclose potential errors (e.g., missing ID).

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 concise sentence that is front-loaded and directly states the tool's purpose. No wasted words, earning its place for a simple get-by-id tool.

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 and good schema parameter descriptions, the minimal description is adequate. The return value implication ('single scheduled transaction') is clear. However, the lack of output schema or behavioral details slightly reduces 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 coverage is 100% with well-described parameters. The description adds no additional meaning beyond what the schema already provides. Baseline of 3 is appropriate per guidelines.

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 'Returns a single scheduled transaction' clearly states the verb and resource, and distinguishes from sibling tools like getScheduledTransactions which return multiple. However, it is essentially restating the tool name with minimal additional 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?

The description provides no guidance on when to use this tool versus alternatives (e.g., createScheduledTransaction, updateScheduledTransaction). No preconditions or context are mentioned, 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.

getScheduledTransactionsC

Returns all scheduled transactions

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
last_knowledge_of_serverNoThe starting server knowledge. If provided, only entities that have changed since `last_knowledge_of_server` will be included.

TDQS

C2.9/5.0
Behavior2/5

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

Without annotations, the description carries full burden. 'Returns all scheduled transactions' indicates a read operation but discloses no details about pagination, filtering, side effects, or response format. Minimal behavioral 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 a single efficient sentence with no redundancy. However, it could be expanded with usage guidelines without losing conciseness, so it is not perfect.

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 getter, the description is minimally adequate. It lacks output schema hints and behavioral context, but the parameters are fully covered. Sibling tools exist but no differentiation is provided.

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 parameters are already well-documented. The description adds no extra meaning, meeting the baseline expectation for a 3.

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 returns 'all scheduled transactions' with a specific verb and resource. However, it does not differentiate from sibling tools like getScheduledTransactionById or getTransactions, missing a chance to clarify scope.

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 is provided on when to use this tool vs. alternatives (e.g., getScheduledTransactionById for a single record, or getTransactions for non-scheduled ones). The description lacks context for appropriate invocation.

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

getTransactionByIdC

Returns a single transaction

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
transaction_idYesThe id of the transaction

TDQS

C2.9/5.0
Behavior1/5

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

No annotations provided; the description only states the basic action without disclosing any behavioral traits such as authentication needs, rate limits, 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.

Conciseness3/5

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

The description is extremely short (one sentence) and front-loaded, but lacks necessary details. It is concise but under-specified.

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 ID lookup, the description is minimally adequate. No output schema exists, so return format is not described. More context on errors or empty results 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 description coverage is 100%, so the schema already documents both parameters. The description adds no extra meaning beyond what the schema provides.

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 'Returns a single transaction' uses a specific verb and resource, clearly distinguishing from siblings like getTransactions (plural) and other get* methods.

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 tool vs alternatives (e.g., getTransactions, getTransactionsByAccount). No when-not or context for selection.

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

getTransactionsB

Returns plan transactions, excluding any pending transactions

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
since_dateNoIf specified, only transactions on or after this date will be included. The date should be ISO formatted (e.g. 2016-12-30).
typeNoIf specified, only transactions of the specified type will be included. "uncategorized" and "unapproved" are currently supported.
last_knowledge_of_serverNoThe starting server knowledge. If provided, only entities that have changed since `last_knowledge_of_server` will be included.

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It discloses the exclusion of pending transactions, which is helpful, but omits other important behaviors such as pagination, error handling, authentication requirements, 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.

Conciseness5/5

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

The description is a single, concise sentence that packs the core information: verb, resource, and key exclusion. No superfluous words or repetition.

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 is minimal; it lacks explanation of return values (no output schema) and does not help the agent differentiate among the many sibling transaction tools. A bit more context about the scope of 'plan transactions' 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 description coverage is 100%, so the parameters are already well-documented in the schema. The description adds no additional meaning or guidance beyond what the schema provides.

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 it returns plan transactions and specifies an important exclusion (pending transactions). However, it does not distinguish itself from sibling tools like getTransactionsByAccount or getTransactionById, leaving ambiguity about what 'plan transactions' means relative to other transaction endpoints.

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 is provided on when to use this tool versus alternatives. The description does not mention scenarios where this tool is preferred or any context about filtering plans vs accounts or categories.

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

getTransactionsByAccountB

Returns all transactions for a specified account, excluding any pending transactions

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
account_idYesThe id of the account
since_dateNoIf specified, only transactions on or after this date will be included. The date should be ISO formatted (e.g. 2016-12-30).
typeNoIf specified, only transactions of the specified type will be included. "uncategorized" and "unapproved" are currently supported.
last_knowledge_of_serverNoThe starting server knowledge. If provided, only entities that have changed since `last_knowledge_of_server` will be included.

TDQS

B3.4/5.0
Behavior3/5

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

The description reveals a key behavior: exclusion of pending transactions. However, with no annotations, it lacks disclosure on authentication, rate limits, or response structure. Some behavioral context is provided 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.

Conciseness5/5

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

Single sentence, no superfluous text. Every word serves a purpose, making it highly concise and front-loaded.

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 does not explain the return format or structure, which is critical since there is no output schema. With 5 parameters and no behavioral hints, the tool is left partially incomplete.

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 all parameters. The tool description does not add any meaning beyond what the schema provides, which meets the baseline.

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 verb 'Returns' and the resource 'all transactions for a specified account', with the distinguishing detail of excluding pending transactions. Among siblings like getTransactionsByCategory or getTransactionsByPayee, this tool's purpose is well-defined.

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 tool versus alternatives like getTransactions (all) or getTransactionsByCategory. The description implies usage when you have an account_id, but does not offer exclusions or comparisons.

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

getTransactionsByCategoryB

Returns all transactions for a specified category, excluding any pending transactions

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
category_idYesThe id of the category
since_dateNoIf specified, only transactions on or after this date will be included. The date should be ISO formatted (e.g. 2016-12-30).
typeNoIf specified, only transactions of the specified type will be included. "uncategorized" and "unapproved" are currently supported.
last_knowledge_of_serverNoThe starting server knowledge. If provided, only entities that have changed since `last_knowledge_of_server` will be included.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so description must compensate. Only mentions exclusion of pending transactions; missing details on pagination, ordering, rate limits, or auth requirements.

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, front-loaded sentence with no extraneous words. Efficiently communicates core purpose.

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?

With 5 parameters, no output schema, and no annotations, the description is too brief. Omits return format, error handling, and filtering details beyond 'pending transactions'.

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 baseline is 3. Description adds no extra meaning to parameters beyond what schema already provides.

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 'Returns', resource 'transactions for a specified category', and exclusion of pending transactions, distinguishing it from siblings like getTransactions or getTransactionsByAccount.

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 vs alternatives (e.g., getTransactionsByPayee, getTransactionsByMonth). Lacks context for selection among many sibling tools.

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

getTransactionsByMonthB

Returns all transactions for a specified month, excluding any pending transactions

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
monthYesThe plan month in ISO format (e.g. 2016-12-01) ("current" can also be used to specify the current calendar month (UTC))
since_dateNoIf specified, only transactions on or after this date will be included. The date should be ISO formatted (e.g. 2016-12-30).
typeNoIf specified, only transactions of the specified type will be included. "uncategorized" and "unapproved" are currently supported.
last_knowledge_of_serverNoThe starting server knowledge. If provided, only entities that have changed since `last_knowledge_of_server` will be included.

TDQS

B3.4/5.0
Behavior3/5

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

The description discloses the key behavioral trait of excluding pending transactions, but omits other important behaviors like pagination, rate limits, or default sorting. Given no annotations, more transparency would be beneficial.

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, front-loaded with the verb, no redundant information. 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?

With 5 parameters, no output schema, and no annotations, the description is insufficient. It does not explain default behavior when optional parameters are omitted, nor does it describe the return structure, making it incomplete for an agent to use confidently.

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 baseline is 3. The description adds no extra parameter-specific meaning beyond what the schema already provides, but it does provide overall context.

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 returns all transactions for a specified month and excludes pending transactions. It distinguishes from siblings like getTransactionsByAccount or getTransactionsByCategory by specifying month-based filtering and the pending exclusion.

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 tool versus alternatives. With many sibling transaction retrieval tools, explicit context on when to choose this over others is missing.

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

getTransactionsByPayeeA

Returns all transactions for a specified payee, excluding any pending transactions

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
payee_idYesThe id of the payee
since_dateNoIf specified, only transactions on or after this date will be included. The date should be ISO formatted (e.g. 2016-12-30).
typeNoIf specified, only transactions of the specified type will be included. "uncategorized" and "unapproved" are currently supported.
last_knowledge_of_serverNoThe starting server knowledge. If provided, only entities that have changed since `last_knowledge_of_server` will be included.

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided, so the description carries the full burden. It only mentions that pending transactions are excluded, but does not disclose other behavioral traits like pagination, ordering, or authentication requirements. For a read tool, more context is needed.

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 of 12 words, front-loads the purpose immediately. No extraneous information. 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?

While the description is concise, it lacks details about the return value (e.g., list of transaction objects). With no output schema, the description could provide more completeness, but it is adequate for a simple filtered retrieval tool.

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 all parameters. The description adds no param-level meaning beyond what is in the schema, but does provide a global filter (exclude pending) which adds some value.

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 verb 'Returns' and the resource 'transactions for a specified payee', with an additional detail 'excluding any pending transactions'. This distinguishes it from sibling tools like getTransactionsByAccount which filter by account.

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 via the name and purpose, but lacks explicit guidance on when to use this tool versus alternatives (e.g., getTransactionsByCategory) or any exclusion criteria. No mentions of when not to use.

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

getUserA

Returns authenticated user information

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It correctly indicates a read operation but doesn't disclose rate limits, permissions, or other behavioral traits beyond what is obvious.

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, front-loaded with key information. No wasted words.

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

Completeness5/5

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

For a parameterless, read-only tool with no output schema, the description is complete. It communicates the essential purpose.

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?

No parameters. Schema coverage is 100% (trivially). Description adds purpose but no parameter details needed. Baseline 4 for zero parameters.

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 'Returns authenticated user information', specifying verb and resource. Distinguishes from sibling get* tools by focusing on the current user.

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?

No explicit guidance on when to use this tool vs alternatives. Usage is implied (getting current user info), but no when-not or context provided.

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

importTransactionsA

Imports available transactions on all linked accounts for the given plan. Linked accounts allow transactions to be imported directly from a specified financial institution and this endpoint initiates that import. Sending a request to this endpoint is the equivalent of clicking "Import" on each account in the web application or tapping the "New Transactions" banner in the mobile applications. The response for this endpoint contains the transaction ids that have been imported.

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).

TDQS

A3.9/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 that the tool initiates an import process, is equivalent to manual action, and returns imported transaction IDs. However, it does not specify whether the import is synchronous, rate limits, or permission requirements.

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 three sentences long, front-loading the core action. It is efficient and avoids redundancy, though the analogy could be condensed without loss of clarity.

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 single parameter and no output schema, the description adequately covers the tool's purpose, input meaning, and response content. Minor gaps include missing details on error handling and synchronous vs asynchronous behavior.

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 schema provides a description for plan_id, including special values. The tool description does not add new parameter information beyond the schema, but schema coverage is 100%, 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 tool imports available transactions on all linked accounts for a given plan, using specific verbs and resources. It distinguishes from sibling tools like createTransaction or getTransactions by emphasizing the import initiation from financial institutions.

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 clear context for when to use the tool, including an analogy to clicking 'Import' in web/mobile. However, it lacks explicit exclusion criteria or mention of alternative tools for similar tasks, such as fetching existing transactions.

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

updateCategoryC

Update a category

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
category_idYesThe id of the category
categoryYes

TDQS

C2.3/5.0
Behavior2/5

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

With no annotations provided, the description bears full burden for behavioral disclosure. It does not state whether the update is partial or full, what happens to omitted fields, whether permissions are needed, or what the response contains. Only 'Update' implies mutation.

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

Conciseness3/5

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

The description is extremely concise (4 words), but this brevity sacrifices useful detail. It is not well-structured and does not front-load critical information. A better description could be similarly concise yet more informative.

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

Completeness1/5

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

Given the tool's complexity (3 parameters including a nested object with multiple fields, no output schema, no annotations), the description is severely incomplete. It fails to mention which category attributes can be updated, the effect of omitting fields, or the response format.

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

Parameters2/5

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

Schema description coverage is 67%, which is moderate. The description adds no information about parameters beyond what the schema already provides. It neither compensates for incomplete schema documentation nor clarifies ambiguous fields.

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

Purpose3/5

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

The description 'Update a category' clearly states the verb and resource, but it does not distinguish this tool from siblings like updateCategoryGroup or createCategory. It is minimally clear but lacks differentiation.

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 is provided on when to use this tool versus alternatives (e.g., createCategory or updateCategoryGroup). There are no usage contexts, exclusions, or prerequisites mentioned.

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

updateCategoryGroupC

Update a category group

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
category_group_idYesThe id of the category group
category_groupYes

TDQS

C2.4/5.0
Behavior1/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It only says 'Update a category group,' with no mention of idempotency, permissions, or side effects. This is insufficient for a mutation tool.

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

Conciseness3/5

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

A single sentence, front-loaded with the action. However, it is so minimal that it sacrifices informativeness for brevity.

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 has 3 required parameters and no output schema, yet the description provides no context about return values, partial updates, or effect on existing data. It is incomplete for safe invocation.

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

Parameters2/5

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

Schema description coverage is 67%, and the description adds no extra meaning beyond the schema's parameter descriptions. For example, plan_id already explains the 'last-used' and 'default' values. The description does not compensate for the missing schema description on the category_group object.

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 'Update a category group' clearly states the action and resource, distinguishing it from related tools like createCategoryGroup. However, it lacks specificity about which fields can be updated.

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 is provided on when to use this tool versus alternatives like updateCategory or updateMonthCategory. The description does not specify context or prerequisites.

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

updateMonthCategoryA

Update a category for a specific month. Only budgeted (assigned) amount can be updated.

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
monthYesThe plan month in ISO format (e.g. 2016-12-01) ("current" can also be used to specify the current calendar month (UTC))
category_idYesThe id of the category
categoryYes

TDQS

A4/5.0
Behavior3/5

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

No annotations exist, so the description must cover behavioral traits. It states 'Only budgeted (assigned) amount can be updated', which is a key constraint. However, it does not disclose side effects, authorization needs, rate limits, or what happens if other fields are omitted. Adequate 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?

Two sentences, front-loaded with verb and object, no redundant information. 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 simplicity (4 required params, no output schema), the description covers the core action and constraint. It lacks mention of partial update behavior (e.g., PATCH vs PUT) but is adequate for a straightforward mutation 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 high (75%), and the description adds value by reinforcing that only the 'budgeted' field is updatable, clarifying intent beyond the schema's property description. This explicitly tells the agent which parameter to focus on.

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 ('Update') and resource ('a category for a specific month'), and distinguishes from sibling tools like 'updateCategory' or 'getMonthCategoryById' by specifying the scope (month and budgeted amount).

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 updating the budgeted amount but does not explicitly state when to use this tool over alternatives like 'updateCategory' or when not to use it. No exclusions or contextual hints are provided.

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

updatePayeeD

Update a payee

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
payee_idYesThe id of the payee
payeeYes

TDQS

D1.1/5.0
Behavior1/5

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

With no annotations, the description should disclose behavioral traits such as side effects or permissions, but it provides none. The verb 'Update' implies mutation, but no details on reversibility or required permissions are given.

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

Conciseness2/5

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

The description is extremely short, but this is under-specification rather than effective conciseness. It fails to provide any useful information, making it insufficient for a tool with complex input.

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

Completeness1/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 and annotations, and the presence of nested parameters, the description is completely inadequate. It does not explain return values or behavior, leaving the agent with significant gaps.

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

Parameters1/5

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

The description adds no meaning beyond the input schema. While the schema covers parameters partially (67% description coverage), the description does not explain how to use the parameters or the structure of the nested 'payee' object.

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

Purpose1/5

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

The description 'Update a payee' is a tautology, restating the tool name without specifying what aspects of a payee can be updated or how it differs from similar tools like createPayee.

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

Usage Guidelines1/5

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

No usage guidance is provided. The description does not indicate when to use this tool versus alternatives like createPayee or updateCategory, leaving the agent with no context.

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

updateScheduledTransactionC

Updates a single scheduled transaction

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
scheduled_transaction_idYesThe id of the scheduled transaction
scheduled_transactionYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It states 'Updates' but does not specify whether updates are partial or full, idempotency, error handling, or permissions required.

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 with no waste, but could be slightly expanded to include essential details without becoming verbose.

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?

For a mutation tool with 3 required parameters, a nested object, and no output schema, the description is insufficient. It does not explain the update mechanism, return value, or error scenarios.

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 67%, so baseline 3 is appropriate. The tool description adds no additional parameter-level meaning beyond what is already in the input schema.

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 'Updates a single scheduled transaction' clearly specifies the verb (Updates) and resource (scheduled transaction), but does not differentiate from sibling tools like createScheduledTransaction or deleteScheduledTransaction.

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 is provided on when to use this tool versus alternatives like createScheduledTransaction or deleteScheduledTransaction, nor any prerequisites or context for usage.

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

updateTransactionC

Updates a single transaction

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
transaction_idYesThe id of the transaction
transactionYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, and the description only says 'updates' without detailing side effects, permissions, or restrictions beyond the schema.

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, but it could be slightly more informative without becoming verbose.

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?

Missing return value info, error conditions, and behavioral constraints. Incomplete for a mutation tool with nested parameters.

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 67%, so the description adds no extra meaning over the schema. Baseline 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 that the tool updates a single transaction, distinguishing it from create/delete tools. However, it lacks specificity on which fields can be updated.

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 tool versus alternatives like updateTransactions or updateScheduledTransaction. No prerequisites or exclusions mentioned.

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

updateTransactionsC

Updates multiple transactions, by id or import_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYesThe id of the plan. "last-used" can be used to specify the last used plan and "default" can be used if default plan selection is enabled (see: https://api.ynab.com/#oauth-default-plan).
transactionsYes

TDQS

C2.7/5.0
Behavior2/5

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

The description does not disclose behavioral traits such as idempotency, side effects, or permission requirements. With no annotations, the description carries full burden, which it fails to meet.

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?

Extremely concise at one sentence, front-loading the key action and identification method. It is efficient but lacks necessary detail.

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?

Given the tool's complexity (multiple transactions, nested subtransactions), the description is too sparse. No output schema, error handling, or return value information is provided.

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

Parameters2/5

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

The description adds no meaning beyond the schema. The schema already documents id and import_id lookup, but the description does not clarify any parameter constraints or interactions.

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 it updates multiple transactions and identifies them by id or import_id. However, it does not differentiate from the singular updateTransaction beyond the plural scope.

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 versus alternatives like updateTransaction, createTransaction, or importTransactions. Missing prerequisites or context for bulk updates.

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.

  1. 44 tool updatesv0.1.0
    • First observedcreateAccount
    • First observedcreateCategory
    • First observedcreateCategoryGroup
    • First observedcreatePayee
    • First observedcreateScheduledTransaction
    • First observedcreateTransaction
    • First observeddeleteScheduledTransaction
    • First observeddeleteTransaction
    • First observedgetAccountById
    • First observedgetAccounts
    • First observedgetCategories
    • First observedgetCategoryById
    • First observedgetMoneyMovementGroups
    • First observedgetMoneyMovementGroupsByMonth
    • First observedgetMoneyMovements
    • First observedgetMoneyMovementsByMonth
    • First observedgetMonthCategoryById
    • First observedgetPayeeById
    • First observedgetPayeeLocationById
    • First observedgetPayeeLocations
    • First observedgetPayeeLocationsByPayee
    • First observedgetPayees
    • First observedgetPlanById
    • First observedgetPlanMonth
    • First observedgetPlanMonths
    • First observedgetPlans
    • First observedgetPlanSettingsById
    • First observedgetScheduledTransactionById
    • First observedgetScheduledTransactions
    • First observedgetTransactionById
    • First observedgetTransactions
    • First observedgetTransactionsByAccount
    • First observedgetTransactionsByCategory
    • First observedgetTransactionsByMonth
    • First observedgetTransactionsByPayee
    • First observedgetUser
    • First observedimportTransactions
    • First observedupdateCategory
    • First observedupdateCategoryGroup
    • First observedupdateMonthCategory
    • First observedupdatePayee
    • First observedupdateScheduledTransaction
    • First observedupdateTransaction
    • First observedupdateTransactions

TDQS

B3.2/5.0

Scored across 44 tools

Disambiguation5/5

Each tool targets a distinct resource or operation. Even with multiple filtered transaction getters, descriptions clearly differentiate them (e.g., by account, category, month, payee). No ambiguous overlaps.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern (e.g., createAccount, getAccounts, updateCategory). Filtered getters extend this with 'By' (e.g., getTransactionsByAccount). No mixed conventions.

Tool Count2/5

44 tools is significantly above the recommended 3-15 range, making the surface heavy. While YNAB has many entities, the count feels excessive for an MCP server and may overwhelm agents.

Completeness5/5

The tool set covers all major YNAB operations: CRUD for accounts, categories, payees, transactions, scheduled transactions, plans, months, and money movements. Filtered gets and import functionality ensure no dead ends.

Maintenance

ActivityStale
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to interact with YNAB budgets through natural language. Supports managing accounts, categories, transactions, and budget months with 21 tools for comprehensive budget operations.
    -
  • A
    license
    A
    quality
    C
    maintenance
    Enables interaction with You Need A Budget (YNAB) through their API, allowing users to manage budgets, accounts, categories, transactions, payees, and scheduled transactions through natural language.
    12
    15 npm
    1
    GPL 3.0
  • A
    license
    A
    quality
    B
    maintenance
    An MCP server that exposes the full YNAB API, allowing LLMs to read and manage budgets, accounts, and transactions through natural language. It features 49 specialized tools for comprehensive financial management, including category updates, money movements, and transaction tracking.
    47
    70 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Connects AI assistants to YNAB budgets, providing over 30 tools for managing budgets, accounts, transactions, categories, and analytics with delta sync and caching.
    47
    50 PyPI
    38
    AGPL 3.0