返回 MCP 目录
public公开dns本地运行

mcp-ynab-server

一个基于MCP协议的YNAB服务实现,提供预算管理功能

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
help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端