Serveur MCP

Pandough

app.pandough/mcp
Autres Public et accessible MCP 2025-11-25

Ce que fait ce MCP

Searches flour and oven databases and generates personalized dough recipes, ingredient quantities, fermentation schedules, and troubleshooting guidance.

get_flour_details
Get detailed information about a specific flour by its slug. Returns full profile including protein, W strength, hydration curve, maturation profiles, and description.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': "Flour slug (e.g. 'caputo-pizzeria', 'manitoba-oro')"}}}
list_active_bakes
List the signed-in baker's scheduled and active bakes plus live temperature-sensor readings when a device is reporting. The first call prompts the chat app to authorize a Pandough account (OAuth scope bakes:read). Needs Pro (or cancelled-Pro). Returns ids, flour, hydration, schedule, a calculator session link, and probe temps (air around the dough, not dough core).
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
list_recipes
List the dough recipe styles plan_bake supports. Call this when a user names a style (Neapolitan, classica, focaccia, bread, baguette) so you pass the correct recipeSlug instead of guessing — and so you never confuse a style word like 'classica' with a flour whose name contains it.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
plan_bake
Create a bake plan with ingredient calculations. Returns exact ingredient amounts in grams, an auto-sized yeast amount, a fermentation schedule, dough warnings, and a calculator URL the user can open in Pandough with all parameters prefilled. Before calling this, gather the inputs that actually determine a good plan (skip any the user already volunteered): (1) Strongly ask which oven model they use — call search_ovens and pass ovenSlug. If it is unlisted, ask for ovenType plus ovenMaxCelsius. Oven capability materially changes the hydration band and bake feasibility; if the user declines, proceed but say the result is not oven-adapted. (2) Which flour(s) do they have? — call search_flours to resolve a flourSlug (or pass flourBlend for a 2–5 flour cut, e.g. a Pulcinella base with 30% Manitoba); this is what makes hydration and warnings flour-aware. (3) Their room temperature and fridge temperature — pass roomTempCelsius/fridgeTempCelsius; temperature is the dominant driver of yeast amount and timing. (4) How they mix/knead (by hand, stand mixer, no-knead) — plan_bake does not return technique guidance, so pair it with a troubleshoot call for method advice. (5) Do they want a preferment? — pass `preferment` for a biga, poolish, tiga, cold/long biga, or a natural sourdough starter. The yeast figure accounts for the preferment, and the calculator link opens with the build already set up, so recommending a biga in prose without passing this param hands the user a direct dough. Don't interrogate a user who already gave a full brief.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['recipeSlug'], 'properties': {'locale': {'enum': ['en', 'pl', 'de', 'es', 'it', 'nl', 'fr', 'ja', 'ko', 'sv', 'pt', 'hu'], 'type': 'string', 'description': "UI locale for the returned calculator link (e.g. 'en', 'pl', 'it'). Defaults to 'en'."}, 'bakeTime': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$', 'description': "Target bake time as an ISO 8601 datetime (e.g. '2026-06-10T18:00:00Z'). Must be in the future."}, 'ovenSlug': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': "Exact oven model slug from search_ovens. Strongly preferred: the engine uses the model's real ceiling and oven class to adapt hydration and bake feasibility. Mutually exclusive with manual ovenType/ovenMaxCelsius."}, 'ovenType': {'enum': ['home-electric', 'home-gas', 'portable-gas', 'portable-electric', 'wood-fired', 'pellet', 'hybrid', 'kamado'], 'type': 'string', 'description': 'Oven class for an unlisted model. Pass together with ovenMaxCelsius; prefer ovenSlug when search_ovens finds the model.'}, 'servings': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Number of portions/pizzas (1â\x80\x9350, default: 4)'}, 'flourSlug': {'type': 'string', 'maxLength': 120, 'description': "Flour slug from search_flours (e.g. 'caputo-pizzeria'). For a single flour. Mutually exclusive with flourBlend."}, 'flourBlend': {'type': 'array', 'items': {'type': 'object', 'required': ['flourSlug', 'percent'], 'properties': {'percent': {'type': 'number', 'maximum': 99, 'minimum': 1, 'description': "This flour's share of the blend (1â\x80\x9399); the set must sum to 100"}, 'flourSlug': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'Component flour slug from search_flours'}}}, 'maxItems': 5, 'minItems': 2, 'description': "A weighted flour blend (2â\x80\x935 flours summing to 100%), e.g. [{flourSlug:'caputo-pizzeria',percent:70},{flourSlug:'manitoba-oro',percent:30}]. Mutually exclusive with flourSlug."}, 'preferment': {'type': 'object', 'required': ['type'], 'properties': {'type': {'enum': ['poolish', 'biga', 'biga-fredda', 'biga-lunga', 'tiga', 'sourdough', 'old-dough'], 'type': 'string', 'description': 'Preferment style. poolish = 100% hydration, fast, extensible. biga = stiff (~45-50%). biga-fredda = one long cold hold. biga-lunga = 24h cold then 24h warm. tiga = tiga-style build. sourdough = natural starter (no commercial yeast).'}, 'stages': {'type': 'array', 'items': {'type': 'object', 'required': ['durationHours', 'tempCelsius'], 'properties': {'tempCelsius': {'type': 'number', 'maximum': 40, 'minimum': 0, 'description': 'Temperature of this leg in °C (use ~4 for the fridge)'}, 'durationHours': {'type': 'number', 'maximum': 96, 'minimum': 0.25, 'description': 'Length of this leg in hours'}}}, 'maxItems': 4, 'minItems': 1, 'description': "The build program, leg by leg â\x80\x94 e.g. [{durationHours:24,tempCelsius:4},{durationHours:24,tempCelsius:18}] for a long biga. Omit to use the style's default program."}, 'flourSlug': {'type': 'string', 'maxLength': 120, 'description': 'Build the preferment from a specific flour (slug from search_flours). Omit to use the main flour.'}, 'percentFlour': {'type': 'number', 'maximum': 100, 'minimum': 1, 'description': 'Share of the TOTAL flour that goes into the preferment (1-100). Defaults: 30 for biga/poolish/tiga, 15 for sourdough.'}, 'hydrationPercent': {'type': 'number', 'maximum': 200, 'minimum': 40, 'description': "Preferment hydration % (40-200). Defaults to the style's canonical value (poolish 100, biga ~45)."}}, 'description': 'Plan the bake around a preferment (biga, poolish, tiga, sourdoughâ\x80¦). The yeast figure returned accounts for it, and the calculator link opens with the build already set up.'}, 'recipeSlug': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': "Recipe type slug. Supported: neapolitan-pizza, classica-pizza, focaccia, artisan-bread, baguette (call list_recipes for the full list). When the user names a style like 'classica', pass that style here â\x80\x94 do NOT confuse it with a flour whose name happens to contain the word."}, 'roomTempHours': {'type': 'number', 'maximum': 168, 'minimum': 0, 'description': 'Room-temperature fermentation hours (0â\x80\x93168). Pass BOTH this and fridgeTempHours to lock the split; naming only a total lets the engine choose. Room legs above 14h are clamped with a warning.'}, 'ovenMaxCelsius': {'type': 'number', 'maximum': 600, 'minimum': 100, 'description': 'The real maximum temperature in °C for an unlisted oven (100â\x80\x93600). This is what constrains hydration and bake time.'}, 'ovenMinCelsius': {'type': 'number', 'maximum': 400, 'minimum': 0, 'description': 'Optional minimum set temperature in °C for an unlisted oven.'}, 'fridgeTempHours': {'type': 'number', 'maximum': 168, 'minimum': 0, 'description': 'Cold fermentation hours (0â\x80\x93168). Pass BOTH this and roomTempHours to lock the split.'}, 'roomTempCelsius': {'type': 'number', 'maximum': 40, 'minimum': 2, 'description': "The user's real kitchen temperature in °C (2â\x80\x9340). The single biggest driver of yeast amount and timing â\x80\x94 ask the user for it."}, 'hydrationPercent': {'type': 'number', 'maximum': 110, 'minimum': 40, 'description': 'Target hydration percentage (40â\x80\x93110)'}, 'fridgeTempCelsius': {'type': 'number', 'maximum': 12, 'minimum': 0, 'description': "The user's real fridge temperature in °C (0â\x80\x9312). Ask the user for it when a cold ferment is involved."}}}
search_flours
Search the Pandough flour database. Returns flour names, protein %, W strength, hydration ranges, and types. Use this to help users find the right flour for their bake.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'tag': {'type': 'string', 'maxLength': 50, 'description': "Filter by tag (e.g. 'pizza', 'bread', 'pastry')"}, 'query': {'type': 'string', 'maxLength': 200, 'description': 'Search term (name, brand, or type)'}}}
search_ovens
Search the Pandough oven database. Returns oven specs (max temperature, type, fuel) plus recommended bake settings — top/deck heat, bake time, and deck material — computed for a Neapolitan pizza by the same heat engine the site uses.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'type': {'type': 'string', 'maxLength': 50, 'description': "Oven type filter (e.g. 'pizza-oven', 'home-oven', 'outdoor')"}, 'query': {'type': 'string', 'maxLength': 200, 'description': 'Search term (oven name, brand)'}}}
troubleshoot
Search the Pandough baking knowledge base for troubleshooting advice, technique guides, and flour science. Returns curated expert content about common baking issues.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['issue'], 'properties': {'issue': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': "The baking issue or question (e.g. 'sticky dough', 'no oven spring', 'cold proof technique')"}}}
Ajouté
list_active_bakes
17 September 2026 07:57
Ajouté
search_ovens
17 September 2026 07:57
Ajouté
troubleshoot
17 September 2026 07:57
Ajouté
plan_bake
17 September 2026 07:57
Ajouté
list_recipes
17 September 2026 07:57
Ajouté
get_flour_details
17 September 2026 07:57
Ajouté
search_flours
17 September 2026 07:57