YNAB MCP Server
一个模型上下文协议服务器,它支持通过 AI 驱动的方式与 YNAB (You Need A Budget) 数据进行交互,允许用户通过对话界面查询他们的预算。
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
-
更新您的 package.json:
- 确保
name是唯一的并且遵循 npm 命名约定 - 设置适当的
version - 添加
description、author、license等。 - 检查
bin是否指向正确的入口文件
- 确保
-
在本地构建和测试:
npm run build npm link ynab-mcp-server # 在本地测试您的 CLI -
登录到 npm(如果需要,创建帐户):
npm login -
发布您的包:
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 获取其他可用的客户端。
构建和测试
- 更改您的工具
- 运行
npm run build进行编译 - 服务器将在启动时自动加载您的工具
了解更多
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。