使用说明
午餐钱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,麻省理工学院执照。