# Cook (Cooklang recipes) [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/cook-md/cook-mcp  
**GitHub Stars:** 1  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/cook-cooklang-recipes

## Description
Cooklang recipes for AI agents: validate, meal plans, shopping lists, pantry, nutrition

## Tools
Capabilities this server exposes over MCP:

- **list_recipes** — List recipes, meal plans or report templates (`kind`: recipe, menu, template, all)
- **read_recipe** — Read a recipe or menu: source plus parsed ingredients, cookware, steps and metadata; optional scaling
- **search_recipes** — Search names and contents, optionally filtered by tag
- **validate** — Check a file, a folder, the whole collection, or unsaved content for errors and broken references
- **write_recipe** — Save a `.cook` recipe (validated first)
- **write_menu** — Save a `.menu` meal plan (validated first)
- **write_config** — Save `config/aisle.conf`, `config/pantry.conf`, or a `.jinja` report template under `reports/` or `config/reports/
- **shopping_list** — Build a shopping list from recipes and/or menus: merges duplicates, groups by aisle, subtracts the pantry
- **pantry_list** — Show the pantry, by section
- **pantry_expiring** — Items expiring soon
- **pantry_depleted** — Items at or below their low-stock threshold
- **pantry_recipes** — Which recipes you can cook with what is in the pantry
- **pantry_update** — Add, update or remove pantry items
- **render_report** — Render a jinja report template against a recipe or menu (plain templates need no login)
- **login** — Start a cook.md device login; shows a code and a URL
- **auth_status** — Show login status, plan and import allowance
- **get_nutrition** — Nutrition facts for one ingredient amount
- **aggregate_nutrition** — Sum nutrition across many ingredient lines
- **lookup_ingredient** — Fuzzy-search the ingredient catalog
- **convert_units** — Convert between units (volume to mass needs a density)
- **check_category** — Check whether an ingredient belongs to a category
- **branded_lookup** — Look up a packaged product by barcode or text
- **reference_intakes** — Daily reference-intake tables (RDA/DV)
- **import_recipe** — Convert a web page, photos or pasted text to Cooklang

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "cook-cooklang-recipes": {
    "command": "npx",
    "args": ["-y","@cookmd/mcp"]
  }
}
```

## Documentation

## What Cook (Cooklang recipes) MCP server does

Cook (Cooklang recipes) MCP server connects an MCP-compatible AI client to a recipe folder that you control. The collection uses Cooklang `.cook` files for recipes and `.menu` files for meal plans. The server can inspect source text and parsed recipe data, search names and contents, check tags, and validate individual files, folders, complete collections, or unsaved content.

Recipe and menu changes are written back to the collection after validation. The server also manages pantry records, including current stock, expiry information, low-stock items, and recipes that can be prepared from available ingredients. Shopping lists can combine recipes or menus, merge duplicate items, group results by aisle, and subtract pantry contents when units match.

## How it works

The server runs through the standard MCP configuration used by clients that accept a command and arguments. The usual installation command runs the `@cookmd/mcp` package with `npx`. The recipe root is selected from `COOK_RECIPES_DIR` when that variable is set. Otherwise, the server can use a client-provided workspace root or its working directory.

Local recipe operations do not require an account. Authentication is available through the `login` tool for cook.md features. Nutrition lookups, ingredient catalog operations, packaged-product searches, unit conversion, category checks, and some imports use the cook.md services and account entitlements. Web-page and pasted-text imports work without login; photo and social-media imports require an account and consume the applicable import allowance. Imported content is returned as Cooklang text and must be saved separately with `write_recipe`.

## Setup and configuration

Install with a client configuration that starts `npx -y @cookmd/mcp`. Set `COOK_RECIPES_DIR` to the directory containing the collection when the client workspace should not determine the root. Other supported settings include the cook.md base URL, nutrition service URL, nutrition token, and authentication-file path.

The server supports macOS on arm64 or x64 and Linux on x64 or arm64 with glibc 2.35 or newer. Windows builds are not available. Claude Code users can also install the `cooklang` plugin, which bundles the server and related skills; an existing manually configured copy should be removed before using the plugin to avoid running two instances.

## Tools and capabilities

The local tool set includes:

- Listing, reading, searching, scaling, validating, and writing recipes and menus.
- Saving aisle configuration, pantry configuration, and Jinja report templates.
- Building shopping lists and viewing, updating, expiring, or depleting pantry items.
- Finding recipes that fit the current pantry and rendering reports against recipes or menus.

Authenticated tools add nutrition aggregation, ingredient lookup, unit conversion, category checks, branded-product lookup, reference-intake tables, and recipe import. The server also exposes Cooklang specification, syntax, menu-format, and skill resources, along with prompts for meal planning, shopping lists, pantry work, importing, editing, nutrition, and scaling.

## Limitations and notes

Cook (Cooklang recipes) MCP server keeps writes inside the selected recipe root and validates every write. It has no delete tool, so agents cannot remove collection files through MCP. The deprecated `>>` metadata syntax is rejected in favor of YAML frontmatter.

Pantry subtraction only works when pantry and recipe units match; equivalent quantities in different units are not converted for that operation. Symlinks inside the recipe folder are generally not followed for reads and listing, with limited exceptions for certain references. Nutrition functions inside rendered reports also require Cook Basic or Pro access. Authentication state is stored locally unless a different path is configured.

_Full upstream README: https://allmcps.com/mcp/cook-cooklang-recipes/readme_

