Skip to main content
Glama
bhonick

lunchmoney-readonly-mcp

by bhonick

Read-only Lunch Money MCP для ChatGPT

Однопользовательский удаленный MCP-сервер для Lunch Money, предназначенный для ChatGPT Business и развернутый на Cloudflare Workers. Он использует Google OAuth только для идентификации разрешенного пользователя; токен API Lunch Money хранится как зашифрованный секрет Cloudflare и никогда не возвращается в ChatGPT или инструмент MCP.

Этот проект изначально был основан на проекте bm1549/lunchmoney-mcp-cloudflare и адаптирован в шаблон read-only Lunch Money MCP для Cloudflare Workers и ChatGPT. Включенная вышестоящая реализация сохранена в vendor-lunchmoney-mcp, включая ее оригинальную лицензию MIT и указание авторства. Спасибо Брайану Марксу за оригинальную работу.

Этот репозиторий является шаблоном. Он не содержит URL действующего развертывания, токена API, секрета Google OAuth, адреса электронной почты или идентификатора ресурса Cloudflare.

Что делает его только для чтения

Сервер обеспечивает доступ только для чтения двумя независимыми уровнями:

  1. createReadonlyServer() предоставляет положительный список разрешенных 25 инструментов извлечения. Инструменты создания, обновления, удаления, загрузки, синхронизации, обновления, разделения, группировки и изменения бюджета не зарегистрированы.

  2. runWithReadonlyConfig() отклоняет любой запрос, не являющийся GET, к API Lunch Money до выполнения сетевого запроса.

Все предоставленные инструменты объявляют readOnlyHint: true, destructiveHint: false и openWorldHint: false.

Требования

  • Токен API Lunch Money

  • Учетная запись Cloudflare с доступными Workers и KV

  • Веб-клиент Google Cloud OAuth 2.0

  • Рабочее пространство ChatGPT Business, в котором вы являетесь администратором или владельцем

Разверните свою копию

  1. Клонируйте этот репозиторий, затем установите и проверьте зависимости:

    npm install
    npm run typecheck
    npm run lint
    npm run test:readonly
  2. В wrangler.jsonc выберите уникальное name Worker и создайте пространство имен OAuth KV:

    npx wrangler kv namespace create OAUTH_KV

    Скопируйте возвращенный идентификатор пространства имен в REPLACE_WITH_OAUTH_KV_NAMESPACE_ID в wrangler.jsonc.

  3. Разверните один раз, чтобы получить URL вашего Worker:

    npx wrangler deploy
  4. Создайте веб-приложение Google OAuth 2.0. Добавьте этот URI перенаправления, заменив хост на URL вашего Worker:

    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 и пример документации не идентифицируют ваше личное развертывание.

Если вы очищаете существующее развертывание, храните его конфигурацию вне репозитория или в файле wrangler.personal.jsonc, игнорируемом git. Разверните эту частную конфигурацию с помощью 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