Skip to main content
Glama
chrischall

myhotlunchbox-mcp

by chrischall

myhotlunchbox-mcp

MCP-сервер для My Hot Lunchbox — чтение школьного обеденного календаря, управление учениками, размещение и изменение заказов, а также отслеживание доставок и платежей на родительском аккаунте.

Разработано и поддерживается ИИ (Claude Code). Используйте на своё усмотрение.

Установка

npx myhotlunchbox-mcp

Или как плагин Claude Code:

/plugin marketplace add chrischall/myhotlunchbox-mcp
/plugin install myhotlunchbox-mcp

Related MCP server: Corben MCP Server

Настройка

MYHOTLUNCHBOX_USERNAME=you@example.com
MYHOTLUNCHBOX_PASSWORD=…

Это вся настройка. Сервер выполняет реальный вход на стороне сервера против ordernow.myhotlunchbox.com (OAuth2 password grant) и продлевает сессию с помощью полученного refresh-токена — никакого расширения браузера, никакой вкладки с входом, никаких перехваченных cookie. Ничего не записывается на диск.

MYHOTLUNCHBOX_BASE_URL переопределяет origin приложения, если он когда-либо изменится.

Сервер запускается без учётных данных, поэтому проверка tools/list при установке у хоста всё ещё работает; ошибка конфигурации проявляется при первом вызове инструмента.

Инструменты

34 инструмента, все с префиксом mhlb_. Все 20 инструментов чтения проверены вживую на реальном родительском аккаунте (node scripts/verify-reads.mjs); 14 инструментов записи — нет, см. ниже.

Аккаунтmhlb_whoami, mhlb_session_reset

Ученикиmhlb_list_students, mhlb_get_student_form, mhlb_new_student_form, mhlb_create_student, mhlb_update_student, mhlb_delete_student

Календарьmhlb_get_calendar, mhlb_get_day

Заказыmhlb_get_cart, mhlb_get_cart_tabs, mhlb_get_menu, mhlb_get_order_form, mhlb_get_order, mhlb_create_order, mhlb_update_order, mhlb_delete_order

Биллингmhlb_list_transactions, mhlb_get_transaction, mhlb_list_subscriptions, mhlb_get_subscription_settings, mhlb_set_subscription_enabled, mhlb_unsubscribe_order, mhlb_list_gift_cards, mhlb_apply_gift_card, mhlb_get_coupon, mhlb_apply_coupon, mhlb_remove_coupon

Оформление заказаmhlb_init_checkout, mhlb_checkout

Отчётыmhlb_print_calendar, mhlb_print_orders, mhlb_print_transaction. Они возвращают настоящие PDF-файлы; каждый записывает файл и возвращает его путь, или байты инлайн с inline: true. Установите MYHOTLUNCHBOX_OUTPUT_DIR, чтобы выбрать место сохранения (по умолчанию — рабочая директория); существующие файлы никогда не перезаписываются.

Записи требуют подтверждения

Каждый изменяющий инструмент принимает confirm. Без confirm: true он не делает сетевых вызовов и возвращает предварительный просмотр (dry-run) того, что именно он бы отправил.

mhlb_checkout списывает реальный платёжный метод. Сервер рассчитывает сумму из orderIds, поэтому ничто на стороне клиента не может привязать сумму — в запросе нет общей суммы для проверки. expectedTotal — это атрибуция, а не защита: вы указываете, что ожидали, и это записывается в dry-run и в результат, чтобы неожиданный платёж можно было отследить до вызвавшего его вызова. Что инструмент категорически отказывается делать — это платить ненулевую сумму без orderIds.

Записи: формы захвачены, приём не проверен

npm run capture:writes запускает каждый изменяющий инструмент против локального прокси, который пересылает чтения реальному сервису, но отвечает на записи сам, поэтому полезные нагрузки строятся на основе реальных серверных моделей, и ничего не происходит на стороне сервера. Это также доказывает, что все 13 отказываются отправлять что-либо без confirm: true.

Что это установило и исправило: mhlb_delete_order и mhlb_unsubscribe_order принимают {orderId, eventDate, studentId, isRepeated, isSubscribed} — не модель заказа — а checkout принимает {orderIds, checkoutType, couponCode, giftCardCode, schoolDonations}.

Что всё ещё не проверено — принимает ли сервер эти тела. Форма — это не приём; только реальная запись это покажет, и ни одной не было сделано. Просмотрите предварительный просмотр dry-run перед подтверждением и перечитайте после — 200 не является доказательством, что запись сохранилась.

Два ограничения для mhlb_checkout:

  • Он может платить только картой, уже сохранённой на аккаунте. Оплата новой картой требует Stripe-токена, созданного Stripe.js в браузере, который ни один серверный клиент не может сгенерировать.

  • Он генерирует ключ идемпотентности и возвращает его. Если checkout завершился неоднозначно, повторите с тем же idempotencyKey, а не с новым вызовом — именно это предотвращает превращение повтора во второй платёж.

Заказы — это чтение-изменение-запись

Нет вызова «добавить товар X». Получите модель, отредактируйте её, отправьте целиком:

  1. mhlb_get_menu — что можно заказать для ученика на дату

  2. mhlb_get_order_form — модель заказа для заполнения

  3. mhlb_create_order — отправьте её обратно (с confirm: true)

  4. mhlb_init_checkoutmhlb_checkout — рассчитать цену, затем оплатить

Поля, опущенные в полезной нагрузке, очищаются, а не сохраняются.

Навык для оболочки

skills/myhotlunchbox покрывает тот же аккаунт из оболочки с помощью curl — без необходимости MCP-процесса. Полезно в скриптах или на машине, где этот сервер не установлен.

Примечания

  • /deliveryInfo/* и /calendar/viewMatchedVendors выглядят ориентированными на родителей в скомпилированном клиенте, но возвращают 403 для родительского аккаунта — они принадлежат панелям школы/поставщика. Ни один инструмент их не оборачивает.

  • Подключена только роль родителя. Тот же API также обслуживает роли школьного администратора и поставщика; эти конечные точки возвращают 403, которые клиент сообщает как несоответствие роли, а не сломанную сессию.

  • docs/MYHOTLUNCHBOX-API.md фиксирует, как был сопоставлен API и что именно проверено. docs/api-surface.txt — это полная выгрузка из 359 конечных точек.

Лицензия

MIT

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
3Releases (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 Servers

  • A
    license
    A
    quality
    B
    maintenance
    MCP server for Microsoft Outlook via Graph API. 20 consolidated tools for email, calendar, contacts, folders, rules, categories, and settings with safety controls (dry-run preview, rate limiting, recipient allowlists) and MCP annotations on every tool.
    22
    838
    33
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides AI agents with 220+ tools for building websites, sending email, managing contacts, invoicing, databases, automation, and more through a single secure connection. Features hardware-bound authentication and works with Claude Desktop, Claude Code, Cursor, and other MCP-compatible clients.
  • F
    license
    A
    quality
    C
    maintenance
    Enables interacting with the Lunch Money personal finance API through MCP tools for retrieving user info, transactions, and performing calculations, with minimal response sizes.
    6
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides programmatic access to Grubhub's food delivery platform, enabling restaurant search, menu browsing, cart management, order placement, and delivery tracking through MCP tools.
    MIT

View all related MCP servers

Related MCP Connectors

  • Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.

  • Shopify MCP Pack — wraps the Shopify Admin REST API (2024-01)

  • Access Kernel's cloud-based browsers and app actions via MCP (remote HTTP + OAuth).

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/chrischall/myhotlunchbox-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server