](https://mseep.ai/app/calebl-ynab-mcp-server)
ynab mcp服务器
](https://smithery.ai/server/@calebl/ynab-mcp-server)
使用MCP框架构建的模型上下文协议(MCP)服务器。此MCP提供工具 用于与您的YNAB预算设置进行交互https://ynab.com
为了让人工智能与此工具交互,您需要获得您的个人访问令牌 来自YNAB:https://api.ynab.com/#personal-访问令牌。将此MCP服务器添加到任何 客户端,您将需要提供您的个人访问令牌YNAB_API_token。 此令牌 永远不会直接发送到LLM。 它被私密地存储在环境变量中 与YNAB api一起使用。
设置
指定环境变量:
- YNAB_API_TOKEN(必需)
- YNAB_BUDGET_ID(可选)
目标
该项目的目标是能够通过人工智能对话与我的YNAB预算进行交互。 我想启用几个主要工作流:
工作流程:
首次设置
- 系统会提示您从可用预算中选择预算。如果你试图使用另一个
首先,应该出现这个提示,要求您设置默认预算。 - 所需工具:ListBudgets
管理超支类别
添加新交易
批准交易
检查每月总支出与总收入
根据类别目标自动分配资金
当前状态
可用工具:
- ListBudgets-列出您帐户上的可用预算
- BudgetSummary-提供资金不足的类别和资金不足的账户的摘要
- GetUnapproved transactions-检索所有未批准的交易
- CreateTransaction-为指定的预算和账户创建交易。
- 示例提示: Add a transaction to my Ally account for $3.98 I spent at REI today - 要求首先调用GetBudget,以便我们知道帐户id
- 批准交易-批准YNAB预算中的现有交易
- 需要交易ID才能批准 - 可以与GetUnapprovedTransactions结合使用,以批准待处理的交易 - 调用获取未审核交易后,提示: approve the transaction for $6.95 on the Apple Card
下一页:
- 能够通过一次通话批准多笔交易
- 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生成新工具。游标代理的示例提示:
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 {
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 # Test your CLI locally- 登录npm(必要时创建帐户):
npm login- 发布您的包:
npm publish发布后,用户可以将其添加到他们的claude桌面客户端(见下文)或使用npx运行它
与Claude Desktop一起使用
通过Smithery安装
通过以下方式自动安装克劳德桌面版YNAB预算助手 史密瑟里:
npx -y @smithery/cli install @calebl/ynab-mcp-server --client claude地方发展
将此配置添加到您的Claude Desktop配置文件中:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %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 视窗: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"ynab-mcp-server": {
"command": "npx",
"args": ["ynab-mcp-server"]
}
}
}其他MCP客户端
检查https://modelcontextprotocol.io/clients对于其他可用的客户。
建造和测试
- 对工具进行更改
- 跑
npm run build编写 - 服务器将在启动时自动加载您的工具
