myhotlunchbox-mcp
myhotlunchbox-mcp
MCP-сервер для My Hot Lunchbox — чтение школьного обеденного календаря, управление учениками, размещение и изменение заказов, а также отслеживание доставок и платежей на родительском аккаунте.
Разработано и поддерживается ИИ (Claude Code). Используйте на своё усмотрение.
Установка
npx myhotlunchbox-mcpИли как плагин Claude Code:
/plugin marketplace add chrischall/myhotlunchbox-mcp
/plugin install myhotlunchbox-mcpRelated 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». Получите модель, отредактируйте её, отправьте целиком:
mhlb_get_menu— что можно заказать для ученика на датуmhlb_get_order_form— модель заказа для заполненияmhlb_create_order— отправьте её обратно (сconfirm: true)mhlb_init_checkout→mhlb_checkout— рассчитать цену, затем оплатить
Поля, опущенные в полезной нагрузке, очищаются, а не сохраняются.
Навык для оболочки
skills/myhotlunchbox покрывает тот же аккаунт из оболочки с помощью curl —
без необходимости MCP-процесса. Полезно в скриптах или на машине, где этот
сервер не установлен.
Примечания
/deliveryInfo/*и/calendar/viewMatchedVendorsвыглядят ориентированными на родителей в скомпилированном клиенте, но возвращают403для родительского аккаунта — они принадлежат панелям школы/поставщика. Ни один инструмент их не оборачивает.Подключена только роль родителя. Тот же API также обслуживает роли школьного администратора и поставщика; эти конечные точки возвращают
403, которые клиент сообщает как несоответствие роли, а не сломанную сессию.docs/MYHOTLUNCHBOX-API.mdфиксирует, как был сопоставлен API и что именно проверено.docs/api-surface.txt— это полная выгрузка из 359 конечных точек.
Лицензия
MIT
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 Servers
- AlicenseAqualityBmaintenanceMCP 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.2283833MIT
- FlicenseNot gradedqualityCmaintenanceProvides 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.
- FlicenseAqualityCmaintenanceEnables interacting with the Lunch Money personal finance API through MCP tools for retrieving user info, transactions, and performing calculations, with minimal response sizes.6
- AlicenseNot gradedqualityCmaintenanceProvides programmatic access to Grubhub's food delivery platform, enabling restaurant search, menu browsing, cart management, order placement, and delivery tracking through MCP tools.MIT
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).
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/chrischall/myhotlunchbox-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server