使用说明
YNAB MCP服务器
一个TypeScript模型上下文协议(MCP)服务器,它封装了 YNAB API 对事务分类和拆分工作流提供一流的支持。所有YNAB端点都通过通用工具公开,而精心策划的助手简化了常见的预算任务。
特性
- 🔐 环境驱动的配置,通过验证
zod. - 🔁 自动生成的TypeScript类型和从实时OpenAPI规范导出的端点元数据。
- 🧰 43个MCP工具,包括:
- 预算上下文系统(缓存预算数据,最少API调用)
- 预算、账户和交易发现助手
- 交易分类和拆分以及阶段审查应用工作流
- YNAB API全面覆盖(类别、收款人、计划交易等)
- ⚡ 针对本地LLM进行了性能优化(预算上下文缓存、高效数据结构)
- 🧪 使用Vitest和模拟API响应的综合测试套件。
入门指南
-
安装Node.js 20+
该项目依赖于内置的Fetch API和node:test跑步者。 -
安装依赖项
pnpm install您可以替换
pnpm随着npm或yarn如果愿意的话。 -
配置环境变量 复制
env.example到.env并填写您的凭据。cp env.example .envYNAB_ACCESS_TOKEN-您的YNAB个人访问令牌(必填)READ_ONLY-设置为true启用只读模式(可选,默认为false)
-
生成TypeScript类型
pnpm generate:types这将下载最新的OpenAPI规范,并在以下位置发出强类型模式和端点元数据
src/generated/ynab.types.ts. -
运行MCP服务器(stdio传输)
pnpm dev入口点发送至
@modelcontextprotocol/sdk使用stdio传输,实现与MCP兼容客户端的集成。 -
执行测试
pnpm test
连接到LM Studio
LM工作室 版本0.3.17+支持模型上下文协议(MCP)服务器,允许您将此YNAB服务器与本地语言模型一起使用。
先决条件
- LM Studio 0.3.17或更高版本 安装
- Node.js 20+ 和 pnpm 安装
- YNAB个人访问令牌 已配置(请参阅入门中的步骤3)
配置步骤
-
构建MCP服务器
pnpm install pnpm build这将在
dist/目录。 -
找到您的项目目录 注意到该存储库的绝对路径(例如。,
/home/user/ynab-mcp). -
打开LM Studio的MCP配置
- 启动LM工作室
- 切换到 程序 右侧边栏中的选项卡
- 点击 安装 → 编辑mcp.json
- 应用内编辑器将打开
-
添加YNAB服务器配置
将此配置添加到LM Studio
mcp.json:{ "mcpServers": { "ynab": { "command": "node", "args": ["/absolute/path/to/ynab-mcp/dist/index.js"], "env": { "YNAB_ACCESS_TOKEN": "your-ynab-access-token-here", "READ_ONLY": "true" } } } }重要提示:
- 替换
/absolute/path/to/ynab-mcp使用您的实际存储库路径 - 替换
your-ynab-access-token-here与你的 YNAB个人访问令牌 - 集
READ_ONLY到"false"启用写入操作(小心使用)
- 替换
-
保存并重新加载
- 保存
mcp.json文件(LM Studio自动检测更改) - YNAB服务器将出现在您可用的工具中
- 当模型尝试调用YNAB工具时,LM Studio将显示一个确认对话框
- 保存
安全说明
- 永不承诺 你的
mcp.json使用真实访问令牌 - LM Studio在执行YNAB API请求之前显示工具调用确认
- 您可以将常用工具列入白名单或通过以下方式管理权限 工具和集成 在LM Studio设置中
- 仅安装来自可信来源的MCP服务器
故障排除
- 服务器未出现: 验证到的绝对路径
dist/index.js是正确的 - 身份验证错误: 仔细检查你的
YNAB_ACCESS_TOKEN有效且未过期 - 模块错误: 确保你跑了
pnpm build和那个dist/目录存在 - 令牌限制: 一些工具可能会产生大量响应;考虑使用更有能力的本地模型
关键脚本
| 命令 | 描述 |
|---|---|
pnpm dev |
使用实时TypeScript执行启动MCP服务器(tsx). |
pnpm build |
将TypeScript编译为 dist/. |
pnpm start |
运行编译后的JavaScript构建。 |
pnpm generate:types |
使用提供的Python脚本重新生成基于OpenAPI的类型。 |
pnpm test |
在下运行节点内置测试 tests/. |
pnpm clean |
删除 dist/ 构建输出。 |
项目布局
src/config/env.ts–环境加载和验证。src/api/ynabClient.ts–基于生成的HTTP客户端类型Paths地图。src/server/server.ts–MCP服务器工厂+stdio引导程序。src/tools/–工具注册和助手(分类、拆分、列表、通用请求)。src/generated/–自动生成YNAB模式和端点元数据。tools/generate_types.py–基于Python的生成器,利用供应商提供的PyYAML。tests/–关键客户端行为的节点测试套件。
备注
- repo提供了PyYAML的最小副本
tools/vendor/yaml以避免外部依赖安装。 - 所有MCP响应都包括人类可读的摘要和结构化的
data用于下游自动化的有效载荷。 - 在拆分交易时,助手可以选择强制执行总计以匹配现有交易金额。
快乐预算! 💸