Labsco
Jtewen logo

YNAB MCP Server

β˜… 10

from Jtewen

Integrate AI assistants with your You Need A Budget (YNAB) account for budget automation and analysis.

πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedFreeAdvanced setup

YNAB MCP Server

PyPI version License: MIT

A Model Context Protocol (MCP) server for seamless integration with You Need A Budget (YNAB). This server enables AI assistants to interact with your YNAB budgets, providing powerful automation and analysis capabilities.

Features

  • Complete Budget Management

    • View and manage multiple budgets
    • Track account balances and transactions
    • Monitor category spending and goals
  • Transaction Control

    • List and search transactions
    • Update transaction details
    • Manage payees and categories
  • Financial Analysis

    • Get comprehensive financial overviews
    • Track spending patterns
    • Monitor budget progress

Table of Contents

Available Tools

The server provides a suite of tools for interacting with your YNAB data. The descriptions explain the purpose and recommended usage for each tool.

ToolDescription
manage-financial-overviewGet, update, or refresh a high-level financial overview. This is the best starting point for any analysis, providing account balances, goals, and important context notes.
list-accountsList all accounts for a given budget. Useful for getting account IDs for other tools.
get-month-infoGet detailed budget information for a single month, including age of money and total amounts budgeted, spent, and available. Call this to check the monthly budget's status before making changes.
list-categoriesList all categories, groups, and their budgeting details. Call this before managing budgeted amounts to see what's available and what's already been allocated.
list-transactionsList transactions for a specific account or an entire month. Use this to investigate spending patterns identified in the financial overview.
list-scheduled-transactionsList all upcoming scheduled transactions. Useful for forecasting upcoming bills.
manage-budgeted-amountAssign a budgeted amount to a category or move money between categories. This is the primary tool for allocating funds. (Write operations disabled in read-only mode)
bulk-manage-transactionsCreate, update, or delete multiple transactions at once. More efficient than making single changes. (Write operations disabled in read-only mode)
manage-scheduled-transactionCreate, update, or delete a single scheduled (recurring) transaction. Use this to manage recurring bills or savings transfers. (Write operations disabled in read-only mode)
list-payeesList all payees for a given budget. Good for finding payee IDs or identifying messy payee data that needs to be merged.
manage-payeesMerge multiple payee names into a single name. Use this to clean up payee data. (Write operations disabled in read-only mode)
lookup-entity-by-idLook up the name and details of a specific account, category, or payee by its ID. A utility for when you have an ID but need the full context.
lookup-payee-locationsLook up geographic locations associated with a payee.
list-budgetsList all available YNAB budgets (Not available in single-budget mode).

Development

Local Setup

  1. Clone the repository:

    Copy & paste β€” that's it
    git clone https://github.com/yourusername/ynab-mcp-server.git
    cd ynab-mcp-server
  2. Install dependencies:

    Copy & paste β€” that's it
    uv sync
  3. Run the server:

    Copy & paste β€” that's it
    uv run ynab-mcp-server

Debugging

Use the MCP Inspector for debugging:

Copy & paste β€” that's it
npx @modelcontextprotocol/inspector uvx ynab-mcp-server

For local development debugging:

Copy & paste β€” that's it
cd path/to/ynab-mcp-server
npx @modelcontextprotocol/inspector uv run ynab-mcp-server

You can also view logs with:

Copy & paste β€” that's it
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log

Building and Publishing

Copy & paste β€” that's it
# Build package
uv build

# Publish to PyPI
uv publish

Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Please ensure your PR:

  • Follows the existing code style
  • Includes appropriate tests
  • Updates documentation as needed

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments