Skip to main content
Glama
Gregarrific

ynab-mcp-server

by Gregarrific

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
YNAB_API_TOKENYesYNAB personal access token
YNAB_READ_ONLYNoSet true to block all write operationsfalse

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
ynab_get_spending_summaryA

Aggregate transactions by category and return ranked spending totals.

Use this to answer questions like:

  • "How much did I spend on dining out this month?"

  • "What are my top 10 spending categories this year?"

  • "Compare groceries vs restaurants for Q1"

Amounts are returned in dollars (not YNAB milliunits). Transfers and income are excluded — only outflows are shown.

ynab_consolidate_payeeA

Rename a payee and update all its transactions to use a canonical name.

Use this to clean up messy imported payee names:

  • "AMZN*1A2B3C4D" → "Amazon"

  • "WHOLEFDS MKT #123" → "Whole Foods"

  • Merge two duplicate payees into one

IMPORTANT — always call with preview_only=true first. This shows you exactly which transactions will be affected. Only set preview_only=false after reviewing and approving the preview.

How it works:

  1. Finds all transactions belonging to source_payee_id

  2. Renames the payee itself to target_name

  3. All linked transactions automatically reflect the new name

Note: YNAB does not have a "delete payee" endpoint. Renaming the payee is the correct approach — it handles deduplication internally.

getUserA

Returns authenticated user information

getPlansB

Returns plans list with summary information

getPlanByIdA

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

getPlanSettingsByIdC

Returns settings for a plan

getAccountsB

Returns all accounts

createAccountC

Creates a new account

getAccountByIdB

Returns a single account

getCategoriesA

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

createCategoryC

Creates a new category

getCategoryByIdA

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

updateCategoryC

Update a category

getMonthCategoryByIdA

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

updateMonthCategoryA

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

createCategoryGroupC

Creates a new category group

updateCategoryGroupC

Update a category group

getPayeesB

Returns all payees

createPayeeC

Creates a new payee

getPayeeByIdB

Returns a single payee

updatePayeeD

Update a payee

getPayeeLocationsB

Returns all payee locations

getPayeeLocationByIdC

Returns a single payee location

getPayeeLocationsByPayeeB

Returns all payee locations for a specified payee

getPlanMonthsC

Returns all plan months

getPlanMonthB

Returns a single plan month

getMoneyMovementsC

Returns all money movements

getMoneyMovementsByMonthC

Returns all money movements for a specific month

getMoneyMovementGroupsC

Returns all money movement groups

getMoneyMovementGroupsByMonthC

Returns all money movement groups for a specific month

getTransactionsC

Returns plan transactions, excluding any pending transactions

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.

updateTransactionsC

Updates multiple transactions, by id or import_id.

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.

getTransactionByIdC

Returns a single transaction

updateTransactionC

Updates a single transaction

deleteTransactionC

Deletes a transaction

getTransactionsByAccountB

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

getTransactionsByCategoryA

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

getTransactionsByPayeeA

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

getTransactionsByMonthB

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

getScheduledTransactionsC

Returns all scheduled transactions

createScheduledTransactionB

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

getScheduledTransactionByIdB

Returns a single scheduled transaction

updateScheduledTransactionC

Updates a single scheduled transaction

deleteScheduledTransactionB

Deletes a scheduled transaction

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

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

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

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