Y

YNAB智能对话服务器

@calebl/ynab-mcp-server
0 Stars 366 次浏览 CalebL 更新于 2026-08-23

一种模型上下文协议服务器,可实现与YNAB(You Need A Budget)数据的人工智能交互,允许用户通过对话界面查询其预算。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "ynab-mcp-server": {
      "args": [
        "ynab-mcp-server"
      ],
      "command": "npx"
    }
  }
}

该服务需要配置环境变量:YNAB_ACCESS_TOKEN

可用工具 (1 个)

该服务在 MCP 协议中暴露的工具,AI 可按需调用

ynab_list_budgets

Lists all available budgets from YNAB API

该工具无需必填参数,直接调用即可

服务介绍

ynab-mcp-server

smithery badge

这是一个使用 mcp-framework 构建的 Model Context Protocol (MCP) 服务器。该 MCP 提供了与你在 https://ynab.com 上设置的 YNAB 预算进行交互的工具。

为了让 AI 与此工具进行交互,你需要从 YNAB 获取你的个人访问令牌:https://api.ynab.com/#personal-access-tokens。当你将此 MCP 服务器添加到任何客户端时,你需要提供你的个人访问令牌作为 YNAB_API_TOKEN。此令牌永远不会直接发送给 LLM。 它被私密地存储在环境变量中,用于与 YNAB API 一起使用。

设置

指定环境变量:

  • YNAB_API_TOKEN(必需)
  • YNAB_BUDGET_ID(可选)

目标

该项目的目标是能够通过 AI 对话与我的 YNAB 预算进行交互。我想启用一些主要的工作流程:

工作流程:

首次设置

  • 被提示从你的可用预算中选择预算。如果你尝试先使用其他工具,应该会有一个提示要求你设置默认预算。
    • 所需工具:ListBudgets

管理超支类别

添加新交易

批准交易

检查月总支出与总收入

根据类别目标自动分配待分配资金

当前状态

可用工具:

  • ListBudgets - 列出你账户中的可用预算
  • BudgetSummary - 提供资金不足的类别和余额低的账户的摘要
  • GetUnapprovedTransactions - 检索所有未批准的交易
  • CreateTransaction - 为指定的预算和账户创建交易。
    • 示例提示:今天我在 REI 花了 3.98 美元,请在我的 Ally 账户中添加这笔交易
    • 需要首先调用 GetBudget 以便我们知道账户 ID
  • ApproveTransaction - 批准你 YNAB 预算中的现有交易
    • 需要一个交易 ID 来批准
    • 可以与 GetUnapprovedTransactions 结合使用来批准待处理的交易
    • 在调用获取未批准交易后,提示:批准 Apple Card 上 6.95 美元的交易

下一步:

  • 能够一次批准多个交易
  • updateCategory 工具 - 或者更通用的 updateTransaction 工具,如果我能正确地使用 zod 和 mcp 框架处理可选参数
  • 是否脱离 mcp 框架直接使用模型上下文协议 SDK?

快速开始

# Install dependencies
npm install

# Build the project
npm run build

项目结构

ynab-mcp-server/
├── src/
│   ├── tools/        # MCP Tools
│   └── index.ts      # Server entry point
├── .cursor/
│   └── rules/        # Cursor AI rules for code generation
├── package.json
└── tsconfig.json

添加组件

YNAB SDK 描述了可用的 API 端点:https://github.com/ynab/ynab-sdk-js

YNAB 开放 API 规范在这里: https://api.ynab.com/papi/open_api_spec.yaml。这可以用来提示 AI 生成一个新的工具。例如,对 Cursor Agent 的提示:

create a new tool based on the readme and this openapi doc: https://api.ynab.com/papi/open_api_spec.yaml

The new tool should get the details for a single budget

您可以使用 CLI 添加更多工具:

# Add a new tool
mcp add tool my-tool

# Example tools you might create:
mcp add tool data-processor
mcp add tool api-client
mcp add tool file-handler

工具开发

示例工具结构:

import { MCPTool } from "mcp-framework";
import { z } from "zod";

interface MyToolInput {
  message: string;
}

class MyTool extends MCPTool<MyToolInput> {
  name = "my_tool";
  description = "Describes what your tool does";

  schema = {
    message: {
      type: z.string(),
      description: "Description of this input parameter",
    },
  };

  async execute(input: MyToolInput) {
    // Your tool logic here
    return `Processed: ${input.message}`;
  }
}

export default MyTool;

发布到 npm

  1. 更新您的 package.json:

    • 确保 name 是唯一的,并遵循 npm 命名约定
    • 设置适当的 version
    • 添加 description, author, license 等信息
    • 检查 bin 是否指向正确的入口文件
  2. 本地构建和测试:

    npm run build
    npm link
    ynab-mcp-server  # 本地测试您的 CLI
    
  3. 登录 npm(如果需要,请创建账户):

    npm login
    
  4. 发布您的包:

    npm publish
    

发布后,用户可以通过 Claude 桌面客户端添加它(请参阅下文),或者使用 npx 运行它。

与 Claude Desktop 一起使用

通过 Smithery 安装

要通过 Smithery 自动安装 YNAB 预算助手到 Claude Desktop:

npx -y @smithery/cli install @calebl/ynab-mcp-server --client claude

本地开发

将此配置添加到您的 Claude Desktop 配置文件中:

MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "ynab-mcp-server": {
      "command": "node",
      "args":["/absolute/path/to/ynab-mcp-server/dist/index.js"]
    }
  }
}

发布之后

将此配置添加到您的 Claude Desktop 配置文件中:

MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "ynab-mcp-server": {
      "command": "npx",
      "args": ["ynab-mcp-server"]
    }
  }
}

其他 MCP 客户端

查看 https://modelcontextprotocol.io/clients 获取其他可用的客户端。

构建和测试

  1. 对您的工具进行修改
  2. 运行 npm run build 来编译
  3. 服务器将在启动时自动加载您的工具

了解更多

相关 MCP 服务