这是一个使用 mcp-framework 构建的模型上下文协议 (MCP) 服务器。此 MCP 提供了与您在 https://ynab.com 上设置的 YNAB 预算进行交互的工具。
<a href="https://glama.ai/mcp/servers/@calebl/ynab-mcp-server"> <img width="380" height="200" src="https://gips3.baidu.com/it/u=1088280954,1293262976&fm=3081&app=3081&f=PNG?w=760&h=400" alt="YNAB Server MCP 服务器" /> </a>为了让AI能够与这个工具交互,你需要从 YNAB 获取你的个人访问令牌:https://api.ynab.com/#personal-access-tokens。当你将这个 MCP 服务器添加到任何客户端时,你需要提供你的个人访问令牌作为 YNAB_API_TOKEN。**该令牌永远不会直接发送给LLM。**它被私密地存储在一个环境变量中,用于与 YNAB API 的交互。
指定环境变量:
该项目的目标是能够通过AI对话与我的YNAB预算进行交互。我想要启用几个主要的工作流程:
可用工具:
今天我在REI花费了$3.98,请添加到我的Ally账户中批准Apple卡上$6.95的交易接下来:
# 安装依赖
npm install
# 构建项目
npm run build
ynab-mcp-server/
├── src/
│ ├── tools/ # MCP 工具
│ └── index.ts # 服务器入口点
├── .cursor/
│ └── rules/ # Cursor AI规则用于代码生成
├── 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的示例提示:
根据readme和这个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 = "描述你的工具的作用";
schema = {
message: {
type: z.string(),
description: "此输入参数的描述",
},
};
async execute(input: MyToolInput) {
// 你的工具逻辑在这里
return `处理结果: ${input.message}`;
}
}
export default MyTool;
更新你的package.json:
name是唯一的,并遵循npm命名约定versiondescription,author,license等bin指向正确的入口文件本地构建和测试:
npm run build
npm link
ynab-mcp-server # 在本地测试你的CLI
登录npm(如有必要创建帐户):
npm login
发布你的包:
npm publish
发布后,用户可以通过阅读下面的内容将其添加到他们的Claude桌面客户端或使用npx运行它
要通过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":["/绝对路径/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"]
}
}
}
查看 https://modelcontextprotocol.io/clients 获取其他可用客户端。
npm run build 编译