Pandough

API do Agente Pandough

Traga o Farina Prima para o seu agenteBETA

O Pandough expõe seu motor de panificação como um servidor MCP — construído sobre o Farina Prima, o método «a farinha primeiro»: defina sua farinha primeiro e, depois, derive a receita a partir dela (o oposto das calculadoras focadas na receita que tratam a farinha como um mero detalhe). Conecte o Claude, o ChatGPT ou qualquer cliente do Model Context Protocol para buscar farinhas e fornos, planejar uma fornada com quantidades exatas em gramas e solucionar problemas com a massa.

Endpoint

Um único endpoint HTTP público e sem chave atende a todos os clientes MCP:

Endpoint MCP
https://pandough.app/api/mcp
POST https://pandough.app/api/mcp

JSON-RPC 2.0 sem estado (stateless) sobre HTTP com streaming SSE. Nenhuma autenticação ou chave de API é necessária.

Ferramentas

6 ferramentas estão disponíveis. Todas são de leitura, exceto plan_bake, que realiza um cálculo (nenhum dado é gravado).

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.

EntradaTipoObrigatórioDescrição
querystringnãoSearch term (name, brand, or type). Max 200 chars.
tagstringnãoFilter by tag (e.g. 'pizza', 'bread', 'pastry'). Max 50 chars.

Retorna: 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.

EntradaTipoObrigatórioDescrição
slugstringsimFlour slug from search_flours (e.g. 'caputo-pizzeria', 'manitoba-oro'). 1–120 chars.

Retorna: 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.

Retorna: 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.

EntradaTipoObrigatórioDescrição
recipeSlugstringsimRecipe 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.
flourSlugstringnãoFlour 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 }nãoA 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.
hydrationPercentnumbernãoTarget hydration percentage (40–110).
servingsnumber (integer)nãoNumber of portions/pizzas (1–50, default depends on recipe).
roomTempHoursnumbernãoRoom-temperature fermentation hours (0–168).
fridgeTempHoursnumbernãoCold fermentation hours (0–168).
roomTempCelsiusnumbernãoThe user's real kitchen temperature in °C (2–40). The single biggest driver of yeast amount and timing — ask the user for it.
fridgeTempCelsiusnumbernãoThe user's real fridge temperature in °C (0–12). Ask the user when a cold ferment is involved.
bakeTimestring (ISO 8601)nãoTarget bake time as an ISO 8601 datetime (e.g. '2026-06-10T18:00:00Z'). Must be in the future.
localestringnãoUI locale for the returned calculator link (e.g. 'en', 'pl', 'it'). Defaults to 'en'.

Retorna: 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.

EntradaTipoObrigatórioDescrição
issuestringsimThe baking issue or question (e.g. 'sticky dough', 'no oven spring', 'cold proof technique'). 1–300 chars.

Retorna: 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.

EntradaTipoObrigatórioDescrição
querystringnãoSearch term (oven name, brand). Max 200 chars.
typestringnãoOven type filter (e.g. 'pizza-oven', 'home-oven', 'outdoor'). Max 50 chars.

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

Conectar ao Claude Desktop (stdio)

Adicione o Pandough ao seu arquivo `claude_desktop_config.json` usando a ponte mcp-remote (ela faz o proxy do endpoint HTTP para o transporte stdio do Claude Desktop):

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

Reinicie o Claude Desktop. As ferramentas do Pandough aparecerão no menu de ferramentas.

Conectar ao ChatGPT e clientes HTTP

Aponte qualquer cliente MCP HTTP (conectores personalizados do ChatGPT, seu próprio ambiente de execução de agentes, etc.) para o endpoint e comunique-se via JSON-RPC 2.0. Liste as ferramentas disponíveis com:

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

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

Exemplo: plan_bake

Planeje quatro pizzas napolitanas com 65% de hidratação usando um blend de farinhas (70% Caputo Pizzeria + 30% Manitoba Oro), considerando as temperaturas reais da cozinha e da geladeira do padeiro, uma fermentação em bloco curta em temperatura ambiente, uma fermentação a frio sob refrigeração durante a noite e um link para a calculadora italiana:

Requisição

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"
    }
  }
}

Exemplo de resposta

{
  "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"
      }
    ]
  }
}

A quantidade de fermento, o cronograma e os avisos são calculados pelo mesmo motor que alimenta a calculadora do Pandough — e eles consideram as características da farinha: passar um `flourSlug` ou `flourBlend` ajusta a faixa de hidratação recomendada e exibe um aviso quando a hidratação desejada fica fora dela. As temperaturas do ambiente e da geladeira (`roomTempCelsius` / `fridgeTempCelsius`) são os principais fatores para a quantidade de fermento e o tempo, portanto, envie-as sempre que o usuário as souber. O link "Abrir no Pandough" preenche previamente todos os parâmetros — incluindo o blend via `blendInline` — para que o usuário possa continuar editando no aplicativo, mesmo sem estar logado.

Limites de requisições

O endpoint público aplica um limite de requisições por IP por melhor esforço:

  • 30 requisições / minuto por IP
  • 300 requisições / hora por IP

Exceder um limite retorna HTTP 429 com um cabeçalho Retry-After e um erro JSON-RPC (código -32029). Aguarde e tente novamente após o número de segundos indicado.