Befana Recipes

app.befana/befana

Ad-free recipes with amounts in every step: search, scale, plan meals, build shopping lists.

Yes, your AI can use this right now.Answered a live MCP handshake in 955 ms with no sign-in needed and exposes 24 tools.

Connect it

Settings → Connectors → Add custom connector
URL: https://befana.app/mcp

24 tools, verified live

Pulled straight from the server with tools/list on 2026-10-17.
search_recipesread-only

Find Befana recipes by keywords, time, diet tags, and ingredients on hand or to avoid. Signed in, the cook's saved allergies, diet and avoid list already apply; signed out it works too, over public recipes only (mine needs sign-in). Returns short summaries with slugs; call get_recipe for the full recipe. Tags in use include vegetarian, vegan, gluten-free, dairy-free, quick, dinner, breakfast, dess

get_reciperead-only

Full recipe scaled to any number of servings, in US or metric units. Every step already contains the amounts it uses, so you can read steps aloud without referring back to the ingredient list. Works signed out (public recipes, substitute and units_for included, no preferences). A step's tip is a short pointer to pass on with the step. Mention the chef's note (chef_note) only if the cook asks about

get_cook_stepsread-only

One recipe as a hands-free sequence for voice or chat guidance: a gather list first, then each step with its amounts, the ingredients it uses, its tip (if the chef left one) and any timer. Give the cook one step at a time, and offer to set a timer when a step has one. The recipe url shows the same steps as a checklist on the cook's phone. Works signed out (public recipes).

build_shopping_list

Merge any set of recipes (each at its own servings) into one shopping list. The same ingredient is combined across recipes and converted to what a store sells ("10 cloves garlic → buy 1 head"), grouped by aisle. extra_items keep the amount the cook gave ("2 lb bananas" stays 2 lb). One that matches a recipe ingredient is added to that line when the units agree, or shown beside it when they don't (

plan_meals

Pick several recipes for the coming days that fit the filters and overlap in ingredients, so less food goes to waste. The cook's allergies, diet, avoid list, weeknight time limit and household size already apply. Saves the plan to the cook's kitchen and optionally returns the merged shopping list too. Works signed out too: the plan and list come back without being saved (share the recipe urls), wi

order_groceriesread-only

Hand a shopping list to grocery delivery so the cook can order from a store near them. Pass the list_id returned by build_shopping_list or plan_meals, or pass recipes directly. Items marked as in the pantry are left off. Returns one link that opens the whole list when checkout is connected, otherwise a search link per item. When the cook's saved store is a Kroger banner (Kroger, King Soopers, and

draft_recipe

Turn a recipe the cook pasted, typed or linked to into a Befana draft: ingredients matched to Befana's list, steps rewritten in plain words with amounts as tags, and servings, times, timers and tags filled in. Pass text (up to 20,000 characters) or url (a public recipe page; a Pinterest Pin or pin.it link works too: Befana follows the Pin to the recipe it saved), not both. Nothing is published. Sh

create_recipe

Publish a recipe to Befana. When the cook pastes, types or links a recipe, call draft_recipe first, show them the draft and publish it here with create_recipe({ draft_id }) once they confirm: never publish their text straight from fields, even a short one (for a recipe card photo, read it and pass the text to draft_recipe). Pass fields without a draft_id only for a recipe you worked out with the c

fork_recipe

Save the cook's own version of a recipe they don't own ("make it dairy-free", "halve the sugar", "scale it for 8 and keep that"). Pass only what changes; anything omitted is copied from the original. When you pass ingredients or steps, pass the complete new list (fetch the original with get_recipe first and edit it). Ingredients you keep can be resent without key; they keep the original's tags. Fo

update_recipe

Edit a recipe the cook owns (one they published, or their own version from fork_recipe) in place: "add more garlic to my version". Pass only what changes; everything else stays. When you pass ingredients or steps, pass the complete new list (fetch the current one with get_recipe first and edit it); ingredients resent without key keep their tags, so changing one amount is just the list with that am

rate_recipe

Record the cook's star rating (1 to 5) and optional comment. One rating per cook per recipe: calling again updates it ("Updated your rating 3★ → 5★") and recalculates the average; it does not add another review. A comment you leave out is kept. Refuses the cook's own recipe, since a rating has to come from someone else. Only post what the cook actually said; ask them for the rating if they have no

save_recipe

Save (favorite) a recipe for the cook. It shows under Saved in My Kitchen on the website, with a heart on the recipe. Saving twice is harmless.

unsave_recipecan modify

Remove a recipe from the cook's Saved recipes. Only use when the cook asks.

get_my_kitchenread-only

What the cook has on Befana: saved recipes, recipes they published, their variations, shopping lists and meal plans (from the web or any assistant), their ratings, and a count of their pantry. Use it to answer "what did I save?" or to reopen a list. Same as My Kitchen on the website. When newly_assigned is present, tell the cook first, once: those recipes were added to their kitchen by Befana (the

hand_back_recipecan modify

When the Befana team added a recipe to the cook's kitchen (get_my_kitchen newly_assigned) and the cook says it isn't theirs, this hands it back to the team member who added it. Keeping it is the default and needs nothing. Confirm with the cook before calling; it works once per recipe.

get_pantryread-only

The cook's pantry on Befana: what they said they have (fresh items, with how long ago they said it) and their staples (always on hand, left off shopping lists). Same as the Pantry page on the website. Use suggest_from_pantry to turn it into recipes.

update_pantry

Add to or take from the cook's pantry. Pass what they said in `text`, as they said it, however messy: a comma list, a dictated ramble ("um I've got like 2 lbs of chicken thighs and half an onion"), things they're out of ("we're out of eggs") and corrections ("no wait, not the chicken"); Befana reads it and returns exactly what changed, plus `unsure` for anything that didn't read as an ingredient.

suggest_from_pantryread-only

Recipes ranked by how much of each the cook already has, with what's missing named on every one ("You have 7 of 9. Missing: lemon, parmesan."). Staples (salt, oil, sugar) are assumed. Uses the cook's saved pantry (update_pantry); signed out, or for "what if I had…", pass `pantry` as a list of ingredient names. `must_use` pins things that have to go in ("the chicken has to get used tonight"): recip

get_preferencesread-only

The cook's saved Befana preferences: allergies, diet, ingredients to avoid, household size, units, weeknight time, skill, equipment, cuisines, pantry staples, store, privacy choices (do not sell, region), and workflow: how they want you to work (which offers to make: always, ask or never; setup questions; what's new; their usual number of planned meals). They already apply to every Befana tool.

update_preferences

Change the cook's saved Befana preferences. When the cook asks in their own words for a specific change to units, household size (servings), weeknight time, skill, equipment, cuisines, pantry, store or how you work with them (workflow: "switch me to metric", "set us to 4 people", "stop offering shopping lists", "always make the list"), that request is their yes: save it with cook_confirmed and tel

get_cook_profileread-only

A cook's public page on Befana by handle (the author.handle on any recipe, or the cook's own): display name, photo, about me, location, interests and links when they show them, and their public recipes and variations with ratings and urls. Works signed out with a handle; pass no handle for the signed-in cook's own profile. ai_chef is true when the cook is an AI chef persona. Nothing private is eve

update_profile

Change the cook's own public profile at befana.app/cook/<handle>: handle, display name, about me, location, cooking interests, up to three links, and whether the photo and about me show (show_details; off until the cook turns it on). Before calling, tell the cook exactly what will change and get a clear yes; set cook_confirmed only then. Pass only the fields to change; interests and links replace

get_photo_queueread-only

The cook's own published recipes that have no cover photo, a generated placeholder instead of a photo, or a cover that doesn't meet Befana's photo standard (dark, blurry, washed out, too small). Use it to help the cook decide what to reshoot. Returns each recipe's url, the current cover's tier and what's wrong with it.

report_content

Flag a recipe, review, photo or a cook's profile for Befana's moderators: spam, offensive, unsafe as written, copied without permission, not a recipe, or something else. Only report what the cook asked to report, in their words. Moderators review every report; nothing is hidden automatically.

Alternatives in Search & Research

Compare →
Try “Notion”, “Stripe”, “create invoice”, “browser”