TUL Menza MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| password | No | Accepted as an alias for MENZA_PASSWORD for compatibility with the initial local operator file setup. | |
| MENZA_ENV_FILE | No | Path to the operator env file containing credentials (default is the project .env). Not an MCP tool argument. | |
| MENZA_PASSWORD | No | Your Menza password. Only password sign-in is supported (MFA/captcha/consent pages require human action). Store in a 0600 operator env file, never commit it. | |
| MENZA_USERNAME | No | Your Menza username (email) used to sign in via the Microsoft/Shibboleth password flow. Store in the operator env file, never commit it. | |
| username_email | No | Accepted as an alias for MENZA_USERNAME for compatibility with the initial local operator file setup. | |
| MENZA_STATE_DIR | No | Path to the private state directory for cookies and the watch database. Not an MCP tool argument. | |
| MENZA_MAX_CZK_24H | No | Hard rolling-24-hour spending cap in Kč covering buy_meal and watcher purchases. Set only in the root-owned launcher/service, never via tool arguments. | 250 |
| MENZA_MAX_PURCHASES_24H | No | Hard rolling-24-hour purchase limit covering buy_meal and watcher purchases. Set only in the root-owned launcher/service, never via tool arguments. | 2 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| menuA | List menu including sold-out dishes, soup variants, price and burza deadlines; no purchase. |
| minutkasC | Published minutky menu. These are direct-sale only, not guaranteed stock or online reservations. |
| ordersA | List current meal orders and own burza offers, with cancellation effects/deadlines. |
| balanceC | Account credit in CZK, subsidy vouchers, and the server-enforced 24h purchase limit usage. |
| meal_historyB | Consumed meals/transactions from account history (default last year); pending orders are separate. |
| meal_statisticsC | Spending, favourites, canteens and weekdays from actual historical transactions. |
| suggest_mealsA | Suggest lunch + dinner for each day, never buy. Dinner Harcov; lunch Harcov/Husova inferred from history. Rank dishes by previous orders. No timeslots. lunch includes soup by default; choose lunch_no_soup explicitly. Missing/closed menus remain unavailable, not invented. |
| buy_mealB | Spend credit to buy exactly one menu item. User must confirm; fresh price cannot exceed max_price. |
| cancel_mealB | Cancel only within the full-refund window; refuses to silently sell on burza. |
| sell_on_burzaB | Offer your own meal on burza AFTER refund cutoff. Credit returns only if someone buys it. |
| withdraw_from_burzaC | Withdraw your still-unsold offer from burza and restore it as your meal order. |
| watch_mealA | Explicitly authorize ONE future automatic burza purchase of this exact sold-out dish. Copy section/number/name from menu. Expiry must contain timezone and be within 14 days. Polls about every 20 seconds, not instant; never substitutes another dish or exceeds max_price. |
| list_watchesB | Durable watch status/outcomes; needs_review never retries automatically after uncertain purchases. |
| cancel_watchB | Stop waiting for a meal; does not cancel an order already bought by the watcher. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 14 tools
Most tools map cleanly to a distinct resource+action: menu vs. minutkas, buy_meal vs. watch_meal, cancel_meal vs. cancel_watch, sell_on_burza vs. withdraw_from_burza are all explicitly contrasted in the descriptions. The closest pairs are menu/minutkas and orders/meal_history/meal_statistics, which require reading descriptions carefully but are still distinguishable.
The majority follow a snake_case verb_noun or verb_target pattern (watch_meal, list_watches, cancel_watch, buy_meal, cancel_meal, suggest_meals, sell_on_burza). However several are bare nouns (menu, minutkas, orders, balance) with no list_/get_ prefix, and domain jargon (burza, minutkas) breaks the pattern further. Still readable, but the convention is mixed.
14 tools for a canteen system with menus, ordering, burza resale, and automated watches is well-scoped and each tool covers a distinct operation. Nothing feels padded or missing at the count level.
The lifecycle is well covered: browse menus, buy, cancel, sell/withdraw on burza, watch sold-out dishes, list/cancel watches, check orders, balance, history, and statistics. The main gap is that burza can only be bought from automatically via watch_meal — there is no tool to browse or manually purchase another user's burza offer.