Pandough Agent API
Wprowadź Farina Prima do swojego agentaBETA
Pandough udostępnia swój silnik piekarniczy jako serwer MCP — oparty na Farina Prima, metodzie „najpierw mąka”: najpierw definiujesz mąkę, a potem na jej podstawie tworzysz recepturę (odwrotnie niż w kalkulatorach skupiających się najpierw na przepisie, które traktują mąkę po macoszemu). Połącz Claude, ChatGPT lub dowolnego klienta Model Context Protocol, aby przeszukiwać mąki i piece, planować wypieki z dokładnymi gramaturami i rozwiązywać problemy z ciastem.
Punkt końcowy
Jeden publiczny, bezkluczowy punkt końcowy Streamable HTTP obsługuje każdego klienta MCP:
https://pandough.app/api/mcpPOST https://pandough.app/api/mcpBezstanowy protokół JSON-RPC 2.0 przez HTTP ze strumieniowaniem SSE. Nie jest wymagana autoryzacja ani klucz API.
Narzędzia
Dostępnych jest 6 narzędzi. Wszystkie działają w trybie tylko do odczytu, z wyjątkiem plan_bake, które wykonuje obliczenia (żadne dane nie są zapisywane).
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.
| Wejście | Typ | Wymagane | Opis |
|---|---|---|---|
| query | string | nie | Search term (name, brand, or type). Max 200 chars. |
| tag | string | nie | Filter by tag (e.g. 'pizza', 'bread', 'pastry'). Max 50 chars. |
Zwraca: 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.
| Wejście | Typ | Wymagane | Opis |
|---|---|---|---|
| slug | string | tak | Flour slug from search_flours (e.g. 'caputo-pizzeria', 'manitoba-oro'). 1–120 chars. |
Zwraca: 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.
Zwraca: 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.
| Wejście | Typ | Wymagane | Opis |
|---|---|---|---|
| recipeSlug | string | tak | Recipe 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. |
| flourSlug | string | nie | Flour slug from search_flours (e.g. 'caputo-pizzeria'). Tailors hydration + warnings to the flour. Mutually exclusive with flourBlend. Max 120 chars. |
| flourBlend | array of { flourSlug, percent } | nie | A 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. |
| hydrationPercent | number | nie | Target hydration percentage (40–110). |
| servings | number (integer) | nie | Number of portions/pizzas (1–50, default depends on recipe). |
| roomTempHours | number | nie | Room-temperature fermentation hours (0–168). |
| fridgeTempHours | number | nie | Cold fermentation hours (0–168). |
| roomTempCelsius | number | nie | The user's real kitchen temperature in °C (2–40). The single biggest driver of yeast amount and timing — ask the user for it. |
| fridgeTempCelsius | number | nie | The user's real fridge temperature in °C (0–12). Ask the user when a cold ferment is involved. |
| bakeTime | string (ISO 8601) | nie | Target bake time as an ISO 8601 datetime (e.g. '2026-06-10T18:00:00Z'). Must be in the future. |
| locale | string | nie | UI locale for the returned calculator link (e.g. 'en', 'pl', 'it'). Defaults to 'en'. |
Zwraca: 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.
| Wejście | Typ | Wymagane | Opis |
|---|---|---|---|
| issue | string | tak | The baking issue or question (e.g. 'sticky dough', 'no oven spring', 'cold proof technique'). 1–300 chars. |
Zwraca: 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.
| Wejście | Typ | Wymagane | Opis |
|---|---|---|---|
| query | string | nie | Search term (oven name, brand). Max 200 chars. |
| type | string | nie | Oven type filter (e.g. 'pizza-oven', 'home-oven', 'outdoor'). Max 50 chars. |
Zwraca: Up to 10 matching ovens, each with name, brand, slug, type, max temperature, fuel type, and tags.
Połącz Claude Desktop (stdio)
Dodaj Pandough do swojego pliku claude_desktop_config.json, używając mostka mcp-remote (pośredniczy on między punktem końcowym HTTP a transportem stdio programu Claude Desktop):
{
"mcpServers": {
"pandough": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://pandough.app/api/mcp"]
}
}
}Uruchom ponownie Claude Desktop. Narzędzia Pandough pojawią się w menu narzędzi.
Połącz ChatGPT i klientów HTTP
Skieruj dowolnego klienta HTTP MCP (własne konektory ChatGPT, własne środowisko uruchomieniowe agenta itp.) na punkt końcowy i komunikuj się za pomocą JSON-RPC 2.0. Wyświetl listę dostępnych narzędzi za pomocą:
POST https://pandough.app/api/mcp
Content-Type: application/json
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {}
}Przykład: plan_bake
Zaplanuj cztery pizze neapolitańskie o hydratacji 65% na bazie mieszanki mąk (70% Caputo Pizzeria + 30% Manitoba Oro), uwzględniając rzeczywiste temperatury w kuchni i lodówce piekarza, krótkie wyrastanie w temperaturze pokojowej, nocną fermentację w lodówce oraz link do włoskiego kalkulatora:
Żądanie
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"
}
}
}Przykładowa odpowiedź
{
"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"
}
]
}
}Ilość drożdży, harmonogram i ostrzeżenia są obliczane przez ten sam silnik, który napędza kalkulator Pandough — i uwzględniają one specyfikę mąki: przekazanie parametru flourSlug lub flourBlend dostosowuje zalecany zakres hydratacji i wyświetla ostrzeżenie, gdy docelowa hydratacja wykracza poza ten zakres. Temperatury pokojowe i lodówki (roomTempCelsius / fridgeTempCelsius) są głównym czynnikiem determinującym ilość drożdży i czas fermentacji, więc przekazuj je zawsze, gdy użytkownik je zna. Link „Otwórz w Pandough” uzupełnia wszystkie parametry — w tym mieszankę za pomocą blendInline — dzięki czemu użytkownik może kontynuować edycję w aplikacji, nawet bez zalogowania.
Limity żądań
Publiczny punkt końcowy stosuje limit żądań na adres IP (best-effort):
- •30 żądań / minutę na IP
- •300 żądań / godzinę na IP
Przekroczenie limitu powoduje zwrócenie błędu HTTP 429 z nagłówkiem Retry-After oraz błędu JSON-RPC (kod -32029). Należy wstrzymać wysyłanie i spróbować ponownie po wskazanej liczbie sekund.