cooklang-skills
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 8 GitHub stars
Code Fail
- rm -rf — Recursive force deletion command in scripts/sync-skills.sh
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Cooklang plugin for AI agents: 14 skills + the Cook MCP server. Claude Code plugin, Codex, Cursor, VS Code, Gemini CLI extension.
Cooklang Skills
Skills and an MCP server that let AI agents work with Cooklang recipes: plain-text .cook recipes and .menu meal plans in a folder you own.
This repo packages two things for every agent client:
- 14 skills: step-by-step guides the agent follows for writing, validating, searching, scaling, importing and exporting recipes, meal planning, shopping lists, pantry tracking, reports and nutrition.
- The Cook MCP server (
@cookmd/mcp): the tools the skills call. It reads, searches, validates and writes your files, builds shopping lists, tracks a pantry and renders reports.
Everything runs locally and is free, with no account. Nutrition and importing from photos or social links use cook.md and need Cook Basic or Cook Pro.
The server runs through npx, so you need Node.js. Builds exist for macOS (arm64, x64) and Linux (x64, arm64). There are no Windows builds yet. The plugin manifests pin @cookmd/[email protected]; the snippets for other clients below use the latest release. Plugin setups need 0.2.2 or newer.
Install
| Client | Skills | Cook MCP server |
|---|---|---|
| Claude Code | plugin | plugin |
| Codex | plugin | plugin, plus COOK_RECIPES_DIR via codex mcp add |
| Gemini CLI | extension | extension |
| Cursor | plugin or skills/ copy |
plugin, or install link |
| VS Code / GitHub Copilot | plugin | plugin, or install link |
| Claude Desktop and other MCP clients | JSON config | |
| Any agent, skills only | npx skills add |
The recipe folder
The server works on one folder of recipes. It uses, in order:
COOK_RECIPES_DIR, if set in the server's config.- The workspace folder the client reports (MCP roots), which is the project you have open.
- The folder the client started it in.
It ignores /, your home folder and plugin install folders (a plugin's server may be started inside the plugin's own folder). If nothing usable is left, recipe tools reply that no recipe folder is set and say why; set COOK_RECIPES_DIR to an absolute path in the server's config. So open your recipe folder in the client, or set the variable.
Claude Code
/plugin marketplace add cooklang/cooklang-skills
/plugin install cooklang@cooklang-skills
The plugin adds the skills and starts the Cook server with your Claude Code project folder as the recipe folder. Check it with /mcp (look for plugin:cooklang:cook).
Codex
codex plugin marketplace add cooklang/cooklang-skills
codex plugin add cooklang@cooklang-skills
The plugin adds the skills and the Cook server. Codex doesn't report a workspace folder to MCP servers and starts plugin servers inside the plugin's install folder, so the server can't find your recipes by itself. Tell it where they are:
codex mcp add cook --env COOK_RECIPES_DIR=/path/to/recipes -- npx -y @cookmd/mcp
A server you add yourself named cook takes the place of the plugin's cook server, so only one runs. Codex config has no way to set environment variables on a plugin's server ([plugins."cooklang@cooklang-skills".mcp_servers.cook] only takes enabled, tool approval and tool lists), which is why this is a separate server entry.
Without plugins, copy the skills instead: cp -R skills/* ~/.agents/skills/.
Gemini CLI
gemini extensions install https://github.com/cooklang/cooklang-skills
The extension adds the skills, a short GEMINI.md context file, and the Cook server with your workspace as the recipe folder. Check it with gemini mcp list.
Cursor
This repo is an Agent Plugin (root plugin.json, mcp.json and skills/), a format Cursor loads as a plugin. Installed that way, you get the skills and the Cook server, and the server uses the workspace folder Cursor reports.
Or add only the server with this link (paste it into your browser if it isn't clickable):
cursor://anysphere.cursor-deeplink/mcp/install?name=cook&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBjb29rbWQvbWNwIl0sImVudiI6eyJDT09LX1JFQ0lQRVNfRElSIjoiJHt3b3Jrc3BhY2VGb2xkZXJ9In19
It installs this config, which you can also put in .cursor/mcp.json or ~/.cursor/mcp.json by hand. For the skills, copy skills/* into ~/.cursor/skills/ (all projects) or .cursor/skills/ in your recipe folder.
{
"mcpServers": {
"cook": {
"command": "npx",
"args": ["-y", "@cookmd/mcp"],
"env": { "COOK_RECIPES_DIR": "${workspaceFolder}" }
}
}
}
VS Code / GitHub Copilot
Run Chat: Install Plugin From Source from the Command Palette and enter https://github.com/cooklang/cooklang-skills. That installs the skills and the Cook server; the server uses the workspace folder VS Code reports.
Or add only the server: install the Cook server in VS Code, or open this URL directly:
vscode:mcp/install?%7B%22name%22%3A%22cook%22%2C%22type%22%3A%22stdio%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40cookmd%2Fmcp%22%5D%2C%22env%22%3A%7B%22COOK_RECIPES_DIR%22%3A%22%24%7BworkspaceFolder%7D%22%7D%7D
Or add it to .vscode/mcp.json in your recipe folder:
{
"servers": {
"cook": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@cookmd/mcp"],
"env": { "COOK_RECIPES_DIR": "${workspaceFolder}" }
}
}
}
Claude Desktop and other MCP clients
Any client that takes an mcpServers config. Desktop apps have no project folder, so set COOK_RECIPES_DIR to your recipes:
{
"mcpServers": {
"cook": {
"command": "npx",
"args": ["-y", "@cookmd/mcp"],
"env": { "COOK_RECIPES_DIR": "/absolute/path/to/recipes" }
}
}
}
In Claude Desktop this goes in Settings > Developer > Edit Config (claude_desktop_config.json).
Skills only
As an alternative, install just the skills into any agent that reads Agent Skills:
npx skills add cooklang/cooklang-skills
The skills call the Cook server's tools, so add the server too (see your client above).
Skills
| Skill | Use it for |
|---|---|
cooklang-editing |
Write a new recipe or edit and fix a .cook file |
cooklang-validation |
Check recipes, a folder or the whole collection for errors and broken references |
metadata |
Add or fix YAML frontmatter (title, tags, servings, times), including bulk changes |
recipe-import |
Import a recipe from a URL, photos or pasted text |
recipe-search |
Find recipes by ingredient, tag, cuisine, course or a remembered phrase |
scale-recipe |
Show a recipe for more or fewer servings |
export-recipe |
Turn a recipe into Markdown, JSON, plain text or HTML |
organize-collection |
Folder layout, metadata audit, aisle and pantry config, whole-library checks |
meal-planning |
Build or edit a .menu meal plan |
shopping-list |
Shopping lists from recipes or plans, grouped by aisle, minus the pantry |
pantry |
Track stock, expiry and low items; what can I cook with what I have |
report-authoring |
Custom Jinja reports and printouts with render_report |
nutrition-reports |
Nutrition evaluation and screening (Cook Basic or Pro) |
nutrition-goals |
Change a recipe or plan to hit nutrition targets (Cook Basic or Pro) |
Things to ask:
- "Plan dinners for next week from my recipes and make the shopping list."
- "What can I cook with what's in my pantry?"
- "Check my whole collection for broken references."
- "Import https://example.com/some-recipe as a recipe."
- "How much protein is in this week's plan?" (Cook Basic or Pro)
examples/sample-recipes/ has three recipes to try this on.
Upgrading from 1.x
- The skills now call the Cook MCP server instead of CookCLI shell commands. CookCLI is no longer required, though it still reads the same files.
- The 10 old skills are replaced by the 14 above.
create-recipeis nowcooklang-editing,convert-recipeisrecipe-import,validate-recipesiscooklang-validation,search-recipesisrecipe-search,meal-planismeal-planningandmanage-pantryispantry. - In Claude Code, update with
/plugin marketplace update cooklang-skills, then reinstall or update thecooklangplugin. - If you added the server by hand with
claude mcp add cook, remove it (claude mcp remove cook) so only one copy is configured. While both exist, Claude Code uses yours and skips the plugin's.
Repository layout
| Path | For |
|---|---|
skills/<name>/SKILL.md |
The skills, read by every client |
.claude-plugin/plugin.json, .claude-plugin/marketplace.json |
Claude Code plugin and marketplace (Codex also reads the marketplace) |
plugin.json, mcp.json |
Agent Plugins manifest and its Cook server (Codex, Cursor, VS Code) |
gemini-extension.json, GEMINI.md |
Gemini CLI extension and its context file |
AGENTS.md |
The same short guide for agents that read AGENTS.md |
scripts/sync-skills.sh |
Copies skills/ from cook-mcp |
skills/ is a copy. The canonical skills live in cook-md/cook-mcp next to the server, which also serves them as cooklang://skills/<name> resources. Don't edit them here: change them in cook-mcp, then run scripts/sync-skills.sh [ref] (default: the latest cook-mcp release). A weekly CI check fails when skills/ drifts from cook-mcp main.
Links
- Cook MCP server: tools, environment variables, building from source
- Cooklang specification
- Cooklang on GitHub
License
MIT
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found