Coffee Shop MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pingA | Check that the Barista MCP server is alive and responding. |
| get_menuA | Get the coffee shop's current menu: every drink we can make, whether it contains milk, and a short description. Call this FIRST to see what the customer can order. Do not guess drinks or read source files. |
| get_customization_optionsA | Get the available customization options for a specific drink
(size, extra shot, etc.). Call this after the customer has chosen a
drink from the menu, so you know what to ask them about. The |
| place_orderA | Place a coffee order. Call this once the customer has chosen a drink
and confirmed their customizations. Returns an order ID and the recipe
(the ordered list of machine steps to make the drink). |
| update_order_statusA | Update the current machine step for an in-progress order. Call this as you BEGIN each step in the recipe: 'grinding', 'brewing', 'steaming' (milk drinks only), 'dispensing'. Do NOT use this for 'pending' (set by place_order) or 'ready' (set by mark_order_ready). Calling 'steaming' on a non-milk drink is a validation error. |
| check_order_statusA | Check the current status of a placed order by its order ID. Returns the drink, size, current status, the full step-by-step status history with timestamps, and when it was placed. Use this to tell the customer whether their order is still being made or is ready. |
| mark_order_readyA | Mark an order as ready for collection. Call this after ALL machine steps in the recipe have been completed successfully. Flips status to 'ready', records the completion timestamp, and closes the lifecycle. After calling this, tell the customer their order is ready to collect. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| menu_resource | The coffee shop menu, exposed as a RESOURCE so a user can manually attach it as context. For autonomous agent use, call the get_menu tool instead — agents cannot invoke resources on their own. |
TDQS
Scored across 7 tools
Each tool targets a distinct aspect of the coffee ordering workflow: menu, customization, placing, status, step updates, readiness, and health check. There is no overlap or ambiguity.
All tool names follow a consistent verb_noun pattern with underscores (e.g., get_menu, place_order). 'ping' is a standard exception for health checks and does not disrupt the pattern.
With 7 tools, the set is well-scoped for a coffee shop ordering system. Each tool serves a clear need without redundancy or missing critical functionality.
The tool set covers the full order lifecycle: menu browsing, customization, placing, status tracking, step updates, and marking ready. Minor gaps like cancellation or order listing are absent but not essential for the core workflow.