个人财务API工具

提供CLI和MCP服务器接口,用于管理Lunch Money个人财务API的交易、类别、账户等操作。

  • by ajaya
  • Ruby
  • 本地部署
  • 更新于
在 GitHub 查看 ajaya/lunchmoney-app

使用说明

午餐钱红宝石

MCP服务器和CLI 午餐费 个人理财API。

  • 命令行界面 --用于管理交易、类别、帐户等的人性化Thor命令
  • MCP服务器 --展示与相同的操作 模型上下文协议 与AI助手一起使用的工具

两个接口共享一个共同的后端,因此每个操作都可以在两种模式下使用。

需求

安装

git clone https://github.com/ajaya/lunchmoney-ruby.git
cd lunchmoney-ruby

安装Ruby

安装Ruby 3.4.8 房车:

brew install rv
rv install 3.4.8
ruby -v                  # verify
bundle install

配置

cp .env .env.local
# Edit .env.local and set LUNCHMONEY_API_TOKEN

或者通过CLI进行身份验证:

bundle exec ruby bin/lunchmoney login <TOKEN>

环境变量

变量 默认值 描述
LUNCHMONEY_API_TOKEN - API访问令牌(必需)
LUNCHMONEY_CACHE_DB_PATH ~/.config/lunchmoney/cache.sqlite3 SQLite缓存位置
LUNCHMONEY_LOG_LEVEL 关 debug, info, warn, error, fatal
LUNCHMONEY_LOG_OUTPUT stderr stderr, stdout,或绝对文件路径

CLI使用情况

为方便起见设置别名:

alias lunchmoney='rv run --ruby 3.4.8 ruby /path/to/lunchmoney-ruby/bin/lunchmoney'
# Help
lunchmoney help                        # list all commands
lunchmoney tree                        # show full command tree
lunchmoney transactions help list      # show all parameters for a subcommand

# Examples
lunchmoney transactions list           # last 30 days of transactions
lunchmoney transactions show 123       # single transaction
lunchmoney categories list
lunchmoney plaid_accounts list
lunchmoney user me

# JSON output (useful for scripting / AI agents)
lunchmoney transactions list --json

# Resolve foreign key IDs to full objects (requires --json)
lunchmoney transactions list --json --resolve

没有 --resolve,事务包含裸ID,如 "category_id": 42.与 --resolve,这些扩展为完整对象("category": { "id": 42, "name": "Groceries", ... }).

命令

命令 描述
help [COMMAND] 描述可用命令
tree 打印所有可用命令的树
login TOKEN 节省您的午餐钱API代币
logout 删除已保存的API令牌
交易
transactions list 列出交易记录
transactions show ID 显示单个交易
transactions create 从JSON创建事务(stdin或 --data)
transactions update ID 更新交易
transactions update_bulk 从JSON批量更新事务(stdin或 --data)
transactions delete ID 删除交易
transactions delete_bulk ID1 ID2 ... 删除多个交易记录
transactions split ID 拆分交易(stdin或 --data)
transactions unsplit ID 取消交易拆分
transactions group 组交易(stdin或 --data)
transactions ungroup ID 取消交易组分组
分类
categories list 列出类别
categories show ID 显示单个类别
categories create --name=NAME 创建类别
categories update ID 更新类别
categories delete ID 删除类别
格子帐
plaid_accounts list 列出所有与Plaid关联的帐户
plaid_accounts show ID 显示单个Plaid帐户
plaid_accounts fetch 触发Plaid数据同步
手工账目
manual_accounts list 列出所有手动管理的帐户
manual_accounts show ID 显示单个手动帐户
manual_accounts create 创建新的手动帐户
manual_accounts update ID 更新手动帐户
manual_accounts delete ID 删除手动帐户
循环项
recurring_items list 列出所有重复项目
recurring_items show ID 显示单个重复项目
标签
tags list 列出所有标签
tags show ID 显示单个标签
tags create --name=NAME 创建新标签
tags update ID 更新标签
tags delete ID 删除标签
总结
summary budget 获取日期范围的预算摘要
用户
user me 显示当前经过身份验证的用户
服务器
server start 启动MCP服务器(通过stdio的JSON-RPC)
server config 打印Claude的MCP配置片段

MCP服务器

通过stdio启动服务器:

bundle exec ruby bin/lunchmoney server

# Or with rv:
rv run --ruby 3.4.8 ruby bin/lunchmoney server

克劳德代码/克劳德桌面

生成一个带有解析路径和当前令牌的可粘贴配置片段:

bundle exec ruby bin/lunchmoney server config --claude

# Or with rv:
rv run --ruby 3.4.8 ruby bin/lunchmoney server config --claude

这将输出Claude Code、Claude Desktop和Docker的JSON块。将相关片段复制到:

  • 克劳德代码 — .mcp.json 在项目根目录中,或 ~/.claude/settings.json 全球访问
  • 克劳德桌面 — claude_desktop_config.json

如果您更喜欢手动配置,这里有一个最小的示例:

{
  "mcpServers": {
    "lunchmoney": {
      "command": "/opt/homebrew/bin/rv",
      "args": [
        "run",
        "--ruby",
        "3.4.8",
        "ruby",
        "/path/to/lunchmoney-ruby/bin/lunchmoney",
        "server"
      ],
      "cwd": "/path/to/lunchmoney-ruby",
      "env": {
        "LUNCHMONEY_API_TOKEN": "your_token_here"
      }
    }
  }
}

调整 command 和 args 对于你的Ruby版本管理器。这 server config --claude 命令检测您的本地设置并生成正确的路径。

发展

bundle exec rake test                # Run all tests
bundle exec ruby -Ilib -Itest test/tools/transactions_test.rb  # Single test file

建筑

CLI (Thor)  ─┐
             ├──▶  Api::* (shared backend)  ──▶  lunchmoney-sdk-ruby  ──▶  Lunch Money API
MCP server  ─┘

中的共享后端 lib/lunchmoney_app/api/ 包含所有业务逻辑。MCP工具处理程序(lib/lunchmoney_app/tools/)和CLI命令(lib/lunchmoney_app/cli/)是委托给他人的薄包装 Api::* 班级。

许可证

麻省理工学院