财务数据集成服务器

一个与Lunch Money API完全集成的HTTP服务器,使AI助手能够通过标准化接口与用户的财务数据进行交互。

  • by gilbitron
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 gilbitron/lunch-money-mcp

使用说明

午餐钱MCP服务器(HTTP)

MCP(HTTP)服务器,提供与Lunch Money API的完全集成。该服务器使AI助手能够通过标准化的界面与您的Lunch Money财务数据进行交互。

注意:这被设计为用作可流式传输的HTTP服务器。如果您正在寻找本地MCP支持(stdio传输),请参阅 阿库蒂舍夫斯基/午餐钱mcp.

特性

  • 用户管理 -访问用户帐户详细信息
  • 分类 -创建、更新和组织支出类别
  • 标签 -管理交易标签
  • 交易 -通过高级过滤对交易进行完整的CRUD操作
  • 经常性项目 -跟踪和管理经常性费用
  • 预算 -按类别创建和监控预算
  • 资产 -跟踪手动管理的资产

先决条件

安装

  1. 克隆或下载此存储库
  2. 安装依赖项:
npm install
  1. 复制 .env.example 到 .env 并添加您的API令牌:
cp .env.example .env

编辑 .env 并添加您的午餐钱API代币:

LUNCH_MONEY_API_TOKEN=your_api_token_here
PORT=8080

用法

发展模式

在热重载的开发模式下运行服务器:

npm run dev

生产模式

构建并运行:

npm run build
npm start

服务器将在端口8080(或您的 .env 文件)。

使用FastMCP CLI进行测试

您可以使用FastMCP开发工具测试服务器:

npx fastmcp dev src/index.ts

或使用MCP检查器:

npx fastmcp inspect src/index.ts

使用MCP测试客户端进行测试

此项目包括一个测试客户端脚本,该脚本连接到您的MCP服务器,并允许您以编程方式测试工具。

首先,确保您的服务器正在运行:

npm run dev

然后在另一个终端中,安装依赖项(如果尚未安装)并运行测试客户端:

npm install
npm run test:client

可用的测试客户端命令:

  • 列出所有可用工具:

    npm run test:client -- --list
    
  • 调用特定工具(默认为 getUser):

    npm run test:client -- --tool getUser
    npm run test:client -- --tool getCategories
    npm run test:client -- --tool getTransactions
    
  • 调用带有参数的工具:

    npm run test:client -- --tool getTransactions --args '{"start_date":"2024-01-01","end_date":"2024-12-31"}'
    
  • 显示帮助:

    npm run test:client -- --help
    

环境变量:

您可以使用环境变量配置测试客户端:

  • MCP_SERVER_URL -服务器URL(默认值: http://localhost:8080)
  • MCP_ENDPOINT -MCP端点路径(默认值: /mcp -FastMCP的httpStream默认值)

可用工具

用户管理

  • get用户 -获取当前用户的帐户详细信息,包括电子邮件、姓名、货币偏好和设置

分类

  • 获取类别 -列出所有类别,包括类别组和父类别
  • 创建类别 -创建新的支出或收入类别
  • 更新分类 -更新现有类别的属性
  • 删除类别 -按ID删除类别

标签

  • 获取标签 -列出所有交易标签
  • 创建标签 -创建用于对交易进行分类的新标签
  • %剩下的 -更新现有标记的名称
  • 删除标签 -按ID删除标签

交易

  • getTransactions -列出具有高级筛选选项的交易,包括:
    • 日期范围(开始日期、结束日期)
    • 类别(Category_id)
    • 标签(tag_id)
    • 帐户(Account_id)
    • 状态(已清除、未清除、反复出现、建议回避)
    • 分页(偏移、限制)
  • 创建交易 -创建新交易(支出、收入或转账)
  • 左 -更新现有交易的属性
  • deleteTransaction -按ID删除交易
  • 散装剩余 -批量更新具有相同更改的多个事务

经常性项目

  • 获取重复项目 -列出所有经常性支出和收入项目
  • 创建重复项 -创建新的经常性支出或收入项目
  • 更新 -更新现有定期项目的属性
  • 删除重复项 -按ID删除重复项目

预算

  • get预算 -列出所有预算及其类别分配和日期范围
  • 创建预算 -为具有金额和日期范围的类别创建新预算
  • 更新预算 -更新现有预算的金额、类别或日期范围
  • 删除预算 -按ID删除预算

资产

  • 获取资产 -列出所有手动管理的资产
  • createAsset -创建新的手动管理资产
  • 取消 -更新现有资产的属性,包括余额和元数据
  • deleteAsset -按ID删除资产

配置

环境变量

  • LUNCH_MONEY_API_TOKEN (必需)-您的午餐钱API访问令牌
  • PORT (可选)-服务器端口,默认为8080
  • SERVER_API_KEY (可选)-用于服务器身份验证的API密钥。如果设置,所有请求都必须在 Authorization 标题(格式: Bearer <key> 或者只是 <key>)

与Claude Desktop一起使用

将以下内容添加到您的Claude Desktop配置文件中:

{
  "mcpServers": {
    "lunch-money": {
      "command": "node",
      "args": ["/path/to/lunch-money-mcp/dist/index.js"],
      "env": {
        "LUNCH_MONEY_API_TOKEN": "your_api_token_here"
      }
    }
  }
}

或用于开发:

{
  "mcpServers": {
    "lunch-money": {
      "command": "npm",
      "args": ["run", "dev"],
      "cwd": "/path/to/lunch-money-mcp",
      "env": {
        "LUNCH_MONEY_API_TOKEN": "your_api_token_here"
      }
    }
  }
}

部署

部署到Fly.io

此MCP服务器可通过API密钥验证部署到Fly.io。

先决条件

  1. 安装Fly.io命令行界面:

    curl -L https://fly.io/install.sh | sh
    
  2. 使用Fly.io进行身份验证:

    fly auth login
    

初始设置

  1. 启动您的应用程序(这将创建 fly.toml 如果它不存在):

    fly launch --no-deploy
    

    在设置过程中:

    • 选择一个唯一的应用程序名称(或使用默认名称)
    • 选择您喜欢的地区
    • 拒绝添加数据库(不需要)
    • 还不部署(我们先设置机密)
  2. 设置您的秘密(API密钥):

    fly secrets set LUNCH_MONEY_API_TOKEN=your_lunch_money_token
    fly secrets set SERVER_API_KEY=your_secure_api_key_here
    

    重要提示: 为生成强随机API密钥 SERVER_API_KEY。这将用于对MCP服务器的请求进行身份验证。

  3. 部署您的应用程序:

    fly deploy
    
  4. 验证部署:

    fly status
    

使用已部署的服务器

部署后,您的服务器将在 https://your-app-name.fly.dev/mcp.

使用API密钥验证:

所有请求都必须在 Authorization 头球

curl -H "Authorization: Bearer your_secure_api_key_here" \
     https://your-app-name.fly.dev/mcp

健康检查:

服务器包括一个使用FastMCP内置的健康检查端点 /health 端点(无需身份验证):

curl https://your-app-name.fly.dev/health

管理秘密

  • 查看机密: fly secrets list
  • 更新机密: fly secrets set SERVER_API_KEY=new_key
  • 删除一个秘密: fly secrets unset SERVER_API_KEY

更新部署

更改代码后:

fly deploy

查看日志

fly logs

api参考

此MCP服务器与 午餐钱API v1.所有端点都遵循API官方文档。

许可证

麻省理工学院

贡献

欢迎投稿!请随时提交拉取请求。