Pandough

Flour-first dough plans: yeast, hydration, schedule from flour you own. No API key for plan tools.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
77%
이름 품질
94%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~2,707토큰 (도구 정의)
~2.8 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 2.11%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "mcp": {
      "url": "https://pandough.app/api/mcp"
    }
  }
}

원격 엔드포인트

https://pandough.app/api/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (7)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢search_flours(query, tag)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Search term (name, brand, or type)",
      "type": "string",
      "maxLength": 200
    },
    "tag": {
      "description": "Filter by tag (e.g. 'pizza', 'bread', 'pastry')",
      "type": "string",
      "maxLength": 50
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_flour_details(slug)

Get detailed information about a specific flour by its slug. Returns full profile including protein, W strength, hydration curve, maturation profiles, and description.

입력 스키마

{
  "type": "object",
  "properties": {
    "slug": {
      "description": "Flour slug (e.g. 'caputo-pizzeria', 'manitoba-oro')",
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    }
  },
  "required": [
    "slug"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢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.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢plan_bake(recipeSlug, flourSlug, flourBlend, hydrationPercent, servings, ...)

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) Strongly ask which oven model they use — call search_ovens and pass ovenSlug. If it is unlisted, ask for ovenType plus ovenMaxCelsius. Oven capability materially changes the hydration band and bake feasibility; if the user declines, proceed but say the result is not oven-adapted. (2) 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. (3) Their room temperature and fridge temperature — pass roomTempCelsius/fridgeTempCelsius; temperature is the dominant driver of yeast amount and timing. (4) 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. (5) Do they want a preferment? — pass `preferment` for a biga, poolish, tiga, cold/long biga, or a natural sourdough starter. The yeast figure accounts for the preferment, and the calculator link opens with the build already set up, so recommending a biga in prose without passing this param hands the user a direct dough. Don't interrogate a user who already gave a full brief.

입력 스키마

{
  "type": "object",
  "properties": {
    "recipeSlug": {
      "description": "Recipe type slug. Supported: neapolitan-pizza, classica-pizza, focaccia, artisan-bread, baguette (call list_recipes for the full list). When the user names a style like 'classica', pass that style here — do NOT confuse it with a flour whose name happens to contain the word.",
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "flourSlug": {
      "description": "Flour slug from search_flours (e.g. 'caputo-pizzeria'). For a single flour. Mutually exclusive with flourBlend.",
      "type": "string",
      "maxLength": 120
    },
    "flourBlend": {
      "description": "A weighted flour blend (2–5 flours summing to 100%), e.g. [{flourSlug:'caputo-pizzeria',percent:70},{flourSlug:'manitoba-oro',percent:30}]. Mutually exclusive with flourSlug.",
      "minItems": 2,
      "maxItems": 5,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "flourSlug": {
            "description": "Component flour slug from search_flours",
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "percent": {
            "description": "This flour's share of the blend (1–99); the set must sum to 100",
            "type": "number",
            "minimum": 1,
            "maximum": 99
          }
        },
        "required": [
          "flourSlug",
          "percent"
        ]
      }
    },
    "hydrationPercent": {
      "description": "Target hydration percentage (40–110)",
      "type": "number",
      "minimum": 40,
      "maximum": 110
    },
    "servings": {
      "description": "Number of portions/pizzas (1–50, default: 4)",
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    },
    "roomTempHours": {
      "description": "Room-temperature fermentation hours (0–168). Pass BOTH this and fridgeTempHours to lock the split; naming only a total lets the engine choose. Room legs above 14h are clamped with a warning.",
      "type": "number",
      "minimum": 0,
      "maximum": 168
    },
    "fridgeTempHours": {
      "description": "Cold fermentation hours (0–168). Pass BOTH this and roomTempHours to lock the split.",
      "type": "number",
      "minimum": 0,
      "maximum": 168
    },
    "roomTempCelsius": {
      "description": "The user's real kitchen temperature in °C (2–40). The single biggest driver of yeast amount and timing — ask the user for it.",
      "type": "number",
      "minimum": 2,
      "maximum": 40
    },
    "fridgeTempCelsius": {
      "description": "The user's real fridge temperature in °C (0–12). Ask the user for it when a cold ferment is involved.",
      "type": "number",
      "minimum": 0,
      "maximum": 12
    },
    "ovenSlug": {
      "description": "Exact oven model slug from search_ovens. Strongly preferred: the engine uses the model's real ceiling and oven class to adapt hydration and bake feasibility. Mutually exclusive with manual ovenType/ovenMaxCelsius.",
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "ovenType": {
      "description": "Oven class for an unlisted model. Pass together with ovenMaxCelsius; prefer ovenSlug when search_ovens finds the model.",
      "type": "string",
      "enum": [
        "home-electric",
        "home-gas",
        "portable-gas",
        "portable-electric",
        "wood-fired",
        "pellet",
        "hybrid",
        "kamado"
      ]
    },
    "ovenMaxCelsius": {
      "description": "The real maximum temperature in °C for an unlisted oven (100–600). This is what constrains hydration and bake time.",
      "type": "number",
      "minimum": 100,
      "maximum": 600
    },
    "ovenMinCelsius": {
      "description": "Optional minimum set temperature in °C for an unlisted oven.",
      "type": "number",
      "minimum": 0,
      "maximum": 400
    },
    "bakeTime": {
      "description": "Target bake time as an ISO 8601 datetime (e.g. '2026-06-10T18:00:00Z'). Must be in the future.",
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
    },
    "preferment": {
      "description": "Plan the bake around a preferment (biga, poolish, tiga, sourdough…). The yeast figure returned accounts for it, and the calculator link opens with the build already set up.",
      "type": "object",
      "properties": {
        "type": {
          "description": "Preferment style. poolish = 100% hydration, fast, extensible. biga = stiff (~45-50%). biga-fredda = one long cold hold. biga-lunga = 24h cold then 24h warm. tiga = tiga-style build. sourdough = natural starter (no commercial yeast).",
          "type": "string",
          "enum": [
            "poolish",
            "biga",
            "biga-fredda",
            "biga-lunga",
            "tiga",
            "sourdough",
            "old-dough"
          ]
        },
        "percentFlour": {
          "description": "Share of the TOTAL flour that goes into the preferment (1-100). Defaults: 30 for biga/poolish/tiga, 15 for sourdough.",
          "type": "number",
          "minimum": 1,
          "maximum": 100
        },
        "hydrationPercent": {
          "description": "Preferment hydration % (40-200). Defaults to the style's canonical value (poolish 100, biga ~45).",
          "type": "number",
          "minimum": 40,
          "maximum": 200
        },
        "stages": {
          "description": "The build program, leg by leg — e.g. [{durationHours:24,tempCelsius:4},{durationHours:24,tempCelsius:18}] for a long biga. Omit to use the style's default program.",
          "minItems": 1,
          "maxItems": 4,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "durationHours": {
                "description": "Length of this leg in hours",
                "type": "number",
                "minimum": 0.25,
                "maximum": 96
              },
              "tempCelsius": {
                "description": "Temperature of this leg in °C (use ~4 for the fridge)",
                "type": "number",
                "minimum": 0,
                "maximum": 40
              }
            },
            "required": [
              "durationHours",
              "tempCelsius"
            ]
          }
        },
        "flourSlug": {
          "description": "Build the preferment from a specific flour (slug from search_flours). Omit to use the main flour.",
          "type": "string",
          "maxLength": 120
        }
      },
      "required": [
        "type"
      ]
    },
    "locale": {
      "description": "UI locale for the returned calculator link (e.g. 'en', 'pl', 'it'). Defaults to 'en'.",
      "type": "string",
      "enum": [
        "en",
        "pl",
        "de",
        "es",
        "it",
        "nl",
        "fr",
        "ja",
        "ko",
        "sv",
        "pt",
        "hu"
      ]
    }
  },
  "required": [
    "recipeSlug"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢troubleshoot(issue)

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

입력 스키마

{
  "type": "object",
  "properties": {
    "issue": {
      "description": "The baking issue or question (e.g. 'sticky dough', 'no oven spring', 'cold proof technique')",
      "type": "string",
      "minLength": 1,
      "maxLength": 300
    }
  },
  "required": [
    "issue"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search_ovens(query, type)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Search term (oven name, brand)",
      "type": "string",
      "maxLength": 200
    },
    "type": {
      "description": "Oven type filter (e.g. 'pizza-oven', 'home-oven', 'outdoor')",
      "type": "string",
      "maxLength": 50
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_active_bakes

List the signed-in baker's scheduled and active bakes plus live temperature-sensor readings when a device is reporting. The first call prompts the chat app to authorize a Pandough account (OAuth scope bakes:read). Needs Pro (or cancelled-Pro). Returns ids, flour, hydration, schedule, a calculator session link, and probe temps (air around the dough, not dough core).

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

권장 프롬프트

search_research
Search for information about [topic] using Pandough
예상 도구: search_flours
find_specific
Find [specific item] using Pandough
예상 도구: search_flours
retrieve_data
Get details about [item] from Pandough
예상 도구: get_flour_details
fetch_info
Fetch [information type] using Pandough
예상 도구: get_flour_details
list_items
List all [items] available in Pandough
예상 도구: list_recipes

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 7개
검증됨버전이 기록되지 않음도구 7개