gitmyhub

epicure-mcp

Python ★ 30 updated 22d ago

Public read-only MCP server for the Epicure ingredient-embedding model

A self-contained MCP server that lets AI assistants answer food ingredient pairing and flavor questions using pre-computed embeddings stored locally, with no external API calls at query time.

PythonMCPAzure Container AppsUMAPDockersetup: moderatecomplexity 3/5

Epicure MCP is a read-only server that exposes a set of tools for exploring relationships between food ingredients. It runs the Model Context Protocol, which means it can connect directly to AI coding assistants like Claude Code or Cursor, letting users ask ingredient-related questions as part of a conversation.

The server works entirely from pre-computed data bundled inside the repository. There are no calls to external AI services at query time: every result is computed on the fly using embeddings and ingredient metadata stored in CSV and binary files totaling about 13 megabytes. This makes the server fully self-contained and predictable in cost.

The thirteen available tools cover a range of uses. Some handle pairings: given two ingredients, the server can compute how compatible they are, find the top nearest neighbors in embedding space, or build a cluster-and-bridge graph to explain why certain combinations work. Others cover cultural and flavor context: a tool can project an ingredient onto named cuisine directions to produce a cultural profile, or show which flavor axes correlate with each other. More geometric tools include SLERP-based morphing (moving an ingredient toward another in embedding space) and Pareto frontier navigation for balancing proximity against a flavor axis. A UMAP-based tool provides a 2D position for each ingredient and its nearest neighbors in that flattened view.

Logging captures structured data per tool call including latency and a hashed client IP, with the raw IP never stored. Rate limiting is handled in-process with a token bucket, though limits can drift across replicas.

The server is designed for deployment on Azure Container Apps, with scripts and a GitHub Actions workflow included. It can scale to zero between requests with a cold start of a few seconds while the bundle loads.

Where it fits