Skip to content

Repository files navigation

Recipe Plugin

Portable Agent Plugins package for cooking recipes. The initial provider is a mock adapter: it reads one Schema.org Recipe JSON document per file and exposes it through search_recipes(query, limit) and get_recipe(url) MCP tools.

search_recipes matches all query terms case-insensitively across recipe names, descriptions, categories, cuisines, keywords, and ingredients. It returns concise result cards containing each recipe's name, description, URL, image, category, and cuisine; use get_recipe with a result URL for the complete Schema.org document.

Layout

  • plugin.json and mcp.json are the Agent Plugins v1 package metadata.
  • .codex-plugin/plugin.json and .mcp.json are Codex companion metadata generated by the plugin scaffold.
  • assets/branding/ contains the marketplace-ready Recipe Plugin icon and its size exports.
  • src/recipe_plugin/data/ is the mock provider's JSON-file repository.

Run locally

python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -e .[dev]
recipe-mcp

The streamable HTTP endpoint is exposed at http://localhost:8000/mcp by the MCP Python SDK. Test it with the MCP Inspector:

npx @modelcontextprotocol/inspector

Select Streamable HTTP and connect to http://localhost:8000/mcp.

Container image

Build and run a local image (the local Docker Desktop architecture):

docker build -t recipe-mcp:local .
docker run --rm -p 8001:8001 recipe-mcp:local

The MCP endpoint is then available at http://localhost:8001/mcp.

For the Kubernetes cluster, publish a multi-platform image so its ARM64 nodes pull the correct image automatically. Replace REGISTRY/recipe-mcp:TAG with the cluster's container registry and immutable image tag:

docker buildx build --platform linux/amd64,linux/arm64 --tag REGISTRY/recipe-mcp:TAG --push .

To test the ARM64 image locally through Docker Desktop emulation before publishing:

docker buildx build --platform linux/arm64 --load --tag recipe-mcp:arm64-test .
docker run --rm --platform linux/arm64 -p 8001:8001 recipe-mcp:arm64-test

The image runs as an unprivileged recipe user and listens on all interfaces at port 8001. Put it behind a Kubernetes Service and TLS-enabled Ingress that routes the public /mcp path to port 8001. Outside the container, the server retains its loopback-only default; override RECIPE_MCP_HOST and RECIPE_MCP_PORT only when needed.

The packaged MCP configuration uses the non-routable mock endpoint https://recipes.example.test/mcp. Configure a real endpoint only in the deployment or marketplace environment that requires it.

About

Agent plugin to search and retrieve cooking recipes from various providers

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages