article
README
🚀 MCP YNAB 服务器
MCP YNAB 服务器借助模型上下文协议(Model Context Protocol),实现对 YNAB(You Need A Budget)功能的便捷访问,为用户提供了标准化的资源访问途径,轻松管理账户与交易。
🚀 快速开始
MCP YNAB 服务器可通过模型上下文协议(MCP)访问 YNAB 功能。在使用前,你需要获取 YNAB API 密钥,该密钥可从YNAB 开发者设置获取。获取后,可通过环境变量、MCP 秘密管理系统或项目根目录中的 .env 文件提供该密钥。
以下是启动服务器的命令:
# 开发模式,带热重载和浏览器启动
task dev
# 生产安装,适用于Claude Desktop、Goose或其他支持MCP的环境
task install
✨ 主要特性
- 账户与交易管理:支持查看账户余额和交易信息,还能创建新交易。
- 标准化访问:通过标准化的 MCP 资源访问 YNAB 数据。
📦 安装指南
在项目根目录下,使用以下命令进行安装:
uv pip install -e .
💻 使用示例
基础用法
# 创建一个新交易
result = await create_transaction(
account_id="your_account_id",
amount=42.50, # 美元金额
payee_name="Coffee Shop",
category_name="Dining Out",
memo="Morning coffee"
)
# 获取账户余额
balance = await get_account_balance("your_account_id")
# 列出账户
accounts = await ctx.read_resource("ynab://accounts")
# 获取近期交易
transactions = await ctx.read_resource(f"ynab://transactions/{account_id}")
高级用法
# 运行所有测试,包括集成测试(需要YNAB API密钥)
task test:all
# 生成覆盖报告
task coverage
# 格式化和检查代码
task fmt # 应将此添加到Taskfile中
📚 详细文档
可用资源
ynab://accounts- 列出所有 YNAB 账户。ynab://transactions/{account_id}- 获取特定账户的近期交易。
可用工具
create_transaction- 创建新交易。get_account_balance- 获取账户当前余额。
项目任务
该项目使用 Taskfile 来管理常见操作,关键命令如下:
task dev # 运行开发服务器,带自动重新加载
task test # 运行单元测试
task coverage # 生成测试覆盖报告
task install # 安装生产版本
task deps # 同步依赖项
查看Taskfile.yml以获取所有可用任务。
开发流程
# 安装依赖(使用uv)
task deps
微信扫一扫