YNAB财务数据接口服务

一个基于TypeScript的MCP服务器,用于连接You Need A Budget (YNAB)账户,提供标准化的财务数据读写工具。

  • by Bulletninja
  • TypeScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 bulletninja/mcp-ynab

使用说明

MCP YNAB服务器💰

欢迎来到YNAB的MCP服务器(TypeScript版本)! 🎉 此项目允许您将Cursor(或另一个MCP客户端)连接到您的you Need A Budget(YNAB)帐户,以便直接从编辑器中与您的财务数据进行交互。

1.这是什么? 🤔 (目的)

这是对 模型上下文协议(MCP) 在TypeScript中,作为到官方YNAB API的桥梁。我们的目标是提供标准化的工具,用于从MCP兼容环境中读取和写入YNAB数据,使Cursor等人工智能助手能够帮助您处理财务问题。

2.可用工具🛠️

此服务器提供以下工具,每个工具都有自己的详细文档:

查看每个工具 README.md 有关参数、输出和使用上下文的详细信息。

3.设置🚀

  1. 克隆存储库:

    # git clone https://github.com/Bulletninja/mcp-ynab # If you haven't already
    cd mcp-ynab 
    
  2. 安装依赖关系:

    npm install
    
  3. 配置您的YNAB API令牌: 你需要一个 个人访问令牌 来自YNAB。这 推荐和测试 Cursor集成的方式是:

    • 编辑全局Cursor配置文件 ~/.cursor/mcp.json.
    • 添加或修改以下条目 mcp-ynab,确保 command, args, cwd,以及 env 正确:
      {
        "mcpServers": {
          // ... other servers ...
          "mcp-ynab": {
            "command": "node",
            // 👇 Path to the compiled script
            "args": ["<path-to-your-project>/mcp-ynab/dist/server.js"], 
            "cwd": "<path-to-your-project>/mcp-ynab", // Path to this project
            "enabled": true,
            "env": {
              // 👇 Your YNAB token here, with the correct name!
              "YNAB_API_TOKEN": "YOUR_YNAB_TOKEN_HERE" 
            }
          }
          // ... other servers ...
        }
      }
      
    • 备选方案(需要修改代码): 你可以使用 .env 文件位于项目根目录中,但您需要取消注释 dotenv 逻辑在 src/server.ts 并确保它不会干扰服务器模式。
  4. 编译代码:

    npm run build
    

4.使用游标💡

  1. 确保中的配置 ~/.cursor/mcp.json 是正确的 "enabled": true.
  2. 重新启动游标 加载更新的配置并启动服务器。
  3. 完成!在Cursor的MCP设置中,您应该看到 mcp-ynab 带有绿点和可用工具列表。
  4. 现在,您可以要求AI助手使用这些工具:
    • “列出我的YNAB预算”
    • “使用 mcp_ynab_list_accounts budget_id为“上次使用”
    • “我的账户X(ID:YYY)在预算Z中的余额是多少?”(可能使用 mcp_ynab_get_account_balance)

5.发展🧑‍💻

  • 在开发模式下运行服务器(热重新加载): npm run dev
  • 运行测试: npm test
  • 生产编译/MCP: npm run build
  • CLI模式(已注释): 运行以下命令的逻辑 node dist/server.js list-budgets 已在评论中删除 src/server.ts 因为它干扰了Cursor的MCP服务器模式。如果需要,您可以取消注释以进行本地测试,但请记住将其注释掉并重新编译以进行Cursor集成。