lunchmoney-readonly-mcp
面向 ChatGPT 的只读 Lunch Money MCP
一个为 Lunch Money 设计的单用户远程 MCP 服务器,专为 ChatGPT Business 打造,部署在 Cloudflare Workers 上。它仅使用 Google OAuth 来识别已列入白名单的用户;Lunch Money API 令牌作为 Cloudflare 加密密钥存储,绝不会返回给 ChatGPT 或 MCP 工具。
该项目最初基于 bm1549/lunchmoney-mcp-cloudflare 项目,并已改编为面向 Cloudflare Workers 和 ChatGPT 的只读 Lunch Money MCP 模板。 上游实现以 vendor-lunchmoney-mcp 的形式保留,包含其原始 MIT 许可证和署名。感谢 Brian Marks 的原始工作。
此仓库是一个模板。它不包含任何在线部署 URL、API 令牌、Google OAuth 密钥、电子邮件地址或 Cloudflare 资源 ID。
只读特性
服务器通过两个独立层强制实施只读访问:
createReadonlyServer()公开了 25 个检索工具的正向白名单。创建、更新、删除、上传、同步、刷新、拆分、分组和预算变更工具均未注册。runWithReadonlyConfig()在发起网络请求前拒绝任何对 Lunch Money API 的非GET请求。
所有公开的工具均声明 readOnlyHint: true、destructiveHint: false 和 openWorldHint: false。
Related MCP server: Monarch Money MCP Server
需求
一个 Lunch Money API 令牌
一个已启用 Workers 和 KV 的 Cloudflare 账户
一个 Google Cloud OAuth 2.0 Web 客户端
一个 ChatGPT Business 工作空间,你需为该空间的管理员或所有者
部署你自己的副本
克隆此仓库,然后安装并验证依赖项:
npm install npm run typecheck npm run lint npm run test:readonly在
wrangler.jsonc中,选择一个唯一的 Workername并创建 OAuth KV 命名空间:npx wrangler kv namespace create OAUTH_KV将返回的命名空间 ID 复制到
wrangler.jsonc中的REPLACE_WITH_OAUTH_KV_NAMESPACE_ID处。首次部署以获取你的 Worker URL:
npx wrangler deploy创建一个 Google OAuth 2.0 Web 应用程序。添加此重定向 URI,并将主机替换为你的 Worker URL:
https://YOUR-WORKER.YOUR-SUBDOMAIN.workers.dev/authorize/callback以交互方式设置生产密钥。切勿将其值放入 Git:
npx wrangler secret put GOOGLE_CLIENT_ID npx wrangler secret put GOOGLE_CLIENT_SECRET npx wrangler secret put ALLOWED_EMAILS npx wrangler secret put STATE_SECRET npx wrangler secret put LUNCHMONEY_API_TOKENALLOWED_EMAILS是一个逗号分隔的 Google 账户列表,这些账户被允许连接。当此列表为空时,服务器将默认拒绝连接。再次部署。你的 MCP 端点为:
https://YOUR-WORKER.YOUR-SUBDOMAIN.workers.dev/mcp
连接 ChatGPT Business
在 ChatGPT 中,打开 Workspace settings → Apps → Create。
输入上述
/mcp端点,然后选择 OAuth 身份验证。查看自定义应用警告,创建草稿,然后发布并启用它。
每个用户从 Settings → Plugins → [你的应用] → Connect 连接,并使用已列入白名单的 Google 账户登录。
启动一个新的 Work 对话,选择该应用,并在要求其检查 Lunch Money 数据前验证工具列表。
在公开仓库前
运行:
npm run check:public-release同时检查 git status,确认 .dev.vars 未被跟踪,并确保 Worker 名称、端点、Cloudflare 资源 ID 以及示例文档不会泄露你的个人部署信息。
如果你正在整理现有部署,请将其配置保留在仓库外部,或放在已加入 gitignore 的 wrangler.personal.jsonc 文件中。使用 npx wrangler deploy --config wrangler.personal.jsonc 部署该私有配置。
验证
重点安全测试验证精确的白名单、其注解、代表性变更工具的缺失,以及对外发 POST 请求的拒绝:
npm run test:readonly详见 THIRD_PARTY_NOTICES.md 了解归属信息。
This server cannot be deployed
Maintenance
Related MCP Connectors
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
The HubSpot MCP Server acts as a bridge that enables AI assistants and Large Language Models to securely interact with HubSpot CRM data through natural conversation, without requiring users to understand complex API structures. It provides read-only access to standard CRM objects (contacts, companies, deals, tickets, products, invoices, and more) and their associations, secured via OAuth 2.0, allowing AI agents to perform tasks like summarizing deals, fetching company updates, and looking up record changes.
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Read-only MCP server exposing a user ORANO library to their own AI agent.
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server providing full integration with the Lunch Money API to manage financial data including transactions, budgets, assets, and categories. It enables AI assistants to perform CRUD operations on financial records through a standardized HTTP interface.26MIT
- AlicenseAqualityDmaintenanceRead-only MCP and HTTP proxy server for accessing Monarch Money financial data, enabling transaction analysis, budget tracking, and cashflow insights through natural language.6MIT

RiseUp MCP Serverofficial
AlicenseAqualityDmaintenanceMCP server for programmatic read-only access to RiseUp cashflow data, allowing AI assistants to retrieve budget information via natural language.2247 npm30MIT- AlicenseBqualityAmaintenanceA read-only MCP server for the Dough personal finance app, enabling assistants to query financial data like balances, transactions, and budgets through natural language.8MIT