YNAB MCP Server

YNAB MCP Server

一个模型上下文协议服务器,它支持通过 AI 驱动的方式与 YNAB (You Need A Budget) 数据进行交互,允许用户通过对话界面查询他们的预算。

Category
访问服务器

Tools

ynab_list_budgets

Lists all available budgets from YNAB API

README

ynab-mcp-server

一个使用 mcp-framework 构建的模型上下文协议 (MCP) 服务器。此 MCP 提供了与您在 https://ynab.com 上设置的 YNAB 预算进行交互的工具。

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

设置

指定环境变量:

  • YNAP_API_TOKEN (必需)
  • KNOWLEDGE_DIR (可选) - 知识文件应存储的目录。 默认为服务器运行的 data 目录。
  • KNOWLEDGE_FILE (可选) - 知识文件的名称。 默认为 server-knowledge.json

目标

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

工作流程:

首次设置

  • 提示您从可用的预算中选择您的预算。 如果您首先尝试使用其他工具,则应出现此提示,要求您设置默认预算。
    • 需要的工具:ListBudgets, SetBudget

管理超支类别

添加新交易

批准交易

检查每月总支出与总收入

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

当前状态

可用工具:

  • ListBudgets - 列出您帐户上的可用预算
  • BudgetSummary - 提供资金不足的类别和帐户余额不足的摘要
  • GetUnapprovedTransactions - 检索所有未批准的交易
  • CreateTransaction - 为指定的预算和帐户创建交易。
    • 示例提示:Add a transaction to my Ally account for $3.98 I spent at REI today (向我的 Ally 帐户添加一笔在 REI 花费的 3.98 美元的交易)
    • 需要先调用 GetBudget,以便我们知道帐户 ID

下一步:

  • 转移到按月调用预算,而不是从整个预算中获取类别:https://api.ynab.com/v1#/Months/getBudgetMonth

快速开始

# 安装依赖
npm install

# 构建项目
npm run build

项目结构

ynab-mcp-server/
├── src/
│   ├── tools/        # MCP 工具
│   └── index.ts      # 服务器入口点
├── package.json
└── tsconfig.json

添加组件

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

YNAB open 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

(基于自述文件和此 openapi 文档创建一个新工具:https://api.ynab.com/papi/open_api_spec.yaml

新工具应获取单个预算的详细信息)

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

# 添加新工具
mcp add tool my-tool

# 您可能创建的示例工具:
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
    • 添加 descriptionauthorlicense 等。
    • 检查 bin 是否指向正确的入口文件
  2. 在本地构建和测试:

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

    npm login
    
  4. 发布您的包:

    npm publish
    

发布后,用户可以将其添加到他们的 claude 桌面客户端(阅读下文)或使用 npx 运行它

与 Claude Desktop 一起使用

本地开发

将此配置添加到您的 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. 服务器将在启动时自动加载您的工具

了解更多

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选