Labsco
mtnvencenzo logo

Cezzis Cocktails

from mtnvencenzo

Search for cocktail recipes using the cezzis.com API.

๐Ÿ”ฅ๐Ÿ”ฅโœ“ VerifiedFreeAdvanced setup

Cezzis.com Cocktails MCP Server

Part of the broader Cezzis.com digital experience for discovering and sharing cocktail recipes with a broad community of cocktail enthusiasts and aficionados.

This repository contains the Go-based MCP server for Cezzis.com cocktails. It exposes a streamable HTTP MCP interface that lets MCP clients search cocktail data, retrieve cocktail details, authenticate against Auth0, and submit user ratings through the Cezzis platform APIs.

Overview

The server is an integration layer, not the source of cocktail data. It registers MCP tools, forwards requests to the upstream Cocktails, AI Search, and Accounts APIs, stores authentication tokens in PostgreSQL per MCP session, and emits telemetry through OpenTelemetry.

Primary capabilities:

  • Search cocktails by free text.
  • Retrieve full cocktail details by cocktail ID.
  • Start and manage Auth0 device-flow authentication.
  • Submit authenticated cocktail ratings.
  • Expose health and MCP HTTP endpoints for local and deployed environments.

Production Environment

Complete Diagram

Tech Stack

  • Go 1.25.1
  • Model Context Protocol over streamable HTTP via mark3labs/mcp-go
  • OpenAPI-generated API clients for upstream Cezzis services
  • Auth0 device authorization flow
  • PostgreSQL for MCP session token storage
  • OpenTelemetry and zerolog for observability
  • Kubernetes manifests for local deployed environments under .iac/k8s
  • Terraform for production Azure infrastructure under .iac/terraform

Repo Structure

.
โ”œโ”€โ”€ .iac/
โ”‚   โ”œโ”€โ”€ argocd/      # Argo CD manifests for cluster sync
โ”‚   โ”œโ”€โ”€ k8s/         # Local Kubernetes deployment manifests
โ”‚   โ””โ”€โ”€ terraform/   # Production Azure infrastructure
โ”œโ”€โ”€ .vscode/         # IDE launch configuration
โ”œโ”€โ”€ cocktails.mcp/
โ”‚   โ”œโ”€โ”€ http-client.env.json
โ”‚   โ””โ”€โ”€ src/
โ”‚       โ”œโ”€โ”€ cmd/         # Application entry point
โ”‚       โ””โ”€โ”€ internal/
โ”‚           โ”œโ”€โ”€ api/     # Generated API clients
โ”‚           โ”œโ”€โ”€ auth/    # Auth0 flow and token handling
โ”‚           โ”œโ”€โ”€ db/      # PostgreSQL connection and setup
โ”‚           โ”œโ”€โ”€ mcpserver/
โ”‚           โ”œโ”€โ”€ middleware/
โ”‚           โ”œโ”€โ”€ repos/
โ”‚           โ”œโ”€โ”€ telemetry/
โ”‚           โ””โ”€โ”€ tools/   # MCP tool definitions and handlers
โ”œโ”€โ”€ Dockerfile
โ”œโ”€โ”€ makefile
โ””โ”€โ”€ mcp.http

HTTP Endpoints

MethodPathDescription
GET/mcp/v1/health/pingBasic health check returning {"status": "ok"}
GET/mcp/v1/health/readinessReadiness probe returning {"status": "ready"}
GET/mcp/v1/health/livenessLiveness probe returning {"status": "alive"}
GET/mcp/v1/health/versionBuild version response
GET/mcp/v1/mcpMCP probe endpoint returning {"status":"ok", "sse":false}
POST/mcp/v1/mcpStreamable HTTP MCP endpoint used by MCP clients

Tool execution requests rely on the Mcp-Session-Id header so the server can associate requests with an MCP session.

MCP Tools

ToolDescription
search_cocktailsSearches cocktail data using the upstream AI Search API
get_cocktailReturns detailed cocktail data for a specific cocktail ID
convert_to_plaintextConverts markdown or HTML-rich content into plain text
authentication_login_flowStarts the Auth0 device login flow
auth_statusReturns the authentication state for the current MCP session
authentication_logout_flowClears tokens for the current MCP session
cocktail_rateSubmits a cocktail rating for an authenticated user

Production Notes

Production infrastructure for this application is defined in .iac/terraform. In production, the MCP app is hosted in Azure Container Apps, sits behind Azure API Management, and is reached externally through Azure Front Door.