Skip to main content
Glama
bhonick

lunchmoney-readonly-mcp

by bhonick

Lunch Money용 읽기 전용 MCP (ChatGPT용)

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 템플릿으로 변환되었습니다. 번들된 업스트림 구현은 원래 MIT 라이선스와 저작자 표기를 포함하여 vendor-lunchmoney-mcp 아래에 유지됩니다. 원저작자 Brian Marks에게 감사드립니다.

이 저장소는 템플릿입니다. 라이브 배포 URL, API 토큰, Google OAuth 비밀, 이메일 주소 또는 Cloudflare 리소스 ID를 포함하지 않습니다.

읽기 전용의 특징

서버는 두 개의 독립적인 계층에서 읽기 전용 액세스를 적용합니다:

  1. createReadonlyServer()는 25개의 검색 도구에 대한 허용 목록을 제공합니다. 생성, 업데이트, 삭제, 업로드, 동기화, 새로고침, 분할, 그룹화 및 예산 변경 도구는 등록되지 않습니다.

  2. runWithReadonlyConfig()는 네트워크 요청이 이루어지기 전에 Lunch Money API에 대한 GET이 아닌 요청을 거부합니다.

모든 노출된 도구는 readOnlyHint: true, destructiveHint: falseopenWorldHint: false를 선언합니다.

요구 사항

  • Lunch Money API 토큰

  • Workers 및 KV를 사용할 수 있는 Cloudflare 계정

  • Google Cloud OAuth 2.0 웹 클라이언트

  • 관리자 또는 소유자인 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 웹 애플리케이션을 생성합니다. 이 리디렉션 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. 새 작업 채팅을 시작하고 앱을 선택한 다음 도구 목록을 확인한 후 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