Create Recipe
create_recipeCreate a new Monsieur Cuisine Smart recipe draft under your account by providing a title and optional ingredients, steps, nutrition, and photo; publishing remains a separate step.
Instructions
Create a new recipe as a DRAFT under the logged-in user's account.
The recipe is created for the Monsieur Cuisine Smart (MC3.0), the only
supported device. Only title is required. The recipe is saved as a draft
(status "draft") and is NOT published. Pass image_path to attach a dish
photo (see below).
Publishing is a separate step: once the draft is complete, call
publish_recipe (public review, or private=True for a private publish). A
published recipe cannot be reverted to a draft; to take it down, switch it to
private or delete it with delete_recipe.
Requires a saved login session: run uv run monsieur-cuisine-mcp-login
once beforehand. If no session is saved, this tool raises an error telling
the user to do that.
The valid step program names and their params are listed in full under
steps below - you do NOT need another call to enumerate them. Only
complexity_id and category_ids are language-specific ids you cannot
guess: call list_recipe_creation_options(language) first (same language) to
get those, or omit them (a draft is valid without them).
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"title": "<title>"
},
"name": "create_recipe"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| fat | No | Fat per serving (g). Rounded to a whole number. | |
| steps | No | Ordered list of step dicts. Each step is {"text": <instruction>, ...optional program fields}; a plain string is shorthand for a text-only step. Add an optional "title" (short step heading): every step needs a non-empty title to be publishable, so when omitted a localized ordinal ("Krok 1"/"Step 1") is filled in automatically. A step with no "program" is a plain text instruction. To run an automatic device program, add "program" plus the params it uses. All times are in SECONDS. Full list of programs (Monsieur Cuisine smart) and their params: - "customized": temperature_celsius, speed, time_seconds, reverse (bool, true = counter-clockwise) - "kneading", "kneading_solid_dough", "kneading_soft_dough", "kneading_liquid_dough": time_seconds - "steaming", "rice_cooking", "food_processor", "puree", "smoothie", "turbo": time_seconds - "roasting", "sous_vide", "slow_cooking", "fermentation": temperature_celsius, time_seconds - "scale" (weighing): weight_grams - "cooking_eggs": egg_size ("small"|"medium"|"large"), egg_texture ("soft"|"waxy_soft"|"hard") - "precleaning": cleaning_duration ("short"|"long") Examples: {"text": "Rozdrobnij", "program": "customized", "speed": 7, "temperature_celsius": 90, "time_seconds": 120} {"text": "Zwaz skladniki", "program": "scale", "weight_grams": 250} {"text": "Wymieszaj recznie"} # plain text step | |
| title | Yes | Dish name (required). | |
| protein | No | Protein per serving (g). Rounded to a whole number. | |
| calories | No | Energy per serving (kcal). Rounded to a whole number. | |
| language | No | Recipe language/locale, e.g. "pl-PL", "en-US". | en-US |
| image_path | No | Optional path to a local dish photo (JPEG, PNG or WebP) to attach as the recipe's cover image. It is uploaded to the media service and set as both the thumbnail and the details image. This is the photo a draft needs before it can be published in the web app. | |
| description | No | Short description of the dish. | |
| ingredients | No | List of ingredient dicts for the default general group, each with keys "name", "amount", "unit". Ingredients are free text - the "name" is used verbatim (like typing a custom ingredient in the app without picking a suggestion), no database match required. Add an optional "system_ingredient_id" (a positive id from search_ingredients) only to link a specific database ingredient. The default group is auto-named "General Ingredients" (a group needs a name to publish). | |
| carbohydrate | No | Carbohydrate per serving (g). Rounded to a whole number. | |
| category_ids | No | Category ids from list_recipe_creation_options. | |
| complexity_id | No | Difficulty level id from list_recipe_creation_options. | |
| servings_unit | No | Serving unit, from list_recipe_creation_options' serving_units (e.g. "porcje"). | |
| servings_amount | No | Number of servings the recipe yields. | |
| ingredient_groups | No | Optional named ingredient groups, each {"name": <group name>, "ingredients": [ingredient dicts]} (same ingredient shape as above). Use for recipes split into sections like "Dough" / "Sauce"; give each a non-empty name so the recipe can be published. | |
| prep_time_minutes | No | Preparation time in minutes. | |
| ready_time_minutes | No | Total time until ready, in minutes. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||