- Go 100%
- Shell <1%
cooked-mcp #
Have your LLM save and manage recipes in your Cooked. You can ask it to find the lentil soup you saved last winter, save a recipe from a TikTok video, or help you figure out why your crumb's too dense.
Capabilities #
It only supports operations available through their API, which isn't everything. It can:
- list, search, and read your saved recipes
- clean up raw recipe text
- import recipes from a URL, with a chance to review Cooked's draft first
- create, edit, and delete recipes
- read and change your shopping list, including quantities, aisles, and checked items
Destructive operations are marked as such for MCP clients that pay attention to tool annotations.
Install #
For now, you'll need to install Go first. I'll publish builds soon. Then:
go install secluded.site/cooked-mcp@latest
This puts cooked-mcp in your Go binary directory, usually ~/go/bin.
To build from a clone instead, run:
mise run build
Configure Cooked #
The quickest option is providing your username and password as environment variables:
export COOKED_LOGIN_USERNAME='your-name'
export COOKED_LOGIN_PASSWORD='your-password'
You can also create ~/.config/cooked-mcp/config.toml (it respects
$XDG_CONFIG_HOME when set):
[user]
name = "$COOKED_LOGIN_USERNAME"
password = "!pass show services/cooked.wiki"
Configuration values can be plain text, refer to environment variables with
$NAME or ${NAME}, or begin with ! to read the value from a shell command.
The last form is handy with pass, rbw, op, or another secret manager, and
keeps a password out of the config file itself.
Important
cooked-mcp currently logs in with a Cooked username and password. Accounts
that only use Google, Facebook, Apple, or another passwordless login are not
supported yet (may never be? unsure).
Connect an MCP client #
The default transport is stdio. Add an entry like this to your client's MCP server configuration, adjusting the shape and executable path to suit the client:
{
"mcpServers": {
"cooked": {
"command": "/home/you/go/bin/cooked-mcp",
"env": {
"COOKED_LOGIN_USERNAME": "your-name",
"COOKED_LOGIN_PASSWORD": "your-password"
}
}
}
}
If you use the TOML file above, leave out env. In either case, remember that
putting a password directly in an MCP client config stores it as plain text.
There's also a Streamable HTTP transport:
cooked-mcp --transport http
It listens on 127.0.0.1:8123 and serves MCP at http://127.0.0.1:8123/mcp.
Set COOKED_MCP_HTTP_ADDR to change the listen address and
COOKED_MCP_HTTP_TOKEN to require bearer authentication. The equivalent TOML
settings are mcp.http_addr and mcp.http_token.
Run cooked-mcp -help for all command-line options.
Contributing #
You can open an issue
or pull request on
Tangled. The project uses
mise for its development tasks; mise run check
runs the complete formatter, linter, build, and test suite.