accueil / serveurs / Recherche & Web / com.eatmundo/dishes
com.eatmundo/dishes
serveur MCP (Model Context Protocol) · eatmundo 0.1.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que com.eatmundo/dishes est sûr ?
Au dernier audit MCP Hub, le serveur MCP « com.eatmundo/dishes » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 6 outils
- compare_dishes≈ 848 tokens
Compare two dishes ingredient by ingredient: shared items, what is unique to each, a match score, and - for the pairs that have one (nearly 900) - an editorial comparison paragraph in the requested language. Works for any two dishes in the corpus, whether or not they are an edge in the equivalence graph.
Paramètres, retour & exemple (3)
Paramètresa· string · requis
First dish: slug or name.b· string · requis
Second dish: slug or name.lang· string · optionnel · en | tr | de | fr | es | it | el
Language for titles, ingredient names and URLs.
Exemple d'appel{"name": "compare_dishes", "arguments": {"a": "texte", "b": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"a": {}, "b": {}, "notes": [], "score": 1, "only_a": [], "only_b": [], "paragraph": "texte", "same_form": true, "attribution": "texte", "compare_url": "texte", "score_basis": "texte", "stored_score": "texte"}} - find_similar_dishes≈ 952 tokens
Find dishes from other cuisines that are equivalent to a given dish, from eatmundo's scored equivalence graph (over 10,000 edges across nearly 2,000 recipes from 26 countries). Every edge is evidence-based - shared canonical ingredients - not a language-model guess, and every edge crosses country lines. Use it for "what is the Greek counterpart of lahmacun, and why".
Paramètres, retour & exemple (5)
Paramètresdish· string · requis
Dish to start from: an eatmundo slug (e.g. "lahmacun") or a plain name ("rice pudding"). Names are resolved through site search; check resolved_by in the result.lang· string · optionnel · en | tr | de | fr | es | it | el
Language for titles, ingredient names and URLs.limit· integer · optionnel
How many matches to return, best score first. The default of 5 is enough to see whether a cuisine has one clear counterpart or several competing ones.country· string · optionnel
Restrict matches to one cuisine, ISO 3166-1 alpha-2 (e.g. "GR"). 26 countries are covered.min_score· integer · optionnel
Minimum match score. Defaults to 0 on purpose: 320 dishes only have below-threshold nearest matches, and a default of 50 would silently return nothing for them.
Exemple d'appel{"name": "find_similar_dishes", "arguments": {"dish": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"notes": [], "source": {}, "matches": [], "attribution": "texte", "resolved_by": "slug", "score_basis": "texte", "total_matches": 1}} - get_recipe≈ 1424 tokens
Full recipe for one dish: steps, FAQ, image credit, and ingredients with PARSED quantities (amount, unit, and a normalised base in grams or millilitres where the quantity is measurable). Count-based lines like "3 onions" carry a gram estimate only where a per-item weight is known. Pass servings to rescale the ingredient quantities; the steps keep the original amounts. adaptations lists the diets (vegan, vegetarian, halal, dairy-free, pescatarian) the dish can be fully converted to, with each swap marked substitute (same dish) or adaptation (a different dish).
Paramètres, retour & exemple (3)
Paramètreslang· string · optionnel · en | tr | de | fr | es | it | el
Language for titles, ingredient names and URLs.slug· string · requis
Recipe slug in any of the 7 languages, or a dish name (resolved by search).servings· integer · optionnel
Rescale ingredient quantities to this many servings. The dish's own count is returned as original_servings. Steps are NOT rescaled: they keep the amounts of the original recipe.
Exemple d'appel{"name": "get_recipe", "arguments": {"slug": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"faq": [], "url": "texte", "form": "texte", "slug": "texte", "image": {}, "notes": [], "steps": [], "title": "texte", "country": "texte", "calories": 1, "category": "texte", "servings": 1}} - search_dishes≈ 990 tokens
Search nearly 2,000 dishes from 26 cuisines by text, country, category, preparation technique, or canonical ingredient. Every ingredient in the corpus is linked to a canonical entity, so an ingredient filter also catches translations and spelling variants. Use it to get a slug for the other tools.
Paramètres, retour & exemple (8)
Paramètresform· string · optionnel
Preparation technique. One of: soup, stew, stir-fry, grill-roast, fritter, dumpling, stuffed-vegetable, flatbread-pastry, noodle, rice, cold-salad, dip-spread, pickle-ferment, egg, sandwich-wrap, porridge-mash, casserole-bake, cured-preserved, composed-plate, meat-salad, pancake-batter, marinated-cooked, syrup-pastry, fried-dough-sweet, cake, cookie, custard-pudding, sweet-pie-tart, fruit-dessert, frozen, confection, sweet-porridge, glutinous-dumpling, sweet-bread, layered-assembly, filled-pastry, sweet-pancake, starch-gel, hot-infusion, cold-cooler, juice, smoothie-shake, hot-milk-drink, fermented-drink, alcoholic-mixed, alcoholic-brew.lang· string · optionnel · en | tr | de | fr | es | it | el
Language for titles, ingredient names and URLs.limit· integer · optionnel
Results per page (max 25).query· string · optionnel
Free text; needs at least 2 characters to take effect.offset· integer · optionnel
Rows to skip for paging. Pass back the `next_offset` from the previous response; it is null when there is no further page.country· string · optionnel
ISO 3166-1 alpha-2 cuisine filter.category· string · optionnel · FOOD | DESSERT | DRINK
Dish type. DRINK covers both alcoholic and non-alcoholic; DESSERT is separate from FOOD, so a query for a sweet dish returns nothing under FOOD.ingredients· array · optionnel
Canonical ingredient names (e.g. ["tomato","garlic"]). A dish matches if it has ANY of them, but results are ranked by how many it has, then by how large a share of the dish's ingredient list they make up (matched / total ingredient lines - among equal matches, dishes with shorter lists come first). Unrecognised names are reported back, not ignored.
Exemple d'appel{"name": "search_dishes", "arguments": {"form": "texte", "lang": "en", "limit": 1, "query": "texte", "offset": 1, "country": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"items": [], "notes": [], "total": 1, "offset": 1, "attribution": "texte", "next_offset": "texte", "unresolved_ingredients": []}} - substitute_ingredient≈ 778 tokens
Find what can replace a single ingredient, optionally under a dietary constraint (vegan, vegetarian, halal, dairy-free, pescatarian). Each result is marked "substitute" (same dish) or "adaptation" (result is a meaningfully different dish) - most swaps forced by a diet exclusion are adaptations, and the tool says so rather than overselling a swap as if the dish stayed the same. Precomputed and model-verified, not generated on the fly.
Paramètres, retour & exemple (4)
Paramètreslang· string · optionnel · en | tr | de | fr | es | it | el
Language for titles, ingredient names and URLs.limit· integer · optionnel
Max substitutes to return, best first.context· string · optionnel · vegan | vegetarian | halal | dairy-free | pescatarian
Dietary constraint the substitute must satisfy. Omit for the single best general substitute with no diet filter. Other constraints (gluten-free, allergen-free) are not supported - the corpus has no gluten/allergen data, so the tool would have to guess, and it does not.ingredient· string · requis
Ingredient name in any of the 7 site languages, or its English canonical form (e.g. "pork belly", "domuz göbeği", "Schweinebauch").
Exemple d'appel{"name": "substitute_ingredient", "arguments": {"ingredient": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"notes": [], "context": "texte", "declined": "texte", "ingredient": "texte", "attribution": "texte", "resolved_by": "exact", "substitutes": [], "ingredient_label": "texte"}} - weekly_menu≈ 1466 tokens
Build a menu of up to 7 dinners, either one cuisine per day ("world") or all from one country. Honours diet exclusions (pork, beef, meat, fish, dairy, egg, alcohol), vegetarian/vegan/pescatarian requirements, a prep-time ceiling and a budget mode that reuses ingredients. When a constraint cannot be met it is relaxed and the relaxation is reported, never hidden.
Paramètres, retour & exemple (11)
Paramètresdays· integer · optionnel
How many days to plan, 1-7.lang· string · optionnel · en | tr | de | fr | es | it | el
Language for titles, ingredient names and URLs.mode· string · optionnel · world | single
"world" = a different cuisine each day; "single" = one country.seed· integer · optionnel
Same seed + same options = same menu.budget· boolean · optionnel
Favour weeks that reuse ingredients across days.country· string · optionnel
Required when mode is "single".exclude· array · optionnel
Ingredient attributes to avoid entirely: pork, beef, meat, fish, dairy, egg, alcohol.require· string · optionnel · vegetarian | vegan | pescatarian
Diet every dish must satisfy. This is a WHITELIST and differs from `exclude`, which only removes single ingredient attributes: "vegan" is not the same as excluding meat.time_limit· integer · optionnel
Max prep time in minutes; closed set (30/45/60). The generator relaxes it automatically if too few cuisines qualify, and reports that in relaxations.include_extras· boolean · optionnel
Add 2 desserts and 2 drinks (never alcoholic).exclude_countries· array · optionnel
Cuisines to keep out of the plan, ISO 3166-1 alpha-2. Only meaningful when mode is "world"; excluding too many leaves the generator with too few cuisines to fill the week.
Exemple d'appel{"name": "weekly_menu", "arguments": {"days": 1, "lang": "en", "mode": "world", "seed": 1, "budget": true, "country": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"days": [], "notes": [], "stats": {}, "drinks": [], "desserts": [], "attribution": "texte", "relaxations": [], "shopping_list": [], "pantry_assumed": []}}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».