YNAB MCP Server

by calebl
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Supports publishing the MCP server as an npm package for easier distribution and installation

  • Used for building tools that interact with YNAB's API through typed interfaces

  • Utilized for schema validation of tool inputs when interacting with YNAB data

servidor ynab-mcp

Un servidor de Protocolo de Contexto de Modelo (MCP) desarrollado con mcp-framework. Este MCP proporciona herramientas para interactuar con la configuración de presupuestos de YNAB en https://ynab.com

Para que una IA interactúe con esta herramienta, deberá obtener su token de acceso personal de YNAB: https://api.ynab.com/#personal-access-tokens . Al agregar este servidor MCP a cualquier cliente, deberá proporcionar su token de acceso personal como YNAB_API_TOKEN. Este token nunca se envía directamente al LLM. Se almacena de forma privada en una variable de entorno para su uso con la API de YNAB.

Configuración

Especificar variables de entorno:

  • YNAB_API_TOKEN (obligatorio)
  • YNAB_BUDGET_ID (opcional)

Meta

El objetivo del proyecto es poder interactuar con mi presupuesto de YNAB mediante una conversación de IA. Hay algunos flujos de trabajo principales que quiero habilitar:

Flujos de trabajo:

Configuración por primera vez

  • Se le pedirá que seleccione su presupuesto entre los disponibles. Si intenta usar otra herramienta primero, debería aparecer este mensaje pidiéndole que configure su presupuesto predeterminado.
    • Herramientas necesarias: ListBudgets

Gestionar categorías de gastos excesivos

Agregar nuevas transacciones

Aprobación de transacciones

Verifique el gasto mensual total versus el ingreso total

Distribuir automáticamente fondos listos para asignar según los objetivos de la categoría

Estado actual

Herramientas disponibles:

  • ListBudgets: enumera los presupuestos disponibles en su cuenta
  • Resumen presupuestario: proporciona un resumen de las categorías con fondos insuficientes y las cuentas con fondos bajos.
  • GetUnapprovedTransactions: recupera todas las transacciones no aprobadas
  • CreateTransaction: crea una transacción para un presupuesto y una cuenta específicos.
    • Ejemplo de solicitud: Add a transaction to my Ally account for $3.98 I spent at REI today
    • requiere que se llame a GetBudget primero para que sepamos el ID de la cuenta

Próximo:

Inicio rápido

# Install dependencies npm install # Build the project npm run build

Estructura del proyecto

ynab-mcp-server/ ├── src/ │ ├── tools/ # MCP Tools │ └── index.ts # Server entry point ├── package.json └── tsconfig.json

Agregar componentes

El SDK de YNAB describe los puntos finales de API disponibles: https://github.com/ynab/ynab-sdk-js .

La especificación de la API abierta de YNAB está aquí: https://api.ynab.com/papi/open\_api\_spec.yaml . Esto puede usarse para solicitar a una IA que genere una nueva herramienta. Ejemplo de solicitud para el Agente de Cursor:

create a new tool based on the readme and this openapi doc: https://api.ynab.com/papi/open_api_spec.yaml The new tool should get the details for a single budget

Puede agregar más herramientas usando la CLI:

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

Desarrollo de herramientas

Ejemplo de estructura de herramienta:

import { MCPTool } from "mcp-framework"; import { z } from "zod"; interface MyToolInput { message: string; } class MyTool extends MCPTool<MyToolInput> { name = "my_tool"; description = "Describes what your tool does"; schema = { message: { type: z.string(), description: "Description of this input parameter", }, }; async execute(input: MyToolInput) { // Your tool logic here return `Processed: ${input.message}`; } } export default MyTool;

Publicación en npm

  1. Actualice su paquete.json:
    • Asegúrese de que name sea único y siga las convenciones de nomenclatura de npm
    • Establecer version apropiada
    • Añadir description , author , license , etc.
    • Verificar los puntos bin en el archivo de entrada correcto
  2. Construir y probar localmente:
    npm run build npm link ynab-mcp-server # Test your CLI locally
  3. Inicie sesión en npm (cree una cuenta si es necesario):
    npm login
  4. Publica tu paquete:
    npm publish

Después de publicar, los usuarios pueden agregarlo a su cliente de escritorio Claude (leer a continuación) o ejecutarlo con npx

Uso con Claude Desktop

Instalación mediante herrería

Para instalar YNAB Budget Assistant para Claude Desktop automáticamente a través de Smithery :

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

Desarrollo local

Agregue esta configuración a su archivo de configuración de Claude Desktop:

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

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

Después de la publicación

Agregue esta configuración a su archivo de configuración de Claude Desktop:

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

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

Otros clientes de MCP

Consulte https://modelcontextprotocol.io/clients para ver otros clientes disponibles.

Construcción y pruebas

  1. Realizar cambios en sus herramientas
  2. Ejecute npm run build para compilar
  3. El servidor cargará automáticamente sus herramientas al iniciarse

Más información

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Un servidor de protocolo de contexto de modelo que permite la interacción impulsada por IA con datos de YNAB (You Need A Budget), lo que permite a los usuarios consultar sus presupuestos a través de interfaces conversacionales.

  1. Setup
    1. Goal
      1. Workflows:
        1. First time setup
        2. Manage overspent categories
        3. Adding new transactions
        4. Approving transactions
        5. Check total monthly spending vs total income
        6. Auto-distribute ready to assign funds based on category targets
      2. Current state
        1. Quick Start
          1. Project Structure
            1. Adding Components
              1. Tool Development
                1. Publishing to npm
                  1. Using with Claude Desktop
                    1. Installing via Smithery
                    2. Local Development
                    3. After Publishing
                    4. Other MCP Clients
                  2. Building and Testing
                    1. Learn More
                      ID: k7h1fcvgs1