Barbaro
Read published house pizza facts and calculate dough and ingredient balance.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"barbaro": {
"url": "https://barbaropizza.com/mcp"
}
}
}Puntos de conexión remotos
https://barbaropizza.com/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (11)
🟢search_pizzas(q, limit, offset)
Search published house pizzas. Returns public catalog data with source links and credits.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢search_ingredients(q, course, limit, offset)
Search published ingredient facts. Returns public catalog data with source links and credits.
Esquema de entrada
{
"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": 500,
"default": 0,
"description": "Decimal integer 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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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"
}
}
},
"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."
}🟢calculate_balance(ingredientIds)
Calculate six balance contribution totals and meters for unique published ingredient IDs. Not nutrition or ingredient weights. No persistence.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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 retain batch/row identity. Ready starter is separate from fresh ingredients. Topping quantities are unknown. No persistence.
Esquema de entrada
{
"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"
}
}
},
"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."
}
},
"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 retain batch/row identity. Ready starter is separate from fresh ingredients. Topping quantities are unknown."
}Prompts recomendados
search_pizzassearch_pizzasget_pizzaget_pizzashopping_listComunidad
Evidencia