YNAB预算管理工具
一种模型上下文协议服务器,通过YNAB的API实现与“You Need A Budget”(YNAB)的交互,允许用户通过自然语言管理预算、账户、分类和交易。
服务介绍
YNAB MCP 服务器
一个用于通过 API 与 YNAB(You Need A Budget)交互的 Model Context Protocol (MCP) 服务器。
功能
- 获取预算、账户和分类
- 获取、创建和更新交易
- 创建新分类
- 更新分类的预算金额
- 获取预算摘要
前提条件
- Python 3.13 或更高版本
- 一个带有 API 令牌的 YNAB 账户(在这里获取你的令牌)
- UV 包管理器(可选但推荐)
安装
-
克隆此仓库
git clone https://github.com/ntdef/ynab-mcp.git cd ynab-mcp -
创建虚拟环境
uv venv -
激活虚拟环境
- Windows:
venv\Scripts\activate - Unix/MacOS:
source venv/bin/activate
- Windows:
-
使用 UV 安装依赖
# python -m pip install uv uv sync -
将
.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 许可证
致谢
- 一些代码是在 aider 的帮助下编写的
- YNAB API 文档
- fastmcp 由 Anthropic 提供