lunchmoney-readonly-mcp
ChatGPT向け読み取り専用Lunch Money MCP
ChatGPT Business向けに設計され、Cloudflare Workers上にデプロイされたシングルユーザーのリモートMCPサーバーです。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は含まれていません。
読み取り専用の仕組み
サーバーは2つの独立したレイヤーで読み取り専用アクセスを強制します。
createReadonlyServer()は、25の取得ツールのポジティブ許可リストを公開します。作成、更新、削除、アップロード、同期、リフレッシュ、分割、グループ化、予算変更ツールは登録されません。runWithReadonlyConfig()は、ネットワークリクエストが行われる前に、Lunch Money APIへのGET以外のリクエストを拒否します。
公開されるすべてのツールは、readOnlyHint: true、destructiveHint: false、openWorldHint: falseを宣言します。
要件
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:readonlywrangler.jsoncで、一意のWorkernameを選択し、OAuth KV名前空間を作成します。npx wrangler kv namespace create OAUTH_KV返された名前空間IDを
wrangler.jsoncのREPLACE_WITH_OAUTH_KV_NAMESPACE_IDにコピーします。一度デプロイしてWorker URLを取得します。
npx wrangler deployGoogle 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で、ワークスペース設定 → アプリ → 作成を開きます。
上記の
/mcpエンドポイントを入力し、OAuth認証を選択します。カスタムアプリの警告を確認し、下書きを作成してから公開・有効化します。
各ユーザーは設定 → プラグイン → [あなたのアプリ] → 接続から接続し、許可リストに登録されたGoogleアカウントでサインインします。
新しいWorkチャットを開始し、アプリを選択してツールリストを確認してから、Lunch Moneyデータの調査を依頼します。
リポジトリを公開する前に
以下を実行してください。
npm run check:public-releaseまた、git statusを確認し、.dev.varsが追跡されていないことを確認し、Worker名、エンドポイント、CloudflareリソースID、およびドキュメントの例が個人のデプロイメントを特定しないことを確認してください。
既存のデプロイメントをサニタイズする場合は、その設定をリポジトリの外、またはgitignoredなwrangler.personal.jsoncファイルに保持してください。そのプライベート設定はnpx wrangler deploy --config wrangler.personal.jsoncでデプロイしてください。
検証
フォーカスされたセキュリティテストでは、正確な許可リスト、その注釈、代表的な変更ツールが存在しないこと、および送信POSTリクエストの拒否を検証します。
npm run test:readonly帰属の詳細については、THIRD_PARTY_NOTICES.mdを参照してください。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Hosted remote MCP server for YNAB on Cloudflare Workers with OAuth
Multi-tenant FastMCP server for Charles Schwab brokerage data, monetized via DPYC Tollbooth
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bhonick/lunchmoney-readonly-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server