Pandough

Pandough Agent API

Bring Farina Prima to your agentBETA

Pandough exposes its baking engine as an MCP server — built on Farina Prima, the flour-first method: define your flour first, then derive the recipe from it (the opposite of the recipe-first calculators that treat flour as an afterthought). Connect Claude, ChatGPT, or any Model Context Protocol client to search flours and ovens, plan a bake with exact gram amounts, and troubleshoot dough.

Endpoint

A single keyless, public Streamable HTTP endpoint serves every MCP client:

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

Stateless JSON-RPC 2.0 over HTTP with SSE streaming. No auth or API key required.

Tools

6 tools are available. All are read-only except plan_bake, which performs a calculation (no data is written).

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.

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

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

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

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

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

InputTypeRequiredDescription
recipeSlugstringyesRecipe 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'.

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

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

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

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

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

Connect Claude Desktop (stdio)

Add Pandough to your claude_desktop_config.json using the mcp-remote bridge (it proxies the HTTP endpoint to Claude Desktop's stdio transport):

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

Restart Claude Desktop. The Pandough tools will appear in the tools menu.

Connect ChatGPT & HTTP clients

Point any HTTP MCP client (ChatGPT custom connectors, your own agent runtime, etc.) at the endpoint and speak JSON-RPC 2.0. List the available tools with:

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

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

Example: plan_bake

Plan four Neapolitan pizzas at 65% hydration against a flour blend (70% Caputo Pizzeria + 30% Manitoba Oro), with the baker's real kitchen and fridge temperatures, a short warm bulk, an overnight cold ferment, and an Italian calculator link:

Request

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

Sample response

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

The yeast amount, schedule, and warnings are computed by the same engine that powers the Pandough calculator — and they're flour-aware: passing a flourSlug or flourBlend tailors the recommended hydration band and surfaces a warning when your target hydration falls outside it. Room and fridge temperatures (roomTempCelsius / fridgeTempCelsius) are the dominant driver of the yeast amount and timing, so pass them whenever the user knows them. The Open in Pandough link prefills every parameter — including the blend via blendInline — so the user can keep editing in the app, even when signed out.

Rate limits

The public endpoint applies a best-effort per-IP rate limit:

  • 30 requests / minute per IP
  • 300 requests / hour per IP

Exceeding a limit returns HTTP 429 with a Retry-After header and a JSON-RPC error (code -32029). Back off and retry after the indicated number of seconds.

Pandough

Pandough.app — the precision dough calculator built on the Farina Prima method: the flour-first way to build a pizza recipe, starting from your flour.

Pandough works better on a desktop
Pandough works better on a desktopMore room for the schedule, graphs, and flour details. Send yourself the link and open it on a bigger screen.
© 2026 Pandough.app·TermsPrivacy·r/PandoughApp