Karakeep MCP Server
OFFICIAL SERVERSearch, save, tag and organise bookmarks, lists and highlights in a Karakeep instance
Manage recipes, meal plans, shopping lists and ingredient data in a self-hosted Mealie instance
By Timo Reymann (individual) TypeScript Local · stdio Productivity
33 popularity score ★ 16 ↓ 202/wk
Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
It needs MEALIE_BASE_URL, MEALIE_API_KEY. Replace each <NAME> with your value.
claude mcp add mealie -e MEALIE_BASE_URL=<MEALIE_BASE_URL> -e MEALIE_API_KEY=<MEALIE_API_KEY> -- npx -y mealie-mcp-server{
"mcpServers": {
"mealie": {
"command": "npx",
"args": [
"-y",
"mealie-mcp-server"
],
"env": {
"MEALIE_BASE_URL": "<MEALIE_BASE_URL>",
"MEALIE_API_KEY": "<MEALIE_API_KEY>"
}
}
}
}{
"mcpServers": {
"mealie": {
"command": "npx",
"args": [
"-y",
"mealie-mcp-server"
],
"env": {
"MEALIE_BASE_URL": "<MEALIE_BASE_URL>",
"MEALIE_API_KEY": "<MEALIE_API_KEY>"
}
}
}
}{
"servers": {
"mealie": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mealie-mcp-server"
],
"env": {
"MEALIE_BASE_URL": "<MEALIE_BASE_URL>",
"MEALIE_API_KEY": "<MEALIE_API_KEY>"
}
}
}
}[mcp_servers.mealie]
command = "npx"
args = ["-y", "mealie-mcp-server"]
[mcp_servers.mealie.env]
MEALIE_BASE_URL = "<MEALIE_BASE_URL>"
MEALIE_API_KEY = "<MEALIE_API_KEY>"gemini mcp add --scope user -e MEALIE_BASE_URL=<MEALIE_BASE_URL> -e MEALIE_API_KEY=<MEALIE_API_KEY> mealie npx -- -y mealie-mcp-serverOpens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
It needs MEALIE_BASE_URL, MEALIE_API_KEY. Replace each <NAME> with your value.
claude mcp add mealie -e MEALIE_BASE_URL=<MEALIE_BASE_URL> -e MEALIE_API_KEY=<MEALIE_API_KEY> -- docker run -i --rm -e MEALIE_BASE_URL -e MEALIE_API_KEY ghcr.io/timo-reymann/mealie-mcp-server:main{
"mcpServers": {
"mealie": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MEALIE_BASE_URL",
"-e",
"MEALIE_API_KEY",
"ghcr.io/timo-reymann/mealie-mcp-server:main"
],
"env": {
"MEALIE_BASE_URL": "<MEALIE_BASE_URL>",
"MEALIE_API_KEY": "<MEALIE_API_KEY>"
}
}
}
}{
"mcpServers": {
"mealie": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MEALIE_BASE_URL",
"-e",
"MEALIE_API_KEY",
"ghcr.io/timo-reymann/mealie-mcp-server:main"
],
"env": {
"MEALIE_BASE_URL": "<MEALIE_BASE_URL>",
"MEALIE_API_KEY": "<MEALIE_API_KEY>"
}
}
}
}{
"servers": {
"mealie": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MEALIE_BASE_URL",
"-e",
"MEALIE_API_KEY",
"ghcr.io/timo-reymann/mealie-mcp-server:main"
],
"env": {
"MEALIE_BASE_URL": "<MEALIE_BASE_URL>",
"MEALIE_API_KEY": "<MEALIE_API_KEY>"
}
}
}
}[mcp_servers.mealie]
command = "docker"
args = ["run", "-i", "--rm", "-e", "MEALIE_BASE_URL", "-e", "MEALIE_API_KEY", "ghcr.io/timo-reymann/mealie-mcp-server:main"]
[mcp_servers.mealie.env]
MEALIE_BASE_URL = "<MEALIE_BASE_URL>"
MEALIE_API_KEY = "<MEALIE_API_KEY>"gemini mcp add --scope user -e MEALIE_BASE_URL=<MEALIE_BASE_URL> -e MEALIE_API_KEY=<MEALIE_API_KEY> mealie docker -- run -i --rm -e MEALIE_BASE_URL -e MEALIE_API_KEY ghcr.io/timo-reymann/mealie-mcp-server:mainMEALIE_BASE_URL |
Required: Address of your Mealie instance, e.g. https://mealie.example.com. |
|---|---|
MEALIE_API_KEY |
Required: API key generated in your Mealie account settings. |
In a container, a setting goes in with -e NAME=value after docker run.
mealie-mcp-server connects an assistant to your own Mealie recipe manager through Mealie's REST API, using an API key you generate in Mealie. It runs on your machine over stdio and covers most of what Mealie keeps: recipes, meal plans, shopping lists and their items, categories, tags, kitchen tools, and the food and unit vocabularies that structured ingredients refer to.
Beyond plain create, read, update and delete calls, it has batch tools that fetch or update many recipes with bounded concurrency, a meal-plan tool that returns plans with the recipe details embedded, and read-only paginated queues for clean-up work: recipes that still need categories and tags, ingredients that are not yet parsed into foods and units, or recipes missing images, links or sections. Ingredient and instruction writes are checked against what Mealie stores afterwards and rolled back with a report if they did not stick. It also ships one prompt, `weekly-meal-plan`, and sends server-wide usage instructions to the client when it connects.
Version 2.0.0 registers 78 tools according to the generated list in its README and npm entry, although the README's opening line still says 71. The image-upload tool `set_recipe_image_from_file` does not read local files: it downloads a temporary URL that the client hands it, so it only works in clients that pass file references (its own description names ChatGPT).
| Runtime | Node.js 22+orDocker |
|---|
Node.js 22 or later for the npx way, or Docker for the container. A running Mealie instance you can reach over the network, and a Mealie API key generated from your Mealie account settings. Both MEALIE_BASE_URL and MEALIE_API_KEY must be set: the server prints an error and exits at start if either is missing (src/config.ts).
Speaks stdio only; there is no HTTP mode or hosted endpoint. It works with one Mealie instance and one API key per process, so it acts with that user's Mealie permissions. `set_recipe_image_from_file` only works in clients that pass file references with a download URL. The README's Docker example uses `docker run -d`, which leaves no stdin for a client; the snippet here uses `-i --rm`. The image's documented tag is `:main`, built from the main branch rather than a release, so it may differ from npm version 2.0.0.
Suits people who self-host Mealie and want an assistant to plan meals, fill shopping lists or tidy up a large recipe collection: tagging, parsing ingredients into foods and units, merging duplicate foods. Its batch and queue tools are aimed at bulk clean-up of many recipes. It can delete recipes, lists, foods and units, so trying it on a test instance or a backed-up collection first is worth considering. It is a community server, not one from the Mealie project.
create_recipedelete_recipeduplicate_recipefind_recipes_for_ingredientsget_recipe_conciseget_recipe_detailedget_recipesget_recipes_batchget_recipes_detailed_batchget_recipes_for_classificationget_recipes_for_data_enrichmentget_recipes_for_ingredient_parsingmark_recipe_last_madepatch_recipeset_recipe_imageset_recipe_image_from_fileset_recipe_image_from_urlset_recipe_ratingupdate_recipe_ingredientsupdate_recipe_ingredients_batchupdate_recipe_instructionsupdate_recipe_instructions_batchupdate_recipe_taxonomyupdate_recipe_taxonomy_batchupdate_recipe_toolsupdate_recipe_tools_batchcreate_mealplancreate_mealplan_bulkget_all_mealplansget_mealplan_with_recipesget_todays_mealplanpatch_mealplanadd_recipe_to_shopping_listcreate_shopping_listcreate_shopping_list_itemcreate_shopping_list_items_bulkdelete_shopping_listdelete_shopping_list_itemdelete_shopping_list_items_bulkget_shopping_listget_shopping_list_itemsget_shopping_listsremove_recipe_from_shopping_listupdate_shopping_listupdate_shopping_list_itemcreate_categorydelete_categoryget_categoriesget_empty_categoriesupdate_categorycreate_tagdelete_tagget_tagsget_empty_tagsget_foodsget_food_matchescreate_foodmerge_foodsget_unitsget_unit_matches