Barbaro

Read published house pizza facts and calculate dough and ingredient balance.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
84%
Naming quality
96%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~6,122Tokens (tool definitions)
~5.3 KBTypical response size
Significant attention impact (4.78% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "barbaro": {
      "url": "https://barbaropizza.com/mcp"
    }
  }
}

Remote endpoints

https://barbaropizza.com/mcpstreamable-http

What it can do

Tool inventory

Tools (11)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_pizzas(q, limit, offset)

Search published house pizzas. Returns public catalog data with source links and credits.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "maxLength": 120,
      "default": "",
      "description": "Literal, case-insensitive substring of published names, descriptions or resolved ingredient names. Surrounding whitespace is trimmed."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 20,
      "description": "Decimal integer page size. Leading zeros, signs and fractions are rejected."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 500,
      "default": 0,
      "description": "Decimal integer result offset. Leading zeros, signs and fractions are rejected."
    }
  },
  "additionalProperties": false
}
🟢get_pizza(id)

Read a published house pizza by UUID or slug. Returns public catalog data with source links and credits.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^(?:[a-z0-9]+(?:-[a-z0-9]+)*|[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12})$",
      "description": "Canonical UUID or lowercase slug. UUIDs are case-insensitive; UUID-shaped identifiers resolve only as canonical IDs and cannot be slugs."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}
🟢read_menu

Read published menu sections and their pizza IDs. Returns public catalog data with source links and credits.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢search_ingredients(q, course, limit, offset)

Search published ingredient facts. Returns public catalog data with source links and credits.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "maxLength": 120,
      "default": "",
      "description": "Literal, case-insensitive name substring. Surrounding whitespace is trimmed."
    },
    "course": {
      "type": "string",
      "enum": [
        "Sauce",
        "Cheese",
        "Toppings",
        "Finishes"
      ],
      "description": "One exact normalized course. No legacy-station fallback."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 20,
      "description": "Decimal integer page size. Leading zeros, signs and fractions are rejected."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 2000,
      "default": 0,
      "description": "Decimal integer ingredient result offset. Leading zeros, signs and fractions are rejected."
    }
  },
  "additionalProperties": false
}
🟢get_ingredient(id)

Read a published ingredient by UUID. Returns public catalog data with source links and credits.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$",
      "description": "Canonical ingredient UUID only, case-insensitive. Ingredient slugs are not globally unique."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}
🟢search_flours(q, limit, offset)

Search published flour facts. Returns public catalog data with source links and credits.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "maxLength": 120,
      "default": "",
      "description": "Literal, case-insensitive name or brand substring. Surrounding whitespace is trimmed."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 20,
      "description": "Decimal integer page size. Leading zeros, signs and fractions are rejected."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 500,
      "default": 0,
      "description": "Decimal integer result offset. Leading zeros, signs and fractions are rejected."
    }
  },
  "additionalProperties": false
}
🟢get_flour(id)

Read a published flour by UUID or slug. Returns public catalog data with source links and credits.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^(?:[a-z0-9]+(?:-[a-z0-9]+)*|[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12})$",
      "description": "Canonical UUID or lowercase slug. UUIDs are case-insensitive; UUID-shaped identifiers resolve only as canonical IDs and cannot be slugs."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}
🟢calculate_dough(units, sizing, hydration, flours, salt, ...)

Calculate a dough formula from explicit gram sizing, percentages and published or custom flours. Returns quantities, warnings, source information and a Dough continuation link. No persistence.

Input Schema

{
  "type": "object",
  "properties": {
    "units": {
      "type": "string",
      "const": "g"
    },
    "sizing": {
      "oneOf": [
        {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "mode": {
              "const": "flour"
            },
            "flourGrams": {
              "type": "number",
              "minimum": 1,
              "maximum": 100000
            }
          },
          "required": [
            "mode",
            "flourGrams"
          ]
        },
        {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "mode": {
              "const": "balls"
            },
            "ballCount": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            },
            "ballGrams": {
              "type": "number",
              "minimum": 50,
              "maximum": 2000
            }
          },
          "required": [
            "mode",
            "ballCount",
            "ballGrams"
          ]
        }
      ]
    },
    "hydration": {
      "type": "number",
      "minimum": 0,
      "maximum": 200
    },
    "flours": {
      "type": "array",
      "maxItems": 12,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^(?!blend$|__proto__$|constructor$|prototype$)[A-Za-z0-9][A-Za-z0-9_-]*$"
          },
          "pct": {
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "bigaPct": {
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "source": {
            "oneOf": [
              {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "type": {
                    "const": "catalog"
                  },
                  "ref": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100,
                    "pattern": "^(?:[a-z0-9]+(?:-[a-z0-9]+)*|[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12})$"
                  }
                },
                "required": [
                  "type",
                  "ref"
                ]
              },
              {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "type": {
                    "const": "custom"
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100,
                    "pattern": "\\S"
                  }
                },
                "required": [
                  "type",
                  "name"
                ]
              }
            ]
          }
        },
        "required": [
          "id",
          "pct",
          "bigaPct",
          "source"
        ]
      }
    },
    "salt": {
      "type": "number",
      "minimum": 0,
      "maximum": 10,
      "default": 0
    },
    "oil": {
      "type": "number",
      "minimum": 0,
      "maximum": 30,
      "default": 0
    },
    "sugar": {
      "type": "number",
      "minimum": 0,
      "maximum": 30,
      "default": 0
    },
    "honey": {
      "type": "number",
      "minimum": 0,
      "maximum": 30,
      "default": 0
    },
    "dmp": {
      "type": "number",
      "minimum": 0,
      "maximum": 30,
      "default": 0
    },
    "ndmp": {
      "type": "number",
      "minimum": 0,
      "maximum": 30,
      "default": 0
    },
    "nonfatDryMilk": {
      "type": "number",
      "minimum": 0,
      "maximum": 30,
      "default": 0
    },
    "ascorbicAcid": {
      "type": "number",
      "minimum": 0,
      "maximum": 1,
      "default": 0
    },
    "prefIsd": {
      "type": "number",
      "minimum": 0,
      "maximum": 20,
      "default": 0,
      "description": "Instant sourdough mass as a percentage of total flour, not preferment flour. Convert a Dough preferment-page percentage with pagePercent * effectiveBigaFlour / totalFlour, using actual allocated preferment flour from results. Only without an allocation shortfall is pagePercent * pff / 100 equivalent. A zero actual preferment-flour weight makes its stage percentage unavailable. Example with full allocation: 1.60 * 15 / 100 = 0.24, giving 4.8 g at 2000 g total flour."
    },
    "prefIdy": {
      "type": "number",
      "minimum": 0,
      "maximum": 20,
      "default": 0,
      "description": "Instant dry yeast mass as a percentage of total flour, not preferment flour. Convert a Dough preferment-page percentage with pagePercent * effectiveBigaFlour / totalFlour, using actual allocated preferment flour from results. Only without an allocation shortfall is pagePercent * pff / 100 equivalent. A zero actual preferment-flour weight makes its stage percentage unavailable. Example with full allocation: 1.60 * 15 / 100 = 0.24, giving 4.8 g at 2000 g total flour."
    },
    "finalIsd": {
      "type": "number",
      "minimum": 0,
      "maximum": 20,
      "default": 0,
      "description": "Final-mix instant sourdough mass as a percentage of total flour. No stage-basis conversion is required."
    },
    "finalIdy": {
      "type": "number",
      "minimum": 0,
      "maximum": 20,
      "default": 0,
      "description": "Final-mix instant dry yeast mass as a percentage of total flour. No stage-basis conversion is required."
    },
    "starterPrefPct": {
      "type": "number",
      "minimum": 0,
      "maximum": 200,
      "default": 0,
      "description": "Preferment sourdough starter mass (including its flour and water) as a percentage of total flour, not preferment flour. Convert a Dough preferment-page percentage with pagePercent * effectiveBigaFlour / totalFlour, using actual allocated preferment flour from results. Only without an allocation shortfall is pagePercent * pff / 100 equivalent. A zero actual preferment-flour weight makes its stage percentage unavailable. Example with full allocation: 1.60 * 15 / 100 = 0.24, giving 4.8 g at 2000 g total flour."
    },
    "starterFinalPct": {
      "type": "number",
      "minimum": 0,
      "maximum": 200,
      "default": 0,
      "description": "Final-mix sourdough starter mass (including its flour and water) as a percentage of total flour. No stage-basis conversion is required."
    },
    "pff": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "default": 0
    },
    "bigaHydration": {
      "type": "number",
      "minimum": 0,
      "maximum": 200,
      "default": 50,
      "description": "Preferment water as a percentage of preferment flour."
    },
    "reserveWaterPct": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "default": 5
    },
    "starterHydrationPct": {
      "type": "number",
      "minimum": 40,
      "maximum": 200,
      "default": 100,
      "description": "Starter water as a percentage of starter flour, not total flour or starter mass."
    },
    "starterFlourSource": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "default": "blend",
      "description": "blend or a supplied flour row ID. Inactive starter normalizes to blend and 100% hydration."
    },
    "buffer": {
      "oneOf": [
        {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "mode": {
              "enum": [
                "off",
                "recommended"
              ]
            }
          },
          "required": [
            "mode"
          ]
        },
        {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "mode": {
              "const": "custom"
            },
            "grams": {
              "type": "number",
              "minimum": 0,
              "maximum": 10000
            }
          },
          "required": [
            "mode",
            "grams"
          ]
        }
      ],
      "default": {
        "mode": "off"
      }
    },
    "customAdjustments": {
      "type": "array",
      "maxItems": 8,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 6,
            "pattern": "^c[0-9a-z]{5}$"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 40,
            "pattern": "^\\S(?:[\\s\\S]*\\S)?$"
          },
          "pct": {
            "type": "number",
            "minimum": 0,
            "maximum": 100
          }
        },
        "required": [
          "id",
          "name",
          "pct"
        ]
      },
      "description": "Optional baker-named final-mix ingredients, up to 8, each a percentage of total flour. They count by weight only: they add to batch weight and ball sizing, never to hydration or flour absorption. Row IDs are c followed by five lowercase letters or digits, unique within the formula. Names are sent trimmed, 1 to 40 characters, unique ignoring case, and may not repeat one of Dough's own ingredient names such as Water, Salt, Oil or Sugar, or contain control, hidden or bidirectional characters or a web address. Any refused row fails the whole request."
    }
  },
  "required": [
    "units",
    "sizing",
    "hydration",
    "flours"
  ],
  "additionalProperties": false,
  "description": "Percentages refer to total flour, except bigaHydration and starterHydrationPct. Flour rows are ratios, including empty/zero blends. Unique row IDs required. Named starter source must be a supplied row. Preferment leavening requires positive pff. No temperature inputs; preparation fixes DDT at 72 F and friction at 15 F. Buffer defaults off and non-off buffer requires balls sizing. Flour mode has no ball target: prepared ballCount/ballWeight are zero, ballsTotal is zero, bufferG is the whole batch and pizzaSize is unavailable. The 100000 g flour bound applies to direct flour inputs, not the balls solver result. Custom ingredients count by weight only and never in hydration."
}
🟢calculate_balance(ingredientIds)

Calculate six balance contribution totals and meters for unique published ingredient IDs. Not nutrition or ingredient weights. No persistence.

Input Schema

{
  "type": "object",
  "properties": {
    "ingredientIds": {
      "type": "array",
      "maxItems": 40,
      "uniqueItems": true,
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 36,
        "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$"
      }
    }
  },
  "required": [
    "ingredientIds"
  ],
  "additionalProperties": false
}
🟢plan_bake(timeZone, availableFrom, bakeStartAt, method, stages)

Caller-provided sequential, contiguous stages ending when the first pizza enters the oven. Offset-bearing whole-minute instants must match the IANA zone. No fermentation prediction. Unique stage IDs, positive total duration, minimum <= maximum, available horizon and summed maxima <= 30 days. Windows are marginal, not independently selectable. No persistence.

Input Schema

{
  "type": "object",
  "properties": {
    "timeZone": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z_]+(?:/[A-Za-z0-9_+.-]+)*$"
    },
    "availableFrom": {
      "type": "string",
      "minLength": 1,
      "maxLength": 25,
      "pattern": "^[1-9][0-9]{3}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}(?::00)?(?:Z|[+-][0-9]{2}:[0-9]{2})$"
    },
    "bakeStartAt": {
      "type": "string",
      "minLength": 1,
      "maxLength": 25,
      "pattern": "^[1-9][0-9]{3}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}(?::00)?(?:Z|[+-][0-9]{2}:[0-9]{2})$"
    },
    "method": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "\\S"
    },
    "stages": {
      "type": "array",
      "minItems": 1,
      "maxItems": 16,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$"
          },
          "label": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "\\S"
          },
          "minMinutes": {
            "type": "integer",
            "minimum": 0,
            "maximum": 43200
          },
          "maxMinutes": {
            "type": "integer",
            "minimum": 0,
            "maximum": 43200
          }
        },
        "required": [
          "id",
          "label",
          "minMinutes",
          "maxMinutes"
        ]
      }
    }
  },
  "required": [
    "timeZone",
    "availableFrom",
    "bakeStartAt",
    "method",
    "stages"
  ],
  "additionalProperties": false,
  "description": "Caller-provided sequential, contiguous stages ending when the first pizza enters the oven. Offset-bearing whole-minute instants must match the IANA zone. No fermentation prediction. Unique stage IDs, positive total duration, minimum <= maximum, available horizon and summed maxima <= 30 days. Windows are marginal, not independently selectable."
}
🟢shopping_list(batches, pizzas)

One to eight uniquely identified, already-sized Dough requests. Optional unique published house pizza references and counts annotate topping needs only; they do not multiply dough. Custom flours and custom ingredients retain batch/row identity and are never merged across batches; a custom ingredient item's id is custom:<batchId>:<rowId>. Ready starter is separate from fresh ingredients. Topping quantities are unknown. No persistence.

Input Schema

{
  "type": "object",
  "properties": {
    "batches": {
      "type": "array",
      "minItems": 1,
      "maxItems": 8,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$"
          },
          "dough": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "units": {
                "type": "string",
                "const": "g"
              },
              "sizing": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "mode": {
                        "const": "flour"
                      },
                      "flourGrams": {
                        "type": "number",
                        "minimum": 1,
                        "maximum": 100000
                      }
                    },
                    "required": [
                      "mode",
                      "flourGrams"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "mode": {
                        "const": "balls"
                      },
                      "ballCount": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 100
                      },
                      "ballGrams": {
                        "type": "number",
                        "minimum": 50,
                        "maximum": 2000
                      }
                    },
                    "required": [
                      "mode",
                      "ballCount",
                      "ballGrams"
                    ]
                  }
                ]
              },
              "hydration": {
                "type": "number",
                "minimum": 0,
                "maximum": 200
              },
              "flours": {
                "type": "array",
                "maxItems": 12,
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64,
                      "pattern": "^(?!blend$|__proto__$|constructor$|prototype$)[A-Za-z0-9][A-Za-z0-9_-]*$"
                    },
                    "pct": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 100
                    },
                    "bigaPct": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 100
                    },
                    "source": {
                      "oneOf": [
                        {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "type": {
                              "const": "catalog"
                            },
                            "ref": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 100,
                              "pattern": "^(?:[a-z0-9]+(?:-[a-z0-9]+)*|[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12})$"
                            }
                          },
                          "required": [
                            "type",
                            "ref"
                          ]
                        },
                        {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "type": {
                              "const": "custom"
                            },
                            "name": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 100,
                              "pattern": "\\S"
                            }
                          },
                          "required": [
                            "type",
                            "name"
                          ]
                        }
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "pct",
                    "bigaPct",
                    "source"
                  ]
                }
              },
              "salt": {
                "type": "number",
                "minimum": 0,
                "maximum": 10,
                "default": 0
              },
              "oil": {
                "type": "number",
                "minimum": 0,
                "maximum": 30,
                "default": 0
              },
              "sugar": {
                "type": "number",
                "minimum": 0,
                "maximum": 30,
                "default": 0
              },
              "honey": {
                "type": "number",
                "minimum": 0,
                "maximum": 30,
                "default": 0
              },
              "dmp": {
                "type": "number",
                "minimum": 0,
                "maximum": 30,
                "default": 0
              },
              "ndmp": {
                "type": "number",
                "minimum": 0,
                "maximum": 30,
                "default": 0
              },
              "nonfatDryMilk": {
                "type": "number",
                "minimum": 0,
                "maximum": 30,
                "default": 0
              },
              "ascorbicAcid": {
                "type": "number",
                "minimum": 0,
                "maximum": 1,
                "default": 0
              },
              "prefIsd": {
                "type": "number",
                "minimum": 0,
                "maximum": 20,
                "default": 0,
                "description": "Instant sourdough mass as a percentage of total flour, not preferment flour. Convert a Dough preferment-page percentage with pagePercent * effectiveBigaFlour / totalFlour, using actual allocated preferment flour from results. Only without an allocation shortfall is pagePercent * pff / 100 equivalent. A zero actual preferment-flour weight makes its stage percentage unavailable. Example with full allocation: 1.60 * 15 / 100 = 0.24, giving 4.8 g at 2000 g total flour."
              },
              "prefIdy": {
                "type": "number",
                "minimum": 0,
                "maximum": 20,
                "default": 0,
                "description": "Instant dry yeast mass as a percentage of total flour, not preferment flour. Convert a Dough preferment-page percentage with pagePercent * effectiveBigaFlour / totalFlour, using actual allocated preferment flour from results. Only without an allocation shortfall is pagePercent * pff / 100 equivalent. A zero actual preferment-flour weight makes its stage percentage unavailable. Example with full allocation: 1.60 * 15 / 100 = 0.24, giving 4.8 g at 2000 g total flour."
              },
              "finalIsd": {
                "type": "number",
                "minimum": 0,
                "maximum": 20,
                "default": 0,
                "description": "Final-mix instant sourdough mass as a percentage of total flour. No stage-basis conversion is required."
              },
              "finalIdy": {
                "type": "number",
                "minimum": 0,
                "maximum": 20,
                "default": 0,
                "description": "Final-mix instant dry yeast mass as a percentage of total flour. No stage-basis conversion is required."
              },
              "starterPrefPct": {
                "type": "number",
                "minimum": 0,
                "maximum": 200,
                "default": 0,
                "description": "Preferment sourdough starter mass (including its flour and water) as a percentage of total flour, not preferment flour. Convert a Dough preferment-page percentage with pagePercent * effectiveBigaFlour / totalFlour, using actual allocated preferment flour from results. Only without an allocation shortfall is pagePercent * pff / 100 equivalent. A zero actual preferment-flour weight makes its stage percentage unavailable. Example with full allocation: 1.60 * 15 / 100 = 0.24, giving 4.8 g at 2000 g total flour."
              },
              "starterFinalPct": {
                "type": "number",
                "minimum": 0,
                "maximum": 200,
                "default": 0,
                "description": "Final-mix sourdough starter mass (including its flour and water) as a percentage of total flour. No stage-basis conversion is required."
              },
              "pff": {
                "type": "number",
                "minimum": 0,
                "maximum": 100,
                "default": 0
              },
              "bigaHydration": {
                "type": "number",
                "minimum": 0,
                "maximum": 200,
                "default": 50,
                "description": "Preferment water as a percentage of preferment flour."
              },
              "reserveWaterPct": {
                "type": "number",
                "minimum": 0,
                "maximum": 100,
                "default": 5
              },
              "starterHydrationPct": {
                "type": "number",
                "minimum": 40,
                "maximum": 200,
                "default": 100,
                "description": "Starter water as a percentage of starter flour, not total flour or starter mass."
              },
              "starterFlourSource": {
                "type": "string",
                "minLength": 1,
                "maxLength": 64,
                "default": "blend",
                "description": "blend or a supplied flour row ID. Inactive starter normalizes to blend and 100% hydration."
              },
              "buffer": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "mode": {
                        "enum": [
                          "off",
                          "recommended"
                        ]
                      }
                    },
                    "required": [
                      "mode"
                    ]
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "mode": {
                        "const": "custom"
                      },
                      "grams": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 10000
                      }
                    },
                    "required": [
                      "mode",
                      "grams"
                    ]
                  }
                ],
                "default": {
                  "mode": "off"
                }
              },
              "customAdjustments": {
                "type": "array",
                "maxItems": 8,
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 6,
                      "pattern": "^c[0-9a-z]{5}$"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40,
                      "pattern": "^\\S(?:[\\s\\S]*\\S)?$"
                    },
                    "pct": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 100
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "pct"
                  ]
                },
                "description": "Optional baker-named final-mix ingredients, up to 8, each a percentage of total flour. They count by weight only: they add to batch weight and ball sizing, never to hydration or flour absorption. Row IDs are c followed by five lowercase letters or digits, unique within the formula. Names are sent trimmed, 1 to 40 characters, unique ignoring case, and may not repeat one of Dough's own ingredient names such as Water, Salt, Oil or Sugar, or contain control, hidden or bidirectional characters or a web address. Any refused row fails the whole request."
              }
            },
            "required": [
              "units",
              "sizing",
              "hydration",
              "flours"
            ],
            "description": "Percentages refer to total flour, except bigaHydration and starterHydrationPct. Flour rows are ratios, including empty/zero blends. Unique row IDs required. Named starter source must be a supplied row. Preferment leavening requires positive pff. No temperature inputs; preparation fixes DDT at 72 F and friction at 15 F. Buffer defaults off and non-off buffer requires balls sizing. Flour mode has no ball target: prepared ballCount/ballWeight are zero, ballsTotal is zero, bufferG is the whole batch and pizzaSize is unavailable. The 100000 g flour bound applies to direct flour inputs, not the balls solver result. Custom ingredients count by weight only and never in hydration."
          }
        },
        "required": [
          "id",
          "dough"
        ]
      }
    },
    "pizzas": {
      "type": "array",
      "maxItems": 20,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ref": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^(?:[a-z0-9]+(?:-[a-z0-9]+)*|[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12})$"
          },
          "count": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          }
        },
        "required": [
          "ref",
          "count"
        ]
      }
    }
  },
  "required": [
    "batches"
  ],
  "additionalProperties": false,
  "description": "One to eight uniquely identified, already-sized Dough requests. Optional unique published house pizza references and counts annotate topping needs only; they do not multiply dough. Custom flours and custom ingredients retain batch/row identity and are never merged across batches; a custom ingredient item's id is custom:<batchId>:<rowId>. Ready starter is separate from fresh ingredients. Topping quantities are unknown."
}

Recommended Prompts

search_research
Search for information about [topic] using Barbaro
Expected tools: search_pizzas
find_specific
Find [specific item] using Barbaro
Expected tools: search_pizzas
retrieve_data
Get details about [item] from Barbaro
Expected tools: get_pizza
fetch_info
Fetch [information type] using Barbaro
Expected tools: get_pizza
list_items
List all [items] available in Barbaro
Expected tools: shopping_list

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded11 tools
verifiedversion not recorded11 tools
verifiedversion not recorded11 tools
verifiedversion not recorded11 tools
verifiedversion not recorded11 tools
verifiedversion not recorded11 tools