myhotlunchbox-mcp
myhotlunchbox-mcp
Servidor MCP para My Hot Lunchbox — lee el calendario de comidas escolares, gestiona estudiantes, realiza y modifica pedidos, y sigue entregas y pagos en una cuenta de padre.
Desarrollado y mantenido por IA (Claude Code). Úsalo bajo tu propio criterio.
Instalación
npx myhotlunchbox-mcpO como plugin de Claude Code:
/plugin marketplace add chrischall/myhotlunchbox-mcp
/plugin install myhotlunchbox-mcpRelated MCP server: Corben MCP Server
Configuración
MYHOTLUNCHBOX_USERNAME=you@example.com
MYHOTLUNCHBOX_PASSWORD=…Eso es toda la configuración. El servidor realiza un inicio de sesión real del lado del servidor contra ordernow.myhotlunchbox.com (concesión de contraseña OAuth2) y renueva la sesión con el token de actualización que recibe — sin extensión de navegador, sin pestaña iniciada, sin cookie capturada. No se escribe nada en el disco.
MYHOTLUNCHBOX_BASE_URL anula el origen de la aplicación si alguna vez se mueve.
El servidor arranca sin credenciales para que la sonda tools/list del host en el momento de la instalación siga funcionando; el error de configuración aparece en la primera llamada a una herramienta.
Herramientas
34 herramientas, todas con el prefijo mhlb_. Las 20 herramientas de lectura están verificadas en vivo contra una cuenta de padre real (node scripts/verify-reads.mjs); las 14 de escritura no — ver más abajo.
Cuenta — mhlb_whoami, mhlb_session_reset
Estudiantes — mhlb_list_students, mhlb_get_student_form,
mhlb_new_student_form, mhlb_create_student, mhlb_update_student,
mhlb_delete_student
Calendario — mhlb_get_calendar, mhlb_get_day
Pedidos — 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
Facturación — 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
Pago — mhlb_init_checkout, mhlb_checkout
Informes — mhlb_print_calendar, mhlb_print_orders,
mhlb_print_transaction. Estas devuelven PDFs reales; cada una escribe el archivo y devuelve su ruta, o los bytes en línea con inline: true. Establece MYHOTLUNCHBOX_OUTPUT_DIR para elegir dónde se guardan (por defecto, el directorio de trabajo); los archivos existentes nunca se sobrescriben.
Las escrituras están controladas por confirmación
Cada herramienta mutadora requiere confirm. Sin confirm: true no realiza ninguna llamada de red y devuelve una vista previa de simulación (dry-run) de exactamente lo que enviaría.
mhlb_checkout cobra un método de pago real. El servidor calcula el cargo a partir de orderIds, por lo que nada del lado del cliente puede fijar el importe — no hay total en la solicitud contra el que comprobar. Por lo tanto, expectedTotal es atribución, no una salvaguarda: indicas lo que esperabas, y se registra en la simulación y en el resultado para que un cargo inesperado sea rastreable hasta la llamada que lo causó. Lo que la herramienta sí rechaza de plano es pagar un total distinto de cero sin orderIds.
Escrituras: formas capturadas, aceptación no verificada
npm run capture:writes ejecuta cada herramienta mutadora contra un proxy local que reenvía las lecturas al servicio real pero responde a las escrituras él mismo, de modo que las cargas útiles se construyen a partir de modelos reales del servidor y no ocurre nada en el sistema ascendente. También demuestra que las 13 se niegan a enviar nada sin confirm: true.
Lo que eso estableció y corrigió: mhlb_delete_order y mhlb_unsubscribe_order toman {orderId, eventDate, studentId, isRepeated, isSubscribed} — no el modelo de pedido — y el pago toma {orderIds, checkoutType, couponCode, giftCardCode, schoolDonations}.
Lo que aún no está verificado es si el servidor acepta estos cuerpos. La forma no es aceptación; solo una escritura real lo demuestra, y no se ha hecho ninguna. Inspecciona la vista previa de simulación antes de confirmar, y vuelve a leerla después — un 200 no es prueba de que una escritura haya persistido.
Dos límites específicos de mhlb_checkout:
Solo puede pagar con una tarjeta ya guardada en la cuenta. Pagar con una tarjeta nueva requiere un token de Stripe generado por Stripe.js en un navegador, que ningún cliente del lado del servidor puede producir.
Genera una clave de idempotencia y la devuelve. Si un pago falla de forma ambigua, reintenta con esa misma
idempotencyKeyen lugar de una llamada nueva — eso es lo que evita que un reintento se convierta en un segundo cargo.
Los pedidos son de lectura-modificación-escritura
No existe una llamada "añadir artículo X". Obtén el modelo, edítalo, envíalo completo:
mhlb_get_menu— qué se puede pedir para un estudiante en una fechamhlb_get_order_form— el modelo de pedido a rellenarmhlb_create_order— envíalo de vuelta (conconfirm: true)mhlb_init_checkout→mhlb_checkout— precio, luego pago
Los campos omitidos de la carga útil se borran, no se conservan.
Habilidad de shell
skills/myhotlunchbox cubre la misma cuenta desde un shell con curl — sin necesidad de proceso MCP. Útil en scripts, o en una máquina donde este servidor no esté instalado.
Notas
/deliveryInfo/*y/calendar/viewMatchedVendorsparecen orientados al padre en el cliente compilado, pero devuelven403para una cuenta de padre — pertenecen a los paneles de escuela/proveedor. Ninguna herramienta los envuelve.Solo está conectado el rol de padre. La misma API también sirve a los roles de administrador escolar y proveedor; esos endpoints devuelven
403, que el cliente informa como un desajuste de rol en lugar de una sesión rota.docs/MYHOTLUNCHBOX-API.mdregistra cómo se mapeó la API y exactamente qué está verificado.docs/api-surface.txtes la extracción completa de 359 endpoints.
Licencia
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