YNAB MCP Server

使用说明内容(Markdown格式)

项目简介

  • 这是一个基于 MCP(Model Context Protocol)的后端服务器,专门将 YNAB 预算数据暴露给基于 LLM 的应用。通过 MCP 标准的工具、资源和提示模板接口,LLM 可以读取预算信息、查询与创建交易、管理分类与账户等。

主要功能点

  • 读取工具(Read Tools)
    • get_budget_summary:返回预算总览、账户余额等信息。
    • get_accounts:列出所有账户及余额信息。
    • get_categories/get_category:列出分类、分组及指定分类详情。
    • get_transactions:按日期、账户、分类、付费对象等筛选的交易列表。
    • get_payees、get_monthly_budget:获取付费方列表与指定月度预算信息。
  • 写入工具(Write Tools)
    • create_transaction:创建新交易,支持基于名称的费支付方和分类的模糊匹配。
    • create_scheduled_transaction:创建定期交易。
  • 删除工具(Delete Tools)
    • delete_transaction:永久删除交易(需要明确确认)。
  • 环境和连接
    • 通过 YNAB API Token 与预算 ID 连接 YNAB 服务,服务器会缓存数据以减少 API 调用。
    • 使用 Stdio 传输作为示例传输协议(也支持其他传输方式)。

安装步骤

  1. 安装依赖并构建
    • npm install
    • npm run build
  2. 设置环境变量(运行前需要)
    • YNAB_API_TOKEN:YNAB 的个人访问令牌(必填)
    • YNAB_BUDGET_ID:可选,若未指定将自动从账户中选择第一预算
  3. 启动 MCP 服务器
    • 运行 dist/index.js(构建产物的入口)

服务器配置(MCP 客户端需要的最小配置信息) 以下配置用于 Claude/MCP 客户端在本地或服务器上启动并连接到该 MCP 服务器。配置以 JSON 形式描述,包含 server 名称、启动命令及参数等信息。注意:MCP 客户端不需要实现服务器端的代码,仅需知道如何启动并连接即可。

{ "ynab": { "server_name": "ynab", "command": "node", "args": ["/path/to/ynab-mcp/dist/index.js"], "env": { "YNAB_API_TOKEN": "your-token-here", "YNAB_BUDGET_ID": "optional-budget-id" } // 该配置用于告诉 MCP 客户端如何启动并连接到本服务器: // - command: 用于启动 MCP 服务的程序,如 node // - args: 启动程序所需的参数,指向构建产物的入口文件,如 dist/index.js // - env: 启动时注入的环境变量,必需的包括 YNAB_API_TOKEN;YNAB_BUDGET_ID 可选 } }

基本使用方法

  • 启动与连接
    • 在具有 YNAB_API_TOKEN 的环境中启动服务器(如上配置所示,或直接在服务器上执行 node dist/index.js)。
    • 将客户端(如 Claude)配置为连接该服务器,提供要启动服务器的命令和参数(如上 JSON 配置所示)。
  • 与 LLM 的交互
    • 使用 MCP 工具,如 get_budget_summary、get_transactions、create_transaction 等,通过自然语言指令来查询预算、创建或删除交易等。
    • 服务器会处理请求、进行必要的名称解析(如账户、分类、付费对象的模糊匹配),并返回结构化的 JSON-RPC 响应供 LLM 进一步处理。
  • 注意事项
    • 需要安全地管理 YNAB API Token,避免在日志或外部暴露。
    • 支持多种传输协议(示例使用 Stdio),可根据需要配置其他传输(如 WebSocket、SSE 等)。

服务器信息