财务管理MCP服务器

一个用于通过AI助手管理个人财务的MCP服务器,支持Lunch Money API的所有端点,提供本地和远程两种运行模式。

  • by infamousendeavors
  • TypeScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 infamousjoeg/lunchmoney-mcp

使用说明

午餐钱mcp

MCP服务器的权威 午餐费 --通过支持模型上下文协议的任何AI助手管理您的财务。

37个工具,涵盖每个Lunch Money API端点。通过stdio在本地运行,或使用OAuth 2.1通过HTTP远程运行。凭据永远不会以纯文本形式出现在磁盘上。

快速开始

npx lunchmoney-mcp setup          # Store your API token in the OS keychain
npx lunchmoney-mcp                # Start the MCP server (stdio)

然后将其添加到您的MCP客户端。对于Claude Desktop,请将以下内容添加到您的配置中:

{
  "mcpServers": {
    "lunchmoney": {
      "command": "npx",
      "args": ["lunchmoney-mcp"]
    }
  }
}

就是这样。让你的人工智能助手“显示我最近的交易”,你就可以离开了。

特性

  • 37工具 --交易、类别、标签、预算、经常性项目、资产和Plaid账户的完整CRUD
  • 两种运输方式 --stdio用于本地AI客户端(Claude Desktop、Cursor)或HTTP用于远程/多用户部署
  • 安全的凭证存储 --操作系统密钥链中的API令牌(macOS密钥链、GNOME密钥环、Windows凭据管理器);使用AES-256-GCM加密的OAuth会话令牌
  • 4个OAuth提供者 --谷歌、GitHub、CyberArk Identity或任何自定义OAuth 2.1提供商
  • 随时随地部署 --Docker、systemd、Railway、Render、Fly.io,包括一键配置
  • 278测试 --覆盖率超过90%的综合测试套件

设置

本地(stdio模式)

最适合使用Claude Desktop、Cursor或其他本地MCP客户端的单用户设置。

# Install globally (optional -- npx works too)
npm install -g lunchmoney-mcp

# Run the setup wizard to store your token securely
lunchmoney-mcp setup

# Start the server
lunchmoney-mcp

您的API令牌存储在操作系统密钥链中,从不写入磁盘。获取令牌 my.lunchmone.app/开发者.

或者,您可以使用 configureLunchMoneyToken 工具——不需要终端。

远程(HTTP模式)

最适合多用户部署、共享团队或在服务器上运行。

# Set required environment variables
export LUNCH_MONEY_API_TOKEN="your-token"
export AUTH_PROVIDER="google"  # or github, cyberark, custom
export GOOGLE_CLIENT_ID="..."
export GOOGLE_CLIENT_SECRET="..."
export BASE_URL="https://your-domain.com"

# Authorization allow-list (REQUIRED in HTTP mode — see Authentication below).
# Only these accounts may access your data; the server refuses to start without it.
export ALLOWED_EMAILS="you@example.com"

# Start the server
lunchmoney-mcp --http --port 8080

HTTP模式需要OAuth 2.1进行身份验证 和 授权允许列表。看 认证 在......下面

环境变量回退

对于没有操作系统密钥链的容器和CI:

export LUNCH_MONEY_API_TOKEN="your-token"
lunchmoney-mcp

认证

HTTP模式支持四个OAuth提供者。集 AUTH_PROVIDER 以及相应的证书:

授权是必需的,不是可选的。 OAuth只证明调用者在提供者处有一个帐户,而不能证明他们是 你。由于每个会话都共享您的单个午餐钱令牌,因此您还必须设置一个允许列表(如下),以便只有经过批准的帐户才能进入。服务器拒绝在没有允许列表的情况下以HTTP模式启动。

授权允许列表(必填)

至少设置以下一项。只有当呼叫者的验证身份与条目匹配时,才会允许其进入:

ALLOWED_EMAILS=you@example.com,partner@example.com   # exact verified emails
ALLOWED_EMAIL_DOMAINS=example.com                    # verified-email domain / Google Workspace hd
ALLOWED_GITHUB_USERS=octocat                         # GitHub logins (AUTH_PROVIDER=github)

未经验证的电子邮件总是被拒绝。不在列表中的经过身份验证的呼叫者将获得通用的“拒绝访问”。身份在服务器端从OIDC解析 idToken (Google/CyberArk/custom)或GitHub API。

谷歌

AUTH_PROVIDER=google
GOOGLE_CLIENT_ID=your-client-id
GOOGLE_CLIENT_SECRET=your-client-secret

GitHub

AUTH_PROVIDER=github
GITHUB_CLIENT_ID=your-client-id
GITHUB_CLIENT_SECRET=your-client-secret

CyberArk身份

AUTH_PROVIDER=cyberark
CYBERARK_TENANT_URL=https://abc1234.id.cyberark.cloud
CYBERARK_CLIENT_ID=your-client-id    # or OAUTH_CLIENT_ID
CYBERARK_CLIENT_SECRET=your-secret   # or OAUTH_CLIENT_SECRET

自定义OAuth

AUTH_PROVIDER=custom
OAUTH_CLIENT_ID=your-client-id
OAUTH_CLIENT_SECRET=your-client-secret
OAUTH_AUTH_URL=https://provider.com/authorize
OAUTH_TOKEN_URL=https://provider.com/token
OAUTH_SCOPES=openid,email  # optional, defaults to openid,email

部署

预构建的部署配置包含在存储库中。

码头工人

docker build -t lunchmoney-mcp .
docker run -p 8080:8080 \
  -e LUNCH_MONEY_API_TOKEN="your-token" \
  -e AUTH_PROVIDER=google \
  -e GOOGLE_CLIENT_ID="..." \
  -e GOOGLE_CLIENT_SECRET="..." \
  -e ALLOWED_EMAILS="you@example.com" \
  -e BASE_URL="https://your-domain.com" \
  lunchmoney-mcp

或者使用Docker Compose:

docker compose up

系统守护进程

systemd服务文件包含在 deploy/lunchmoney-mcp.service。复制到 /etc/systemd/system/ 并配置环境变量。

铁路

包括 railway.json 自动配置构建和启动命令。在Railway仪表板中设置环境变量。

渲染

包括 render.yaml 将服务定义为私人工作者。在“渲染”仪表板中设置环境变量。

Fly.io

fly launch
fly secrets set LUNCH_MONEY_API_TOKEN="your-token"
fly secrets set AUTH_PROVIDER=google GOOGLE_CLIENT_ID="..." GOOGLE_CLIENT_SECRET="..."
fly secrets set ALLOWED_EMAILS="you@example.com"   # required: authorization allow-list
fly deploy

工具参考

设置(1个工具)

工具 说明
configureLunchMoneyToken 配置并验证您的午餐钱API代币

用户(1个工具)

工具 说明
getUser 获取帐户详细信息,包括电子邮件、姓名和货币偏好

类别(7个工具)

工具 说明
getCategories 列出所有类别,包括组和父类别
getCategory 按ID获取单个类别
createCategory 创建新的支出或收入类别
updateCategory 更新现有类别的属性
deleteCategory 按ID删除类别
createCategoryGroup 使用可选类别ID创建新类别组
addToGroup 将现有类别添加到类别组

标签(4个工具)

工具 说明
getTags 列出所有交易标签
createTag 创建用于对交易进行分类的新标签
updateTag 更新现有标记的名称
deleteTag 按ID删除标签

交易(10种工具)

工具 说明
getTransactions 列出具有过滤功能的交易记录(日期范围、类别、标签、状态)
getTransaction 按ID获取单笔交易
createTransaction 创建新交易(支出、收入或转账)
updateTransaction 更新现有交易的属性
deleteTransaction 按ID删除交易
bulkUpdateTransactions 批量更新具有相同更改的多个事务
getTransactionGroup 检索包含所有子事务的事务组
createTransactionGroup 将多个交易分组到单个父项下
deleteTransactionGroup 删除组,恢复单个交易
unsplitTransactions 反转拆分,将子交易合并回父交易

重复项目(4个工具)

工具 说明
getRecurringItems 列出所有经常性支出和收入项目
createRecurringItem 创建新的经常性支出或收入项目
updateRecurringItem 更新现有定期项目的属性
deleteRecurringItem 按ID删除重复项目

预算(4种工具)

工具 说明
getBudgets 列出所有具有类别分配和日期范围的预算
createBudget 为具有金额和日期范围的类别创建新预算
updateBudget 更新现有预算的金额、类别或日期范围
deleteBudget 按ID删除预算

资产(4个工具)

工具 说明
getAssets 列出所有手动管理的资产
createAsset 创建新的手动管理资产
updateAsset 更新现有资产的属性,包括余额
deleteAsset 按ID删除资产

Plaid账户(2个工具)

工具 说明
getPlaidAccounts 列出所有有余额的Plaid关联账户
fetchPlaidAccounts 触发Plaid同步以更新账户余额

CLI参考

lunchmoney-mcp                  # Start in stdio mode (default)
lunchmoney-mcp --http           # Start in HTTP mode with OAuth
lunchmoney-mcp --http --port 3000  # HTTP mode on custom port
lunchmoney-mcp setup            # Run the interactive setup wizard
lunchmoney-mcp --version        # Print version

服务器还读取 PORT 环境变量时 --port 未指定。

安全

凭据存储在操作系统密钥链中,从不以纯文本形式写入磁盘。OAuth会话令牌使用AES-256-GCM加密,加密密钥存储在密钥链中。

有关两层凭证架构、威胁模型和部署安全性的完整详细信息,请参阅 安全.md.

贡献

看 贡献.md 用于开发设置、测试指南和拉取请求要求。

许可证

麻省理工学院 --版权所有(c)2026乔·加西亚

基于 午餐钱mcp 作者:Gilbert Pellegrom,麻省理工学院执照。