Y

YNAB预算管理工具

@ntdef/ynab-mcp
0 Stars 11 次浏览 ntdef 更新于 2026-08-23

一种模型上下文协议服务器,通过YNAB的API实现与“You Need A Budget”(YNAB)的交互,允许用户通过自然语言管理预算、账户、分类和交易。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

YNAB MCP 服务器

一个用于通过 API 与 YNAB(You Need A Budget)交互的 Model Context Protocol (MCP) 服务器。

功能

  • 获取预算、账户和分类
  • 获取、创建和更新交易
  • 创建新分类
  • 更新分类的预算金额
  • 获取预算摘要

前提条件

  • Python 3.13 或更高版本
  • 一个带有 API 令牌的 YNAB 账户(在这里获取你的令牌
  • UV 包管理器(可选但推荐)

安装

  1. 克隆此仓库

    git clone https://github.com/ntdef/ynab-mcp.git
    cd ynab-mcp
    
  2. 创建虚拟环境

    uv venv
    
  3. 激活虚拟环境

    • Windows:
      venv\Scripts\activate
      
    • Unix/MacOS:
      source venv/bin/activate
      
  4. 使用 UV 安装依赖

    # python -m pip install uv
    uv sync
    
  5. .env.example 复制为 .env 并添加你的 YNAB API 令牌

    cp .env.example .env
    # 使用你喜欢的编辑器编辑 .env
    

使用

运行服务器

uv run ynab-mcp

服务器将以标准输入输出模式启动,因此你不会看到任何输出。

可用工具

YNAB MCP 服务器提供以下工具:

预算管理

  • get_budgets: 获取已认证用户的全部预算
  • get_budget_summary: 获取预算摘要,可选地针对特定月份

账户管理

  • get_accounts: 获取特定预算的所有账户

分类管理

  • get_categories: 获取特定预算的所有分类
  • create_category: 在指定的预算组中创建一个新的分类
  • update_category_budgeted: 更新特定月份内分类的预算金额

交易管理

  • get_transactions: 获取特定预算的交易,可选地按日期、账户或分类过滤
  • create_transaction: 在指定预算中创建新的交易
  • update_transaction: 更新特定交易的一个或多个字段

开发

运行测试

uv run pytest

代码风格

本项目使用 Black 和 isort 进行代码格式化。要格式化你的代码:

uv run isort src tests
uv run black src tests

许可证

MIT 许可证

致谢