Pandough

Pandough Agent API

Bringen Sie Farina Prima zu Ihrem AgentenBETA

Pandough stellt seine Back-Engine als MCP-Server bereit — basierend auf Farina Prima, der Mehl-zuerst-Methode: Definieren Sie zuerst Ihr Mehl und leiten Sie dann das Rezept daraus ab (das genaue Gegenteil von Rezept-zuerst-Rechnern, die Mehl nur als Nebensache behandeln). Verbinden Sie Claude, ChatGPT oder einen beliebigen Model Context Protocol-Client, um nach Mehlen und Öfen zu suchen, einen Backvorgang mit exakten Gramm-Angaben zu planen und Teigprobleme zu lösen.

Endpunkt

Ein einziger, schlüsselloser, öffentlicher Streamable-HTTP-Endpunkt bedient jeden MCP-Client:

MCP-Endpunkt
https://pandough.app/api/mcp
POST https://pandough.app/api/mcp

Zustandsloses JSON-RPC 2.0 über HTTP mit SSE-Streaming. Keine Authentifizierung oder API-Schlüssel erforderlich.

Tools

Es stehen 6 Tools zur Verfügung. Alle sind schreibgeschützt, außer plan_bake, das eine Berechnung durchführt (es werden keine Daten gespeichert).

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.

EingabeTypErforderlichBeschreibung
querystringneinSearch term (name, brand, or type). Max 200 chars.
tagstringneinFilter by tag (e.g. 'pizza', 'bread', 'pastry'). Max 50 chars.

Rückgabewert: Up to 10 matching flours, each with name, brand, slug, protein %, W strength, type, and hydration range.

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.

EingabeTypErforderlichBeschreibung
slugstringjaFlour slug from search_flours (e.g. 'caputo-pizzeria', 'manitoba-oro'). 1–120 chars.

Rückgabewert: A single flour profile: name, brand, type, protein %, W strength, hydration range, tags, and description.

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.

Rückgabewert: Every supported recipe style: slug, name, dough type, default hydration range, and a typical bulk → cold → final-proof schedule.

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) 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. (2) Their room temperature and fridge temperature — pass roomTempCelsius/fridgeTempCelsius; temperature is the dominant driver of yeast amount and timing. (3) 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. Don't interrogate a user who already gave a full brief.

EingabeTypErforderlichBeschreibung
recipeSlugstringjaRecipe type slug. Supported: neapolitan-pizza, classica-pizza, focaccia, artisan-bread, baguette (call list_recipes for the canonical list). Pass the user's style here — don't substitute a flour whose name contains the style word. 1–120 chars.
flourSlugstringneinFlour slug from search_flours (e.g. 'caputo-pizzeria'). Tailors hydration + warnings to the flour. Mutually exclusive with flourBlend. Max 120 chars.
flourBlendarray of { flourSlug, percent }neinA weighted blend of 2–5 flours summing to 100%, e.g. [{flourSlug:'caputo-pizzeria',percent:70},{flourSlug:'manitoba-oro',percent:30}]. Properties are weight-averaged into a virtual flour. Mutually exclusive with flourSlug.
hydrationPercentnumberneinTarget hydration percentage (40–110).
servingsnumber (integer)neinNumber of portions/pizzas (1–50, default depends on recipe).
roomTempHoursnumberneinRoom-temperature fermentation hours (0–168).
fridgeTempHoursnumberneinCold fermentation hours (0–168).
roomTempCelsiusnumberneinThe user's real kitchen temperature in °C (2–40). The single biggest driver of yeast amount and timing — ask the user for it.
fridgeTempCelsiusnumberneinThe user's real fridge temperature in °C (0–12). Ask the user when a cold ferment is involved.
bakeTimestring (ISO 8601)neinTarget bake time as an ISO 8601 datetime (e.g. '2026-06-10T18:00:00Z'). Must be in the future.
localestringneinUI locale for the returned calculator link (e.g. 'en', 'pl', 'it'). Defaults to 'en'.

Rückgabewert: Total dough weight, auto-sized yeast (grams + baker's %), per-ingredient amounts (grams + %), a warm/cold/final-proof schedule, dough warnings, and an 'Open in Pandough' calculator link with every parameter prefilled.

troubleshoot

Search the Pandough baking knowledge base for troubleshooting advice, technique guides, and flour science. Returns curated expert content about common baking issues.

EingabeTypErforderlichBeschreibung
issuestringjaThe baking issue or question (e.g. 'sticky dough', 'no oven spring', 'cold proof technique'). 1–300 chars.

Rückgabewert: Up to 3 curated knowledge-base articles, each with a title, category, and full body content.

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.

EingabeTypErforderlichBeschreibung
querystringneinSearch term (oven name, brand). Max 200 chars.
typestringneinOven type filter (e.g. 'pizza-oven', 'home-oven', 'outdoor'). Max 50 chars.

Rückgabewert: Up to 10 matching ovens, each with name, brand, slug, type, max temperature, fuel type, and tags.

Claude Desktop verbinden (stdio)

Fügen Sie Pandough zu Ihrer claude_desktop_config.json hinzu, indem Sie die mcp-remote-Bridge verwenden (sie leitet den HTTP-Endpunkt an den stdio-Transport von Claude Desktop weiter):

{
  "mcpServers": {
    "pandough": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://pandough.app/api/mcp"]
    }
  }
}

Starten Sie Claude Desktop neu. Die Pandough-Tools werden im Tools-Menü angezeigt.

ChatGPT & HTTP-Clients verbinden

Verweisen Sie mit jedem HTTP-MCP-Client (benutzerdefinierte ChatGPT-Connectors, Ihre eigene Agenten-Laufzeitumgebung usw.) auf den Endpunkt und kommunizieren Sie über JSON-RPC 2.0. Listen Sie die verfügbaren Tools auf mit:

POST https://pandough.app/api/mcp
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/list",
  "params": {}
}

Beispiel: plan_bake

Planen Sie vier neapolitanische Pizzas mit 65 % Hydratation auf Basis einer Mehlmischung (70 % Caputo Pizzeria + 30 % Manitoba Oro), unter Berücksichtigung der tatsächlichen Küchen- und Kühlschranktemperaturen des Bäckers, einer kurzen warmen Stockgare, einer kalten Gare über Nacht und einem italienischen Rechner-Link:

Anfrage

POST https://pandough.app/api/mcp
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "plan_bake",
    "arguments": {
      "recipeSlug": "neapolitan-pizza",
      "flourBlend": [
        { "flourSlug": "caputo-pizzeria", "percent": 70 },
        { "flourSlug": "manitoba-oro", "percent": 30 }
      ],
      "hydrationPercent": 65,
      "servings": 4,
      "roomTempCelsius": 22,
      "fridgeTempCelsius": 4,
      "roomTempHours": 4,
      "fridgeTempHours": 20,
      "locale": "it"
    }
  }
}

Beispiel-Antwort

{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "# Bake Plan\n\n**Total dough:** 1120g\n**Yeast:** 0.4g (0.06%) instant-dry\n\n## Ingredients\n  Pizzeria-ORO: 671g (100%)\n  Water: 436g (65%)\n  Salt: 19g (2.8%)\n  Yeast: 0.4g (0.06%)\n\n## Schedule\n  Warm bulk fermentation: 4h at 22°C\n  Cold fermentation (fridge): 20h at 4°C\n  Final proof: 2h at 22°C\n\n## Warnings\n  - 65% hydration is above Pizzeria-ORO's recommended range (57–64%) — expect a slack, hard-to-handle dough.\n\n## Open in Pandough\nOpen this calculator link to continue editing the bake:\nhttps://pandough.app/it/calculator?recipe=neapolitan-pizza&n=4&w=280&h=65&rt=4&ft=20&y=0.06&blendInline=caputo-pizzeria:70,manitoba-oro:30&source=mcp&aid=1a2b3c4d"
      }
    ]
  }
}

Die Hefemenge, der Zeitplan und die Warnhinweise werden von derselben Engine berechnet, die auch den Pandough-Rechner antreibt — und sie sind mehlspezifisch: Die Übergabe eines flourSlug oder flourBlend passt den empfohlenen Hydratationsbereich an und gibt eine Warnung aus, wenn Ihre Zielhydratation außerhalb dieses Bereichs liegt. Die Raum- und Kühlschranktemperaturen (roomTempCelsius / fridgeTempCelsius) sind der entscheidende Faktor für die Hefemenge und das Timing, übergeben Sie diese also immer, wenn der Benutzer sie weiß. Der Link „In Pandough öffnen“ füllt alle Parameter vor — einschließlich der Mischung über blendInline —, sodass der Benutzer die Bearbeitung in der App fortsetzen kann, selbst wenn er nicht angemeldet ist.

Rate Limits

Für den öffentlichen Endpunkt gilt ein Best-Effort-Rate-Limit pro IP-Adresse:

  • 30 Anfragen / Minute pro IP
  • 300 Anfragen / Stunde pro IP

Das Überschreiten eines Limits gibt HTTP 429 mit einem Retry-After-Header und einem JSON-RPC-Fehler (Code -32029) zurück. Warten Sie kurz und versuchen Sie es nach der angegebenen Anzahl von Sekunden erneut.