MCP server for integrating with CocktailPi recipe and pump operations
11 tools with complete schemas and descriptions. Naming follows verb_noun pattern consistently (login, list_recipes, get_recipe, create_recipe, update_recipe, delete_recipe, list_pumps, list_ingredients, set_ingredient_in_bar, list_categories, list_glasses). Descriptions are present and substantive (avg ~120 chars), explaining WHAT and WHEN. All parameters have type definitions and descriptions. However, several critical gaps: (1) No output schemas documented, LLMs cannot predict response structure for chaining; (2) No pagination limits stated in descriptions despite list_recipes accepting page/limit params; (3) No error handling guidance, tools return raw API errors without recovery hints; (4) Token parameter marked optional but fallback behavior not clearly explained in tool descriptions (only in server instructions); (5) No enum constraints on string parameters like 'fabricable' (accepts 'all', 'true', 'false') or 'order_by'; (6) Destructive operations (delete_recipe) lack confirmation/dry-run pattern; (7) Recipe write tools require complex nested schema (categoryIds, stepIngredients with ingredientId/ingredientType) but no schema validation examples provided.
Create a new recipe in CocktailPi with optional image attachment
Delete a recipe from CocktailPi
Retrieve detailed information about a specific recipe by ID
List all recipe categories in CocktailPi
List all glassware types available in CocktailPi
List ingredients available in CocktailPi, optionally filtered by autocomplete search
No output schemas documented. LLMs cannot predict response structure (fields, types, pagination format) for downstream tool chaining. E.g., list_recipes returns paginated results but response schema is invisible.
Recipe write tools (create_recipe, update_recipe) require complex nested schema (categoryIds array, stepIngredients with ingredientId/ingredientType fields) but no JSON Schema example or validation guidance provided. LLMs will struggle to construct valid payloads.
String parameters lack enum constraints. 'fabricable' accepts 'all'|'true'|'false' but is defined as free-form string. 'order_by' has no documented valid values. LLMs will hallucinate invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
List all available pumps in the CocktailPi system
List recipes from CocktailPi with optional filtering by owner, collection, category, search term, and fabricability
Authenticate with CocktailPi using username and password to obtain an access token
Add or remove an ingredient from the bar inventory
Update an existing recipe in CocktailPi with optional image replacement or removal
No error handling guidance. Tools return raw API errors without recovery hints. E.g., 'Recipe not found' should suggest 'Try list_recipes() to find valid IDs' per pattern:recovery-guide.
Destructive operation (delete_recipe) lacks confirmation or dry-run pattern. Agents can permanently delete recipes without safeguards. No idempotent hint or confirmation request mechanism.