protogrid

Search / app.befana/befana

Befana Recipes

R0· no sign-in

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

v0.2.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality81new
Trust83of 100
Uptime, 30 days100%
Latency p501133 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "befana": {
      "type": "http",
      "url": "https://befana.app/mcp"
    }
  }
}
claude mcp add --transport http befana https://befana.app/mcp
[mcp_servers.befana]
url = "https://befana.app/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "befana": {
      "type": "remote",
      "url": "https://befana.app/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "befana": {
      "type": "http",
      "url": "https://befana.app/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=befana&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYmVmYW5hLmFwcC9tY3AifQ%3D%3D"
}
{
  "servers": {
    "befana": {
      "type": "http",
      "url": "https://befana.app/mcp"
    }
  }
}
{
  "mcpServers": {
    "befana": {
      "httpUrl": "https://befana.app/mcp"
    }
  }
}
extensions:
  "befana":
    enabled: true
    name: "befana"
    type: streamable_http
    uri: "https://befana.app/mcp"
    timeout: 300

Quality 81 / 100new

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene86 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations20 of 20 tools declare readOnlyHint or destructiveHint
  • warn
    tools.directory_hints14 of 20 tools declare all four hints; missing: get_recipe (destructiveHint, idempotentHint); plan_meals (idempotentHint); get_my_kitchen (destructiveHint, idempotentHint); …
  • warn
    tools.token_costabout 11,014 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stabilityn/a · weight 15
  • n/a
    stability.changes, stability.rug_pulltool history recorded for 2 of the 7 days needed
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

20 tools, about 11,014 tokens to load them all · tool set 1a678bf34b1e · tools last changed 2026-10-19 · checked 2026-10-19 10:52 UTC

Tool changes

  • report_contentchangedoutput schema
  • cook_profilechangedoutput schema
  • preferenceschangedinput schema, output schema
  • suggest_from_pantrychangedoutput schema
  • pantrychangedoutput schema
  • hand_back_recipechangedoutput schema
  • get_my_kitchenchangedoutput schema
  • save_recipechangedoutput schema
  • rate_recipechangedoutput schema
  • update_recipechangedoutput schema

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 83 / 100

no-repository
provenance55
liveness100
freshness100
hygiene80

+dns-namespace +website +reachable +uptime-100% +updated-5d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://befana.app/mcp streamable-httpnoneyes100%1133 ms2025-11-252026-10-19

Tools (20)

build_shopping_listMerge recipes (each at its own servings) and anything else the cook needs into one shopping list grouped by aisle, converted to what a store sells ("10 cloves garlic → buy 1 head"). Use when the cook says "make me a list", "what do I need to buy for these?", or "add paper towels and 2 lb bananas" (extra_items keep the cook's amounts). Staples and the cook's pantry go to a check-the-pantry group, and items that hit their allergies are flagged. Signed in, the list is saved and returns a shareable url and an id for order_groceries; signed out it comes back unsaved (keep: true asks them to sign in).
cook_profileRead a cook's public Befana page, or change the signed-in cook's own. Use when the cook asks "who wrote this?", "show me more from this cook", "what's on my profile?", or wants their name, about me, links or handle changed. Pass handle (any recipe's author.handle) to read that page; nothing to read their own (signed in). To change their own, pass update with only the fields to change, after telling them exactly what will change and getting a yes (cook_confirmed). Never write about-me text for them. Returns name, about, links and public recipes with urls; ai_chef true means an AI chef persona. Nothing private is ever on a profile.
create_recipePublish a recipe to Befana. Use with draft_id from draft_recipe once the cook has seen and confirmed the draft, passing only the fields they changed; never publish pasted text straight from fields. Pass fields without a draft only for a recipe you worked out with the cook in this conversation, after showing it to them. Steps use ingredient tags, never typed amounts: "Whisk {flour} with {salt}". Recipes are public and appear under My recipes; an exact copy of one the cook already has is refused (use update_recipe). tested marks it cooked and timed only when the cook says they made it; ask, never assume. Returns the url and any warnings.
draft_recipeTurn a recipe the cook pasted, typed or linked into a draft to check: ingredients matched, steps in plain words with the amounts as tags, servings, times and timers filled in. Nothing is published. Use when the cook says "save my grandma's meatballs", "add this one" with a link, or shows you a recipe card (read it yourself and pass the text). Show the draft, point out the guessed fields, then publish with create_recipe({ draft_id }) once they confirm. existing means it's already on Befana: send them there (save_recipe, fork_recipe), and add_anyway only if they say it's a different recipe. blocked means the site only opens for its readers: pass the page's text with source_url if you can see it.
fork_recipeSave the cook's own version of someone else's recipe, linked to the original, which never changes. Use when the cook says "make it dairy-free and keep that", "halve the sugar", "save it for 8". Pass only what changes; ingredients or steps, if passed, are the complete new list (get_recipe first and edit it). Before calling, show the cook the changed ingredients and steps and get a yes; never save silently. It's named after the change unless you pass title. Public by default; visibility "private" keeps it just for the cook. The same change again returns their existing version (already_existed). On the cook's own recipe use update_recipe; this refuses.
generate_placeholder_coverDraw a labeled illustration of the dish for a recipe the cook owns that has no photo, so it looks finished until they add a real one. Use when the cook says "it needs a picture" or accepts the offer after create_recipe. Ask first; it takes up to a minute. It's drawn from the recipe's own text, labeled "Illustration, not a photo of this dish" everywhere, never counted as a photo, and never replaces a cook's photo (that's a refusal, not an error). When image generation is off, say so and point to the photo upload on the website.
get_cook_stepsread-onlyA recipe as hands-free steps for cooking along: a gather list, then one step at a time with its amounts, the ingredients it uses, its tip and any timer. Use when the cook says "walk me through it", "I'm cooking it now", "what's next?". Give one step per reply and offer the step's timer. The recipe url shows the same steps as a checklist on their phone. Works signed out.
get_my_kitchenread-onlyWhat the cook keeps on Befana: saved recipes, recipes they published, their own versions, shopping lists and meal plans, their ratings, a pantry count. Use when the cook asks "what did I save?", "pull up last week's list", "show my recipes", or (section: photos) "which of my recipes need a better photo?". Same as My Kitchen on the website. If newly_assigned is present, say its line first, once (Befana added those recipes; hand_back_recipe returns one that isn't theirs). If fixes_asked is present, pass the fixes on once and offer to make them with update_recipe after showing the changes.
get_reciperead-onlyOne recipe in full, scaled to any servings, US or metric, with every amount written into the step that uses it, so steps can be read aloud as they are. Use when the cook picks a recipe, asks "how much butter is that in tablespoons?" (pass units_for; the list and the steps follow, don't convert yourself), or wants a change ("make it dairy-free": substitute returns swaps that respect their allergies and diet; show the changed ingredients and steps, then save on their yes with fork_recipe, or update_recipe on their own). Returns the recipe, its url, step tips to pass on, and your_versions when the cook already has their own version (offer it). Mention chef_note only if asked. Works signed out.
hand_back_recipedestructiveHand back a recipe the Befana team added to the cook's kitchen (get_my_kitchen newly_assigned) when the cook says "that one isn't mine". Keeping it is the default and needs nothing. Confirm with the cook first; it works once per recipe.
order_groceriesSend a shopping list to a grocer near the cook: straight into their cart where the store allows it (King Soopers and the other Kroger stores, once connected), else one list link at the grocer, else a search link per item. Use when the cook says "order these", "get it delivered", "send it to my store". With no saved store it first asks for their ZIP, then names every grocer near it (choose_store): ask which one, then call again with store and zip, which saves it. Share share_url, the one link to their order. The cook picks products and checks out; Befana never picks a brand. If commission_disclosure is present, keep it in parentheses right after the link, once.
pantryRead or change the cook's pantry: food on hand and staples, which Befana leaves off shopping lists and uses for what-can-I-make. Use when the cook says what they have or ran out of ("I've got chicken thighs and half an onion", "we're out of eggs"), corrects it, or asks what's in it. Pass their words verbatim as text; or add/remove names; a fridge photo goes in photo (an upload name). No arguments reads it. Saying what they have is the cook's yes: save it and read the change back in one line. Never add what the cook didn't say. Returns the change (unsure lists what didn't read as food) or the whole pantry.
plan_mealsPick meals for coming days that share ingredients and return the finished week in one call: the plan, the merged shopping list (list), what to cook first (prep_order), swaps for flagged ingredients (substitutions) and one true line on what the plan did (say). Use when the cook says "plan my week", "what should we eat this week?", "four dinners under $80" (max_budget), or has people over (occasion: guests or party; guest_notes for who needs what). Their preferences and pantry already apply. Show the plan with say, ask the one question in next_steps, then the list; nothing is ordered. Asked for delivery too? Call order_groceries with list.id right after. Signed out it comes back unsaved (keep: true asks to sign in).
preferencesRead or change the cook's Befana preferences: allergies, diet, avoid list, household size, units, weeknight time, skill, equipment, cuisines, store, privacy, and how they want you to work, all applied to every tool. No arguments reads them. For a change the cook asks for in their own words ("switch me to metric", "set us to 4 people"), save with cook_confirmed. Allergies, diets, the avoid list, privacy, a change you suggest or a passing mention ("usually it's 4 of us") need a yes first: pass the change without cook_confirmed (nothing is saved), ask the cook confirm.say, then call again with cook_confirmed. Never infer an allergy or diet. Lists replace the saved list.
rate_recipePost the cook's star rating (1 to 5) and comment, and mark that they made it. Use when the cook says "that was great, five stars" or "I made the chili, a bit too salty". One rating per cook per recipe: calling again updates it, and a comment left out is kept. Refuses the cook's own recipe. Post only what the cook said; ask for the stars if they didn't give any. With made_it it finishes their cook and may offer to take what the recipe used off the pantry.
report_contentFlag 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. Use only when the cook asks ("report this review", "this recipe is dangerous"), in their words. Moderators review every report; nothing is hidden automatically.
save_recipeKeep a recipe in the cook's Saved list (My Kitchen on the website), or take it off with saved: false. Use when the cook says "save this", "keep that one", "add it to my favorites", or "take the chili off my saved". Saving twice is harmless. Returns the recipe link and where Saved lives.
search_recipesread-onlyFind recipes on Befana by keywords, ingredients, time or diet. Use when the cook asks "what's for dinner?", "something vegetarian under 30 minutes", "a good banana bread", "something with the spinach I have", or "show me my chili" (mine: true for their own, private ones included). The cook's allergies, diet and avoid list already apply, and their own recipes come first. Returns short summaries with slugs and urls; get_recipe has the full recipe. When the cook names a recipe their preferences hide, it comes back in hidden with why: don't stop to ask; go on with that slug, tell them why it was hidden before anything else, and never present it as safe. Works signed out (public recipes).
suggest_from_pantryread-onlyRecipes ranked by how much the cook already has, each with what's missing ("You have 7 of 9. Missing: lemon, parmesan."). Use when the cook asks "what can I make?", "what can I do with chicken and rice?", or "the chicken has to get used tonight" (must_use). Uses their saved pantry; signed out, or for "what if I had…", pass pantry. Staples are assumed; allergies, diet and avoid list apply; keywords, tags and max_minutes narrow it. Read the top few with the have/missing line and the url; a list of just the missing items is the natural next step.
update_recipeChange the cook's own recipe or version. Use when the cook says "add more garlic to my version", "make mine private", "use my photo for the cover", "undo that last change", or "I made it tonight, took about 50 minutes" (tested; ask for the time if they didn't say, never assume). Pass only what changes; ingredients or steps, if passed, are the complete new list. photo: only one the cook took, never generated, stock or found; even when asked, name the recipe and get a yes first. Before calling, show the cook the changed ingredients and steps and get a yes; never save silently. Every edit keeps a revision (restore_revision: n undoes edit n). Not the cook's? Use fork_recipe.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "app.befana/befana",
  "icons": [
    {
      "src": "https://befana.app/icon.svg",
      "sizes": [
        "any"
      ],
      "mimeType": "image/svg+xml"
    },
    {
      "src": "https://befana.app/apple-icon.png",
      "sizes": [
        "180x180"
      ],
      "mimeType": "image/png"
    }
  ],
  "title": "Befana Recipes",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://befana.app/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "0.2.0",
  "websiteUrl": "https://befana.app/agents",
  "description": "Ad-free recipes with amounts in every step: search, scale, plan meals, build shopping lists."
}