Skip to main content
Glama
chrischall

myhotlunchbox-mcp

by chrischall

myhotlunchbox-mcp

MCP-Server für My Hot Lunchbox — Schulessen-Kalender lesen, Schüler verwalten, Bestellungen aufgeben und ändern sowie Lieferungen und Zahlungen auf einem Elternkonto verfolgen.

Entwickelt und gepflegt von KI (Claude Code). Nutzung auf eigene Verantwortung.

Install

npx myhotlunchbox-mcp

Oder als Claude Code Plugin:

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

Related MCP server: Corben MCP Server

Configure

MYHOTLUNCHBOX_USERNAME=you@example.com
MYHOTLUNCHBOX_PASSWORD=…

Das ist die gesamte Einrichtung. Der Server führt eine echte serverseitige Anmeldung gegen ordernow.myhotlunchbox.com durch (OAuth2-Passwort-Grant) und erneuert die Sitzung mit dem erhaltenen Refresh-Token — keine Browser-Erweiterung, kein angemeldeter Tab, kein erfasstes Cookie. Es wird nichts auf die Festplatte geschrieben.

MYHOTLUNCHBOX_BASE_URL überschreibt den App-Ursprung, falls dieser jemals wechselt.

Der Server startet ohne Anmeldedaten, sodass eine tools/list-Prüfung des Hosts zur Installationszeit weiterhin funktioniert; der Konfigurationsfehler erscheint beim ersten Tool-Aufruf.

Tools

34 Tools, alle mit dem Präfix mhlb_. Alle 20 Lese-Tools wurden live gegen ein echtes Elternkonto verifiziert (node scripts/verify-reads.mjs); die 14 Schreib-Tools nicht — siehe unten.

Kontomhlb_whoami, mhlb_session_reset

Schülermhlb_list_students, mhlb_get_student_form, mhlb_new_student_form, mhlb_create_student, mhlb_update_student, mhlb_delete_student

Kalendermhlb_get_calendar, mhlb_get_day

Bestellungmhlb_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

Abrechnungmhlb_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

Kassemhlb_init_checkout, mhlb_checkout

Berichtemhlb_print_calendar, mhlb_print_orders, mhlb_print_transaction. Diese geben echte PDFs zurück; jedes schreibt die Datei und gibt ihren Pfad zurück, oder die Bytes inline mit inline: true. Setzen Sie MYHOTLUNCHBOX_OUTPUT_DIR, um festzulegen, wo sie abgelegt werden (Standard ist das Arbeitsverzeichnis); vorhandene Dateien werden nie überschrieben.

Schreibvorgänge sind bestätigungspflichtig

Jedes verändernde Tool akzeptiert confirm. Ohne confirm: true führt es keinen Netzwerkaufruf durch und gibt eine Trockenlauf-Vorschau dessen zurück, was es genau senden würde.

mhlb_checkout belastet eine echte Zahlungsmethode. Der Server berechnet den Betrag aus orderIds, sodass clientseitig nichts den Betrag festlegen kann — es gibt keinen Gesamtbetrag in der Anfrage, gegen den geprüft werden könnte. expectedTotal ist daher Zuordnung, keine Absicherung: Sie geben an, was Sie erwartet haben, und es wird im Trockenlauf und im Ergebnis festgehalten, sodass eine unerwartete Belastung auf den Aufruf zurückgeführt werden kann, der sie verursacht hat. Was das Tool kategorisch ablehnt, ist die Zahlung eines Betrags ungleich Null ohne orderIds.

Schreibvorgänge: Formen erfasst, Akzeptanz unverifiziert

npm run capture:writes führt jedes verändernde Tool gegen einen lokalen Proxy aus, der Lesevorgänge an den echten Dienst weiterleitet, aber Schreibvorgänge selbst beantwortet, sodass die Nutzlasten aus echten Servermodellen erstellt werden und upstream nichts passiert. Es beweist auch, dass alle 13 ohne confirm: true nichts senden.

Was das festgestellt und korrigiert hat: mhlb_delete_order und mhlb_unsubscribe_order akzeptieren {orderId, eventDate, studentId, isRepeated, isSubscribed} — nicht das Bestellmodell — und Checkout akzeptiert {orderIds, checkoutType, couponCode, giftCardCode, schoolDonations}.

Was weiterhin unverifiziert ist, ist, ob der Server diese Körper akzeptiert. Form ist nicht Akzeptanz; nur ein echter Schreibvorgang zeigt das, und keiner wurde durchgeführt. Überprüfen Sie die Trockenlauf-Vorschau vor der Bestätigung und lesen Sie danach erneut — ein 200 ist kein Beweis dafür, dass ein Schreibvorgang persistiert wurde.

Zwei Einschränkungen speziell für mhlb_checkout:

  • Es kann nur mit einer bereits gespeicherten Karte auf dem Konto bezahlen. Die Zahlung mit einer neuen Karte erfordert ein Stripe-Token, das von Stripe.js in einem Browser erstellt wird, was kein serverseitiger Client erzeugen kann.

  • Es generiert einen Idempotenzschlüssel und gibt ihn zurück. Wenn ein Checkout mehrdeutig fehlschlägt, wiederholen Sie den Vorgang mit demselben idempotencyKey anstatt mit einem neuen Aufruf — das verhindert, dass eine Wiederholung zu einer zweiten Belastung wird.

Bestellung ist Lesen-Ändern-Schreiben

Es gibt keinen Aufruf „Element X hinzufügen". Rufen Sie das Modell ab, bearbeiten Sie es und senden Sie es vollständig zurück:

  1. mhlb_get_menu — was für einen Schüler an einem Datum bestellbar ist

  2. mhlb_get_order_form — das auszufüllende Bestellmodell

  3. mhlb_create_order — senden Sie es zurück (mit confirm: true)

  4. mhlb_init_checkoutmhlb_checkout — Preis berechnen, dann bezahlen

Felder, die in der Nutzlast weggelassen werden, werden gelöscht, nicht beibehalten.

Shell-Fähigkeit

skills/myhotlunchbox deckt dasselbe Konto aus einer Shell mit curl ab — kein MCP-Prozess erforderlich. Nützlich in Skripten oder auf einem Rechner, auf dem dieser Server nicht installiert ist.

Notes

  • /deliveryInfo/* und /calendar/viewMatchedVendors wirken im kompilierten Client elternorientiert, geben aber für ein Elternkonto 403 zurück — sie gehören zu den Schul-/Anbieter-Dashboards. Kein Tool umschließt sie.

  • Nur die Elternrolle ist angebunden. Dieselbe API bedient auch Schuladministrator- und Anbieterrollen; diese Endpunkte geben 403 zurück, was der Client als Rollenkonflikt meldet und nicht als defekte Sitzung.

  • docs/MYHOTLUNCHBOX-API.md dokumentiert, wie die API abgebildet wurde und was genau verifiziert ist. docs/api-surface.txt ist die vollständige Extraktion der 359 Endpunkte.

Licence

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