cocktail.glass

cocktail.glass is a catalogue of 500 cocktail recipes — each one with its ingredients, measures, glassware, garnish, and step-by-step method. It is a fast static site for people, and a fully machine-readable data source for AI agents.

For people

  • 500 recipes, browsable by category, glass, and ingredient
  • Instant client-side search
  • Origin stories for the classics
  • A homepage that ships 500 cards in roughly 54 KB gzipped

For AI agents

cocktail.glass doubles as a working reference implementation of an agent-ready website. Everything here is live and free, with no API key:

  • MCP server at /mcp — a remote, stateless Streamable HTTP endpoint with seven read-only tools and a guided prompt
  • WebMCP — the same tools in-page through navigator.modelContext
  • Markdown content negotiation — request any page with Accept: text/markdown and get clean Markdown instead of HTML
  • /cocktails.json — the whole catalogue in one file
  • /llms.txt, an MCP server card, and an RFC 9727 API catalog for discovery

Full guide: cocktail.glass/for-agents.

Tech stack

  • Astro static site — no UI framework, just vanilla inline scripts
  • Pagefind for search
  • Cloudflare Pages hosting, with Pages Functions for /mcp, the API endpoints, and Markdown negotiation
  • cocktails.json is the single source of truth for every recipe

Development

npm install
npm run dev      # astro dev on http://localhost:4321
npm run build    # static output written to dist/

Deploy to Cloudflare Pages:

npm run deploy:pages

Project layout

Path Contents
cocktails.json All 500 recipes — the single source of truth
src/pages/ Astro pages and routes
functions/ Cloudflare Pages Functions — /mcp, API endpoints, middleware
scripts/ Build-time generators for images, OG cards, and origin stories

Security

Found a security issue? See SECURITY.md — please do not open a public issue.

License

The source code in this repository is licensed under the MIT License. Take it apart, learn from it, reuse the patterns.

The cocktail recipe data and written contentcocktails.json, ingredients.json, movie-appearances.json, origin-stories.json, and the page copy — are © 2026 Joost de Valk, all rights reserved. They are published here for transparency, but may not be copied or republished. To reuse the data, get in touch.