Pandough

Pandough Agent API

Lleva Farina Prima a tu agenteBETA

Pandough expone su motor de panadería como un servidor MCP, basado en Farina Prima, el método «la harina primero»: define tu harina primero y luego deriva la receta a partir de ella (lo contrario de las calculadoras centradas en la receta que tratan la harina como un elemento secundario). Conecta Claude, ChatGPT o cualquier cliente de Model Context Protocol para buscar harinas y hornos, planificar un horneado con cantidades exactas en gramos y solucionar problemas con la masa.

Endpoint

Un único endpoint HTTP público y sin clave sirve a todos los clientes MCP:

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

JSON-RPC 2.0 sin estado sobre HTTP con transmisión SSE. No se requiere autenticación ni clave de API.

Herramientas

Hay 6 herramientas disponibles. Todas son de solo lectura excepto plan_bake, que realiza un cálculo (no se escriben datos).

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.

EntradaTipoRequeridoDescripción
querystringnoSearch term (name, brand, or type). Max 200 chars.
tagstringnoFilter by tag (e.g. 'pizza', 'bread', 'pastry'). Max 50 chars.

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

EntradaTipoRequeridoDescripción
slugstringFlour slug from search_flours (e.g. 'caputo-pizzeria', 'manitoba-oro'). 1–120 chars.

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

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

EntradaTipoRequeridoDescripción
recipeSlugstringRecipe 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.
flourSlugstringnoFlour 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 }noA 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.
hydrationPercentnumbernoTarget hydration percentage (40–110).
servingsnumber (integer)noNumber of portions/pizzas (1–50, default depends on recipe).
roomTempHoursnumbernoRoom-temperature fermentation hours (0–168).
fridgeTempHoursnumbernoCold fermentation hours (0–168).
roomTempCelsiusnumbernoThe user's real kitchen temperature in °C (2–40). The single biggest driver of yeast amount and timing — ask the user for it.
fridgeTempCelsiusnumbernoThe user's real fridge temperature in °C (0–12). Ask the user when a cold ferment is involved.
bakeTimestring (ISO 8601)noTarget bake time as an ISO 8601 datetime (e.g. '2026-06-10T18:00:00Z'). Must be in the future.
localestringnoUI locale for the returned calculator link (e.g. 'en', 'pl', 'it'). Defaults to 'en'.

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

EntradaTipoRequeridoDescripción
issuestringThe baking issue or question (e.g. 'sticky dough', 'no oven spring', 'cold proof technique'). 1–300 chars.

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

EntradaTipoRequeridoDescripción
querystringnoSearch term (oven name, brand). Max 200 chars.
typestringnoOven type filter (e.g. 'pizza-oven', 'home-oven', 'outdoor'). Max 50 chars.

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

Conectar Claude Desktop (stdio)

Añade Pandough a tu archivo `claude_desktop_config.json` usando el puente mcp-remote (este redirige el endpoint HTTP al transporte stdio de Claude Desktop):

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

Reinicia Claude Desktop. Las herramientas de Pandough aparecerán en el menú de herramientas.

Conectar ChatGPT y clientes HTTP

Apunta cualquier cliente MCP HTTP (conectores personalizados de ChatGPT, tu propio entorno de ejecución de agentes, etc.) al endpoint e interactúa mediante JSON-RPC 2.0. Enumera las herramientas disponibles con:

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

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

Ejemplo: plan_bake

Planifica cuatro pizzas napolitanas al 65% de hidratación con una mezcla de harinas (70% Caputo Pizzeria + 30% Manitoba Oro), con las temperaturas reales de la cocina y la nevera del panadero, una fermentación en bloque corta a temperatura ambiente, una fermentación en frío en nevera durante la noche y un enlace de la calculadora italiana:

Petición

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

Ejemplo de respuesta

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

La cantidad de levadura, el programa y las advertencias se calculan con el mismo motor que impulsa la calculadora de Pandough, y tienen en cuenta la harina utilizada: al pasar un `flourSlug` o `flourBlend` se adapta el rango de hidratación recomendado y se muestra una advertencia si la hidratación objetivo queda fuera de este. Las temperaturas ambiente y de la nevera (`roomTempCelsius` / `fridgeTempCelsius`) son el factor determinante para la cantidad de levadura y los tiempos, así que pásalas siempre que el usuario las conozca. El enlace «Abrir en Pandough» precarga todos los parámetros —incluida la mezcla a través de `blendInline`— para que el usuario pueda seguir editando en la aplicación, incluso sin haber iniciado sesión.

Límites de tarifa

El endpoint público aplica un límite de tarifa por IP bajo el principio de mejor esfuerzo:

  • 30 peticiones / minuto por IP
  • 300 peticiones / hora por IP

Superar un límite devuelve un error HTTP 429 con una cabecera Retry-After y un error JSON-RPC (código -32029). Espera y vuelve a intentarlo tras el número de segundos indicado.