Skip to main content
Glama
bhonick

lunchmoney-readonly-mcp

by bhonick

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つの独立したレイヤーで読み取り専用アクセスを強制します。

  1. createReadonlyServer()は、25の取得ツールのポジティブ許可リストを公開します。作成、更新、削除、アップロード、同期、リフレッシュ、分割、グループ化、予算変更ツールは登録されません。

  2. runWithReadonlyConfig()は、ネットワークリクエストが行われる前に、Lunch Money APIへのGET以外のリクエストを拒否します。

公開されるすべてのツールは、readOnlyHint: truedestructiveHint: falseopenWorldHint: falseを宣言します。

要件

  • Lunch Money APIトークン

  • WorkersとKVが利用可能なCloudflareアカウント

  • Google Cloud OAuth 2.0 Webクライアント

  • あなたが管理者または所有者であるChatGPT Businessワークスペース

自分用のコピーをデプロイする

  1. このリポジトリをクローンし、依存関係をインストールして確認します。

    npm install
    npm run typecheck
    npm run lint
    npm run test:readonly
  2. wrangler.jsoncで、一意のWorker nameを選択し、OAuth KV名前空間を作成します。

    npx wrangler kv namespace create OAUTH_KV

    返された名前空間IDをwrangler.jsoncREPLACE_WITH_OAUTH_KV_NAMESPACE_IDにコピーします。

  3. 一度デプロイしてWorker URLを取得します。

    npx wrangler deploy
  4. Google OAuth 2.0 Webアプリケーションを作成します。このリダイレクトURIを追加し、ホストを自身のWorker URLに置き換えます。

    https://YOUR-WORKER.YOUR-SUBDOMAIN.workers.dev/authorize/callback
  5. 本番環境のシークレットを対話的に設定します。値を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_TOKEN

    ALLOWED_EMAILSは、接続を許可するGoogleアカウントのカンマ区切りリストです。空の場合、サーバーはフェイルクローズドになります。

  6. 再度デプロイします。MCPエンドポイントは次のとおりです。

    https://YOUR-WORKER.YOUR-SUBDOMAIN.workers.dev/mcp

ChatGPT Businessに接続する

  1. ChatGPTで、ワークスペース設定 → アプリ → 作成を開きます。

  2. 上記の/mcpエンドポイントを入力し、OAuth認証を選択します。

  3. カスタムアプリの警告を確認し、下書きを作成してから公開・有効化します。

  4. 各ユーザーは設定 → プラグイン → [あなたのアプリ] → 接続から接続し、許可リストに登録されたGoogleアカウントでサインインします。

  5. 新しい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を参照してください。

-
license - not tested
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all MCP Connectors

Latest Blog Posts

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