ask.recipes is a remote MCP server. Connect it once; after that you ask your AI for food the way you would ask a friend who cooks. It finds recipes, saves your favourites and builds your own cookbook.
Server URL: https://mcp.ask.recipes/mcp
Connect
- ChatGPT: open ask.recipes in ChatGPT → add it, sign in when asked. Manual route: Plugins → Add → Add custom MCP server → the URL, OAuth as the authentication. Step by step with real asks: Recipe search in ChatGPT.
- Claude (web, desktop, mobile): open ask.recipes in the Claude directory → Connect, sign in when asked. Manual route: Settings → Customize → Connectors → Add → Add custom connector → paste the URL → Continue. Step by step with real asks: Recipe search in Claude.
- Claude Code: claude mcp add --transport http ask-recipes https://mcp.ask.recipes/mcp, then /mcp to sign in.
- Any other MCP client: streamable HTTP transport, OAuth 2.1 with PKCE and dynamic client registration. Discovery at /.well-known/oauth-protected-resource.
Sign in
The first call opens a sign-in page. Enter your email, type the 6-digit code we send, accept the terms, done. No password. The newsletter is opt-in. The account exists so your saved recipes stay yours and so the service can stop abuse. It is free.
What to ask
- "What's for dinner? Chicken thighs, a lemon and rice, under 40 minutes."
- "I have oats, milk, eggs and berries. Breakfast?"
- "A high-protein lunch under 500 calories."
- "Something vegetarian people actually rate well, 30 minutes."
- "The second one in full." then "Save it."
- "What did I save last week?" or "Save it under Christmas." then "What's in my Christmas cookbook?"
- "We made the curry tonight, kids loved it." then later "What did we cook last week?"
- "Bought rice, eggs and two chickens." then later "What can I make with what I have?"
- "Keep this family recipe: ..." or "Add the recipe on this page: <url>"
- "Here's a photo of my mum's recipe card, keep it."
- "Give me a link to send my sister the lasagna I uploaded."
Tools
| Tool | Does |
|---|---|
| search_recipes | Search by dish or ingredient with filters for total time, rating, review count, diet (vegetarian, vegan, gluten-free, dairy-free, nut-free), calories, protein, fat, carbs, sugar, fiber, main protein, and how many people are eating. |
| find_by_ingredients | Rank recipes by how many of the ingredients you have they use, and how few extra they need. Worked examples: what can I cook with what I have. |
| get_profile / update_profile | How your household eats, kept by talking: "my daughter can't have berries", "we love meat", "weeknights are 30 minutes max". Applied to every search from then on. People are saved by name and role with what applies to each alone, so "the kids aren't home tonight" lifts their exclusions for one search. Only what you say changes, nothing saved is lost. |
| get_recipe | One recipe in full: ingredients, steps, times, yield, nutrition, source link. Scales ingredient quantities to a servings number. Shows amounts in your units: metric turns cups and ounces into grams and millilitres and oven temperatures into Celsius, spoons stay spoons; US does the reverse. |
| save_recipe / unsave_recipe / list_saved | Your collection, kept in cookbooks: "save it under BBQ" puts it in a BBQ cookbook, created on the spot, with a note if you add one. A recipe can be in several cookbooks, and each shows when you last cooked it and how many times. |
| list_cookbooks / create_cookbook / update_cookbook / delete_cookbook | Your cookbooks: list, create, rename, delete. Deleting one never loses a recipe; whatever was only there moves to the default cookbook. |
| mark_cooked / cooked_history | A cooking diary kept by talking: "we made that tonight, kids loved it". A verdict in the same breath goes in as your rating. Ask what you cooked last week or when you last made something; your agent reads it before planning a week so nothing repeats. |
| rate_recipe | Your stars for a recipe, 1 to 5, with a note on why if you add one. Rating again replaces the old one. |
| upload_recipe | A private recipe of your own: typed, dictated, from a photo, or extracted from a web page. |
| share_recipe | An unlisted link to a recipe, readable without an account. |
| get_pantry / add_to_pantry / remove_from_pantry | What is in your kitchen, kept by talking: "bought milk and onions", "used the last eggs". find_by_ingredients counts it as on hand. |
| import_recipes | A one-time page where you drop an export from Paprika, Mela or Crouton, or a zip of recipe pages with schema.org markup. Every recipe lands in a private cookbook named after the file, photo included; Paprika stars become your rating. Also at mcp.ask.recipes/import with email sign-in. Worked example: import your recipes. |
| get_household / invite_to_household / update_household / leave_household / remove_from_household | The people who cook from your kitchen, each with their own account. "Add my partner" gives you a one-time link to forward; they enter their name and email, confirm a code and are in. One pantry, one cooking diary with who cooked what, every cookbook unless you mark it private, and everyone's allergies and dislikes respected when anyone asks what to cook for all. |
| connect_cookidoo / disconnect_cookidoo | Link your Cookidoo account (Thermomix / Bimby) through a one-time form. Works in Claude and other MCP clients; not available in ChatGPT. |
| send_to_thermomix | Any recipe into your Cookidoo as a private created recipe, with time, temperature and speed on every step. |
| list_cookidoo_recipes / search_cookidoo / import_cookidoo_recipe | Your own Cookidoo recipes, Cookidoo's catalogue through your account, and a copy of one into your private collection. Imported recipes are never shareable. |
Good to know
- Search ranks by how many people rated a recipe and applies no rating cut on its own. Ask for well-rated only and your agent passes a minimum. That cuts recipes rated below the bar; unrated recipes and your own uploads stay in.
- A recipe's rating is one number: the source site's ratings and ask.recipes users' stars averaged together, weighted by count. Your own stars come back separately as my_rating.
- Nutrition is per serving as the source published it. Nutrition filters only return recipes whose yield is stated in servings, so a calorie or protein limit is always per serving. Recipes without nutrition drop out too.
- Your profile applies to every search: allergens and dislikes are excluded, your diets stay on unless you ask to set them aside for one meal, and your time budget is the default when no time limit is passed. Ask for no time limit to lift it for one search. On your first searches your agent offers to set it up; say yes once and it asks the questions.
- Allergens and dislikes are left out of every search for the people eating. Agents make mistakes and recipes are as their sources published them: for a dangerous allergy, read the ingredient list and the labels yourself. Worked examples: food allergies and restrictions.
- "Not chicken again": your agent can leave ingredients out of one search, matched as whole words, so "egg" never drops eggplant and "nut" never drops nutmeg or coconut.
- "Ten people coming over": from six up, dishes cooked in one vessel (stews, braises, soups, casseroles, tray bakes, roasts) rank ahead of dishes cooked per portion (steaks, burgers, pancakes), and your agent can leave the per-portion ones out. Judged from the recipe name and steps, so it is an aid, not a guarantee.
- "One chicken, two fish, three vegetarian": every recipe carries its main protein (chicken, turkey, duck, beef, pork, lamb, goat, venison, rabbit, fish, seafood, egg, legume and more, each animal on its own), judged from the ingredient list and the name. Stock and sauces never count, so a soup made with chicken stock is not a chicken dish.
- Share links carry schema.org Recipe markup with the nutrition, so a shared recipe imports by URL into MyFitnessPal, Cronometer, Paprika and most recipe apps.
- Diet flags are judged from the ingredient list, conservatively: oats count as gluten, peanuts count as nuts, coconut does not. A recipe on the edge is left out of a diet filter rather than let in.
- Every recipe carries its source link. Share pages credit the source and name its licence.
- Recipes come from openly licensed data and sites' own schema.org Recipe markup; the licence is named on each recipe.
- No browsing UI exists and none is planned. The agent is the interface.
Support
Email hello@ask.recipes. Recipe sources with a removal request: bot@ask.recipes. Privacy · Terms.