TheCocktailDB · Capability

TheCocktailDB Cocktail Discovery

Unified workflow for cocktail recipe discovery, search, and drink recommendations. Combines search, lookup, filter, and listing capabilities for bartenders, mixologists, and cocktail enthusiasts.

Run with Naftiko CocktailsDrinksRecipesFood And Beverage

What You Can Do

GET
Search cocktails — Search for cocktails by name
/v1/cocktails
GET
Get random cocktail — Retrieve a random cocktail recipe
/v1/cocktails/random
GET
Lookup cocktail — Look up a cocktail by ID
/v1/cocktails/{id}
GET
Filter cocktails — Filter cocktails by ingredient, category, glass, or alcoholic status
/v1/cocktails/filter
GET
List categories — List all drink categories
/v1/categories

MCP Tools

search-cocktails

Search for cocktails by name (e.g. margarita, mojito)

read-only
browse-cocktails-by-letter

Browse all cocktails starting with a specific letter

read-only
search-ingredients

Search for a cocktail ingredient by name

read-only
lookup-cocktail-by-id

Get full recipe details for a cocktail by its ID

read-only
lookup-ingredient-by-id

Get details for a specific ingredient by its ID

read-only
get-random-cocktail

Get a completely random cocktail recipe for inspiration

read-only
filter-by-ingredient

Find cocktails that use a specific ingredient

read-only
filter-by-alcoholic-status

Filter cocktails by alcoholic or non-alcoholic status

read-only
filter-by-category

Filter cocktails by category (e.g. Cocktail, Shot, Punch)

read-only
filter-by-glass-type

Filter cocktails by glass type (e.g. Cocktail glass, Highball glass)

read-only
list-categories

List all available drink categories

read-only
list-glass-types

List all available glass types

read-only
list-ingredients

List all available ingredients in the database

read-only

APIs Used

cocktaildb

Capability Spec

Raw ↑
naftiko: "1.0.0-alpha1"

info:
  label: "TheCocktailDB Cocktail Discovery"
  description: "Unified workflow for cocktail recipe discovery, search, and drink recommendations. Combines search, lookup, filter, and listing capabilities for bartenders, mixologists, and cocktail enthusiasts."
  tags:
    - Cocktails
    - Drinks
    - Recipes
    - Food And Beverage
  created: "2026-05-03"
  modified: "2026-05-03"

binds: []

capability:
  consumes:
    - import: cocktaildb
      location: ./shared/thecocktaildb.yaml

  exposes:
    - type: rest
      port: 8080
      namespace: cocktail-discovery-api
      description: "Unified REST API for cocktail discovery and recipe lookup."
      resources:
        - path: /v1/cocktails
          name: cocktails
          description: "Search and browse cocktails"
          operations:
            - method: GET
              name: search-cocktails
              description: "Search for cocktails by name"
              call: "cocktaildb.search-cocktails"
              with:
                s: "rest.s"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/cocktails/random
          name: random-cocktail
          description: "Get a random cocktail"
          operations:
            - method: GET
              name: get-random-cocktail
              description: "Retrieve a random cocktail recipe"
              call: "cocktaildb.get-random-cocktail"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/cocktails/{id}
          name: cocktail-detail
          description: "Full cocktail recipe details"
          operations:
            - method: GET
              name: lookup-cocktail
              description: "Look up a cocktail by ID"
              call: "cocktaildb.lookup-by-id"
              with:
                i: "rest.id"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/cocktails/filter
          name: cocktail-filter
          description: "Filter cocktails by attributes"
          operations:
            - method: GET
              name: filter-cocktails
              description: "Filter cocktails by ingredient, category, glass, or alcoholic status"
              call: "cocktaildb.filter-cocktails"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/categories
          name: categories
          description: "List drink categories"
          operations:
            - method: GET
              name: list-categories
              description: "List all drink categories"
              call: "cocktaildb.list-filter-values"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      port: 9090
      namespace: cocktail-discovery-mcp
      transport: http
      description: "MCP server for AI-assisted cocktail discovery and recipe recommendations."
      tools:
        - name: search-cocktails
          description: "Search for cocktails by name (e.g. margarita, mojito)"
          hints:
            readOnly: true
            openWorld: true
          call: "cocktaildb.search-cocktails"
          with:
            s: "tools.name"
          outputParameters:
            - type: object
              mapping: "$."
        - name: browse-cocktails-by-letter
          description: "Browse all cocktails starting with a specific letter"
          hints:
            readOnly: true
            openWorld: true
          call: "cocktaildb.search-cocktails"
          with:
            f: "tools.letter"
          outputParameters:
            - type: object
              mapping: "$."
        - name: search-ingredients
          description: "Search for a cocktail ingredient by name"
          hints:
            readOnly: true
            openWorld: true
          call: "cocktaildb.search-cocktails"
          with:
            i: "tools.ingredient"
          outputParameters:
            - type: object
              mapping: "$."
        - name: lookup-cocktail-by-id
          description: "Get full recipe details for a cocktail by its ID"
          hints:
            readOnly: true
            openWorld: true
          call: "cocktaildb.lookup-by-id"
          with:
            i: "tools.id"
          outputParameters:
            - type: object
              mapping: "$."
        - name: lookup-ingredient-by-id
          description: "Get details for a specific ingredient by its ID"
          hints:
            readOnly: true
            openWorld: true
          call: "cocktaildb.lookup-by-id"
          with:
            iid: "tools.ingredient_id"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-random-cocktail
          description: "Get a completely random cocktail recipe for inspiration"
          hints:
            readOnly: true
            openWorld: true
          call: "cocktaildb.get-random-cocktail"
          outputParameters:
            - type: object
              mapping: "$."
        - name: filter-by-ingredient
          description: "Find cocktails that use a specific ingredient"
          hints:
            readOnly: true
            openWorld: true
          call: "cocktaildb.filter-cocktails"
          with:
            i: "tools.ingredient"
          outputParameters:
            - type: object
              mapping: "$."
        - name: filter-by-alcoholic-status
          description: "Filter cocktails by alcoholic or non-alcoholic status"
          hints:
            readOnly: true
            openWorld: true
          call: "cocktaildb.filter-cocktails"
          with:
            a: "tools.status"
          outputParameters:
            - type: object
              mapping: "$."
        - name: filter-by-category
          description: "Filter cocktails by category (e.g. Cocktail, Shot, Punch)"
          hints:
            readOnly: true
            openWorld: true
          call: "cocktaildb.filter-cocktails"
          with:
            c: "tools.category"
          outputParameters:
            - type: object
              mapping: "$."
        - name: filter-by-glass-type
          description: "Filter cocktails by glass type (e.g. Cocktail glass, Highball glass)"
          hints:
            readOnly: true
            openWorld: true
          call: "cocktaildb.filter-cocktails"
          with:
            g: "tools.glass"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-categories
          description: "List all available drink categories"
          hints:
            readOnly: true
            openWorld: true
          call: "cocktaildb.list-filter-values"
          with:
            c: list
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-glass-types
          description: "List all available glass types"
          hints:
            readOnly: true
            openWorld: true
          call: "cocktaildb.list-filter-values"
          with:
            g: list
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-ingredients
          description: "List all available ingredients in the database"
          hints:
            readOnly: true
            openWorld: true
          call: "cocktaildb.list-filter-values"
          with:
            i: list
          outputParameters:
            - type: object
              mapping: "$."