mcp-mealie

mcp-mealie

MCP server for Mealie that exposes its REST API to manage recipes, meal plans, shopping lists, cookbooks, and taxonomy through natural language.

Category
Visit Server

README

mcp-mealie

MCP server for Mealie — exposes a Mealie instance's REST API to MCP clients (Claude Desktop, Claude Code, etc.) so an LLM can read, search, scrape, edit, and delete recipes (and meal plans, shopping lists, cookbooks, taxonomy) on your behalf.

Prerequisites

  • Python 3.14+
  • uv
  • A reachable Mealie instance (self-hosted or otherwise)
  • A Mealie API token: in Mealie, click your avatar → ProfileAPI TokensGenerate. The token inherits the issuing user's permissions, so for automation prefer a dedicated non-admin user.

Setup

uv sync

Configuration

Two environment variables are required:

Variable Purpose
MEALIE_BASE_URL Root URL of your Mealie instance, no trailing path
MEALIE_API_TOKEN Long-lived bearer token from Profile → API Tokens

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "mealie": {
      "command": "uvx",
      "args": ["mcp-mealie"],
      "env": {
        "MEALIE_BASE_URL": "https://mealie.example.com",
        "MEALIE_API_TOKEN": "eyJhbGc..."
      }
    }
  }
}

Claude Code

claude mcp add mealie \
  -e MEALIE_BASE_URL=https://mealie.example.com \
  -e MEALIE_API_TOKEN=eyJhbGc... \
  -- uvx mcp-mealie

Tools

Diagnostics

Tool Description
get_about Server version / health (no auth path)
whoami Confirm the token works

Recipes (full CRUD + scrape + rating + content)

Tool Description
list_recipes Paginated list with search and ordering
get_recipe Full recipe by slug
create_recipe Empty recipe by name
create_recipe_from_url Scrape from a URL
update_recipe Patch common metadata fields
set_recipe_ingredients Replace ingredient list (raw text, no food/unit binding)
set_recipe_ingredients_parsed Replace ingredient list, parsing each line and binding food/unit IDs
parse_recipe_ingredients Re-parse the recipe's existing free-text ingredients in place
set_recipe_instructions Replace step list (JSON array of lines)
set_recipe_notes Replace notes (JSON array of {title,text})
set_recipe_rating Per-user rating / favorite
delete_recipe Delete by slug

Cookbooks (full CRUD)

Tool Description
list_cookbooks Saved recipe filters
get_cookbook By UUID
create_cookbook name, description, query_filter_string, public
update_cookbook Patch
delete_cookbook Delete

Meal plans (full CRUD)

Tool Description
list_mealplans Range-filtered list
get_mealplan By id
create_mealplan date + entry_type, plus recipe_id or title/text
update_mealplan Patch
delete_mealplan Delete

Meal-plan rules (full CRUD)

Used by Mealie's random-meal generator.

Tool Description
list_mealplan_rules List rules
get_mealplan_rule By UUID
create_mealplan_rule day, entry_type, query_filter_string
update_mealplan_rule Patch
delete_mealplan_rule Delete

Shopping lists (CRUD + recipe attach)

Tool Description
list_shopping_lists
get_shopping_list Includes items
create_shopping_list
update_shopping_list Rename
delete_shopping_list
add_recipe_to_shopping_list Add a recipe's ingredients (with scale)
remove_recipe_from_shopping_list Reverse the above

Shopping items (full CRUD)

Tool Description
list_shopping_items Optionally filter by list_id
get_shopping_item
create_shopping_item Free-form note or structured (food/unit)
create_shopping_items_bulk JSON-array bulk create
update_shopping_item Includes check/uncheck
delete_shopping_item

Parser

Tool Description
parse_ingredient One string → quantity/unit/food
parse_ingredients JSON array of strings → list of parsed results

Taxonomy (full CRUD per resource)

Categories, tags, and kitchen tools share a uniform {name} create surface.

Resource Tools
Categories list_categories, get_category, create_category, update_category, delete_category
Tags list_tags, get_tag, create_tag, update_tag, delete_tag
Kitchen tools list_tools, get_tool, create_tool, update_tool, delete_tool
Foods list_foods, get_food, create_food, update_food, delete_food
Units list_units, get_unit, create_unit, update_unit, delete_unit
Labels list_labels, get_label, create_label, update_label, delete_label

Development

uv sync
uv run pytest tests/ -x -q
uv run ruff check src/ tests/
uv run pyright src/

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured