Cocktailline
Server Details
Cocktail recipes and an exact ingredient finder: what can I mix with what I have at home?
- Status
- Healthy
- Uptime
- 100.0% over 24 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 6 tools
There are two clearly overlapping pairs: fetch and get_recipe both retrieve a full recipe (one by id, one as Markdown) to the point of redundancy, and search vs search_cocktails both search cocktails by name/ingredient with only differing return fields. An agent would struggle to know which to pick, leaving at best four distinct purposes among six tools.
Names mix bare verbs (fetch, search), verb_noun snake_case (find_cocktails, get_recipe, search_cocktails), and a bare noun phrase (missing_ingredients). The convention is readable but not predictable, so an agent can't infer whether a retrieval tool is named after its verb or its resource.
Six tools is well-scoped for a cocktail recipe lookup service. Each function (search, retrieve, ingredient matching, gap reporting) earns its place without bloat.
The surface covers discovery, full retrieval, ingredient-based matching, and missing-ingredient analysis, which is solid for a recipe lookup domain. Minor gaps exist (no browsing/pagination or listing of categories/tastes), but agents can work around them.
Available Tools
6 toolsfetchRezept ladenBRead-onlyInspect
Fetch a Cocktailline recipe by id (as returned by search).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds essentially nothing beyond that: no behavior on unknown ids, no error semantics, no indication of whether the result is cached or live. It does hint at the id's provenance, which is the only added context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the action and the parameter provenance front-loaded and no filler. It is appropriately sized for a one-parameter read tool, though the German title 'Rezept laden' versus the English description is a minor inconsistency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool whose annotations carry the safety profile and which has no output schema, the description covers the essentials. It falls short on sibling differentiation against 'get_recipe' and on not-found behavior, which an agent would want before invoking it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the single 'id' parameter. It partially does by stating the id comes from search results, which is real provenance information the schema lacks. It still gives no format, length, or example, so compensation is incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: 'Fetch a Cocktailline recipe by id'. That is enough for an agent to know what the tool returns. However, it does not differentiate from the sibling 'get_recipe', which appears to do the same thing, leaving genuine ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(as returned by search)' implies the intended workflow: call search first, then fetch. That is useful implied guidance, but there is no explicit when-not-to-use, no mention of get_recipe as an alternative, and no statement about what happens if the id is stale or invalid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_cocktailsCocktails nach Zutaten findenARead-onlyInspect
Finds cocktails that can be made with the ingredients the user has at home (exact matching against a curated recipe database: staples like ice and sugar count as available, garnishes are ignored). Optionally also returns drinks missing only 1–2 ingredients. Ingredient names may be given in English, German, French or Spanish.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| language | No | en | |
| ingredients | Yes | Ingredients the user has, e.g. ["gin", "tonic water", "lime"] | |
| max_missing | No | Also include drinks missing up to this many ingredients | |
| alcohol_free | No | Only non-alcoholic drinks |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, non-destructive, closed-world), and the description adds genuinely useful domain behavior: staples such as ice and sugar are treated as available, garnishes are ignored, and multi-language ingredient input is accepted. It does not mention result ordering, pagination, or how the limit interacts with relaxed matching.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core capability and tightly packed with operative detail; the parenthetical is dense but every clause carries matching semantics. No filler or restated title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter read-only lookup with no output schema, the description covers matching behavior, multilingual input and the relaxed-match option, which is most of what an agent needs. It stops short of describing the `language` parameter's effect and the result shape/ordering.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%, and the description adds real meaning for max_missing ('drinks missing only 1-2 ingredients') and clarifies that ingredient strings accept English/German/French/Spanish. However, the `language` parameter is never explained (output language vs. input?) and `limit` is unaddressed, leaving gaps the schema alone does not close.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Finds cocktails') plus the exact scope: drinks makeable from ingredients the user already has, with explicit matching rules (exact match, staples count, garnishes ignored). This scope cleanly separates it from siblings like get_recipe, search_cocktails and missing_ingredients.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for use ('ingredients the user has at home') and notes the optional relaxed mode via max_missing. It never names an alternative tool or an exclusion condition, so the when-not case is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recipeRezept abrufenARead-onlyInspect
Returns a full cocktail recipe (ingredients with amounts, steps, glass, history) as Markdown, plus the link to the recipe page with photo, party calculator and ratings.
| Name | Required | Description | Default |
|---|---|---|---|
| cocktail | Yes | Cocktail name or slug, e.g. "Mojito" | |
| language | No | en |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, so safety is already covered, and the description adds real value by disclosing the return shape (Markdown recipe plus a page link/ratings). It does not mention error behavior for an unknown cocktail or any locale-related behavior, but with annotations carrying the safety profile this is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the content list is dense but each item earns its place by telling the agent what comes back. Only slight overloading from the long parenthetical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully describes the return payload and format, which is the main thing an agent needs. Gaps remain around the language parameter's behavior and what happens when the named cocktail does not exist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: 'cocktail' is documented with an example, but the 'language' enum (de/en/fr/es) has no description in the schema. The description never mentions parameters at all, so it fails to compensate for the undocumented language parameter or explain its effect on output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (returns) and resource (full cocktail recipe) and enumerates the payload (ingredients with amounts, steps, glass, history, link to page with photo, party calculator, ratings). This clearly separates it from search/find siblings, though it never names an alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is the detail-retrieval step after search_cocktails/find_cocktails. There is no explicit when-to-use, when-not-to-use, or named alternative, so guidance is minimal but derivable from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
missing_ingredientsFehlende ZutatenARead-onlyInspect
Tells which ingredients are still missing to make a given cocktail with what the user has.
| Name | Required | Description | Default |
|---|---|---|---|
| cocktail | Yes | Cocktail name or slug | |
| language | No | en | |
| ingredients | Yes | Ingredients the user has |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds the computed behavior (missing-ingredient check) but omits matching rules, language effects, and return specifics, leaving some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single front-loaded sentence with no wasted words. Very concise and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with annotations covering safety and no output schema, the description gives the core computation but omits return format details and the effect of the language parameter. It is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description restates cocktail and ingredients as inputs ('given cocktail', 'what the user has'), which overlaps with existing schema descriptions. It does not mention the language parameter or add syntax/format details, so it adds little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it computes which ingredients are missing for a given cocktail given the user's ingredients. It is clear, but it does not explicitly differentiate itself from siblings like get_recipe or find_cocktails, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case — checking a cocktail against the user's pantry — but gives no explicit when-to-use, when-not-to-use, or named alternatives. It provides more than nothing but less than clear routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSucheARead-onlyInspect
Search Cocktailline recipes. Returns ids, titles and URLs; use fetch for the full recipe.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, non-destructive, closed-world), so the description's value-add is disclosing the response shape: ids, titles, and URLs rather than full content. That is useful behavioral context absent from any structured field, though it says nothing about result caps, ranking, or empty-result behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero waste, with the core purpose front-loaded and the routing hint second. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly compensates by naming the returned fields, and annotations cover safety. It is nearly complete for a simple one-parameter search, missing only sibling disambiguation and result-limit/pagination behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden for the single 'query' parameter, and it never explains what the query accepts (keywords, phrases, filters). Mitigating this, a lone required string named 'query' on a search tool is largely self-evident, so the practical gap is small.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search Cocktailline recipes') and adds the return shape (ids, titles, URLs). However, it does nothing to distinguish itself from the near-identical siblings 'search_cocktails' and 'find_cocktails', which is exactly where an agent needs differentiation. Clear, but sibling ambiguity remains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly routes the agent to 'fetch' for the full recipe, which is a genuine when-to-use-else signal. But it gives no guidance for choosing between this generic 'search' and the overlapping siblings 'search_cocktails'/'find_cocktails', leaving the most consequential selection decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_cocktailsCocktails suchenBRead-onlyInspect
Searches cocktails by name, ingredient or taste (fruity, sour, sweet, bitter, fresh, creamy, spicy, smoky, sparkling), optionally only non-alcoholic.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Free text, e.g. "gin", "summer", "Margarita" | |
| taste | No | ||
| language | No | en | |
| alcohol_free | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered without the description. The description adds the taste vocabulary and the alcohol-free option, but says nothing about result ordering, pagination via `limit`, or what a match looks like. With annotations carrying the safety profile, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that leads with the verb and resource, with no filler. The long parenthetical taste list is dense but earns its place as the only documentation of that enum; only minor tightening is possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter, zero-required tool with 20% schema coverage and no output schema, the description covers the core search axes but leaves `limit` and `language` undocumented and gives no sense of result shape or default behavior. Adequate to invoke, but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20%, so the description must compensate, and it partially does by explaining the taste dimension and the alcohol-free toggle. But it omits `limit` (max 30, default 12) and `language` entirely, and its English taste list (9 terms) does not map cleanly onto the German enum (10 terms, including 'herb'), which could mislead an agent constructing a `taste` value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource ('Searches cocktails') with the searchable dimensions enumerated (name, ingredient, taste), so an agent knows exactly what the tool returns. However, it does not distinguish itself from the sibling `find_cocktails`, which appears to overlap heavily, leaving the agent to guess which to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use, when-not-to-use, or alternative routing, despite `find_cocktails` and `search` being obvious near-duplicates. Usage is only implied by the tool's search semantics, and the one conditional hint ('optionally only non-alcoholic') describes a parameter rather than a selection criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
- First observed
fetch - First observed
find_cocktails - First observed
get_recipe - First observed
missing_ingredients - First observed
search - First observed
search_cocktails
Related MCP Connectors
Cocktails you can make from bottles you already have, full recipes, and the best next bottle to add.
Search 500 cocktail recipes, get full recipes, find drinks by ingredient, suggest random picks.
Real recipes you can cook from the food you already have, with exactly what is missing.
Answers 'what can I cook tonight?' from your own saved recipes and what's really in your kitchen.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceGives your AI a live picture of your home bar's spirits, liqueurs, juices, garnishes, equipment and glassware, so it can suggest cocktails you can actually make right now, propose substitutes, help use up open bottles before they turn, and keep a shopping list. Runs locally alongside a web UI where you and the AI read and write the same inventory, with fill levels, expiry dates and every change logged.MIT
- AlicenseNot gradedqualityBmaintenanceEnables searching for cocktail recipes by name, ingredient, or randomly, and retrieving full cocktail details including ingredients, measurements, and instructions via TheCocktailDB API.435 npmMIT
- FlicenseAqualityDmaintenanceEnables natural language search for cocktail recipes and ingredient information through TheCocktailDB API. Supports searching by cocktail name, ingredient, category, or alcohol content to discover recipes and recommendations.5-
- FlicenseAqualityDmaintenanceEnables management of your home bar inventory and cocktail discovery through Bar Assistant. View shelf ingredients, find cocktails you can make, and add or remove items from your bar collection.6-
Glama MCP Gateway
Add one secure layer between your agents and this server.