Skip to main content
Glama
illinigirl

Meal Planner MCP

by illinigirl

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_recipesA

List recipes in the library (bundled seed + your imported/added recipes).

Args: tag: optional tag filter (e.g. "vegetarian", "quick"). max_time: optional max total time in minutes.

get_recipeB

Full detail for one recipe, including its ingredient list.

suggest_recipesA

Candidate recipes matching constraints — the grounding step before you decide a week. Returns recipes from YOUR library (the thing base Claude can't see), filtered by time/tags/ingredients.

plan_weekA

Build and save a meal plan, optimizing ingredient overlap, reusing serving-surplus leftovers, and avoiding recently-cooked recipes.

main_course_only (default true) keeps sauces/sides/desserts out of dinner slots. diversity_weight (default 0 = off) trades waste for variety: the overlap objective rewards similar recipes, so it clusters same-protein nights; a weight > 0 penalizes repeating a protein within the week. Saves as the current plan; tweak with swap_meal / remove_meal or re-call with new constraints. generate_shopping_list / export_plan use it.

get_current_planC

The currently saved plan, if any.

generate_shopping_listA

Consolidated shopping list for the current plan — ingredients merged and scaled across cook days (leftover nights add nothing). Deterministic math, not an LLM estimate.

export_planA

Write the current plan + shopping list AND return the rendered content inline.

format: "markdown" (default — renders as a table + checklist in Claude and note apps) or "text" (plain text for pasting into Notes / Reminders / a text message). With no path, writes to a known location under the data dir (MEAL_PLANNER_DATA_DIR/meal-plans/.{md,txt}) — not the process cwd, which is unpredictable when Claude Desktop launches the server. The content field is always returned, so a remote caller who can't read the server's disk still gets the result to display or save client-side.

record_cookedA

Log that you actually cooked a recipe (defaults to today). This is the cross-session memory that powers avoid-repeats — what plain Claude can't do.

add_recipeB

Save one recipe to your library — the everyday way to seed it.

No file or special format needed: paste or describe a recipe and let Claude fill these fields in. ingredients is a list of free-text lines ("1 cup flour", "2 cloves garlic", "salt to taste") — each is parsed into a structured amount so it can feed the shopping-list math.

Set course ("Dinner", "Sauce", "Side", "Dessert", …) so the planner knows whether this is a dinner anchor — you know a sauce from a main; pass it along. Omit it and it's treated as a main.

add_recipesA

Bulk-add many recipes in one call — the fast way to build a starter library when you DON'T have a Plan to Eat export to import.

The intended flow: generate a batch tailored to the user's tastes (their cuisines, constraints, what they actually cook — don't just produce generic recipes they won't make), let them review it, then save the batch here. The planner only earns its keep over recipes the user genuinely likes.

Each item: {"title": str, "ingredients": [free-text lines], plus optional "servings", "tags", "total_time_min", "cuisine", "course", "directions"}. Ingredient lines are parsed like add_recipe so they feed the shopping-list math. Items missing a title or ingredients are skipped (and reported); ids are de-duplicated against the library and within the batch. One state write for the whole batch. Returns the saved recipes + counts.

set_courseA

Recategorize a recipe's course — curation for imports that came in uncategorized (e.g. mark a sauce as "Sauce" so it stops landing in dinner slots). Only your own/imported recipes are editable; seed recipes are read-only.

swap_mealA

Replace one day of the current plan with a specific recipe — "put tacos on Tuesday instead." A literal per-day override (clears any leftover marking on that day). For "make Friday quicker", call suggest_recipes first, then swap.

remove_mealA

Clear one day of the current plan (eating out, skipping). The date stays as an unplanned slot.

import_recipesA

Optional bulk shortcut: import many recipes from a Plan to Eat CSV export. Most users seed with add_recipe instead.

csv_path reads a file on the SERVER's filesystem (local use). csv_content takes the CSV text directly — use this from a remote client that can't reach the server's disk (paste the export's contents).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/illinigirl/meal-planner-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server