Beer prices at bars in Brazil by price per litre, with supermarkets and depósitos ranked apart
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
The cities covered (with how many prices each has), the beer brands and the serving formats: the slugs the other tools take.
Language of labels, schedules and page links
The cities covered (with how many prices each has), the beer brands and the serving formats: the slugs the other tools take.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language of labels, schedules and page links |
{
"type": "object",
"properties": {
"lang": {
"enum": [
"pt-BR",
"en"
],
"type": "string",
"default": "pt-BR",
"description": "Language of labels, schedules and page links"
}
},
"additionalProperties": false
}The beer prices that hold right now in the city's time zone, cheapest per litre first, happy hours and timed promos included: bars' prices in deals, supermarkets' and depósitos' separately in shops. Give lat and lng to keep places within radius_m of a point (each price then carries distance_m). category=bar leaves the shops out.
| Argument | Type | Description |
|---|---|---|
| lat | number | Latitude of the point, e.g. -13.0109 |
| lng | number | Longitude of the point, e.g. -38.4915 |
| city* | string | City slug from catalog, e.g. "salvador" |
| lang | string | Language of labels, schedules and page links |
| limit | integer | How many prices |
| format | string | Format type (lata, long_neck, garrafa, litrao, chopp, torre) or code (garrafa_600), from catalog |
| category | string | Only this kind of place: bar (to drink there), mercado (supermarkets and corner shops) or deposito (drinks shops), the last two to take away; its prices then come in deals. Without it, bars' prices come in deals and shops' prices (at most 5) in shops |
| radius_m | integer | Around the point |
{
"type": "object",
"required": [
"city"
],
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Latitude of the point, e.g. -13.0109"
},
"lng": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Longitude of the point, e.g. -38.4915"
},
"city": {
"type": "string",
"maxLength": 60,
"description": "City slug from catalog, e.g. \"salvador\""
},
"lang": {
"enum": [
"pt-BR",
"en"
],
"type": "string",
"default": "pt-BR",
"description": "Language of labels, schedules and page links"
},
"limit": {
"type": "integer",
"default": 5,
"maximum": 10,
"minimum": 1,
"description": "How many prices"
},
"format": {
"type": "string",
"maxLength": 40,
"description": "Format type (lata, long_neck, garrafa, litrao, chopp, torre) or code (garrafa_600), from catalog"
},
"category": {
"enum": [
"bar",
"mercado",
"deposito"
],
"type": "string",
"description": "Only this kind of place: bar (to drink there), mercado (supermarkets and corner shops) or deposito (drinks shops), the last two to take away; its prices then come in deals. Without it, bars' prices come in deals and shops' prices (at most 5) in shops"
},
"radius_m": {
"type": "integer",
"default": 2000,
"maximum": 10000,
"minimum": 100,
"description": "Around the point"
}
},
"additionalProperties": false
}Details of one bar, supermarket or depósito (kind, drink_on_site, bairro, address, location, Instagram, opening hours, attributes) and every beer price it has, each with its category, cheapest per litre first, open-bar packages last. The venue slug is the last part of the url on a price from search_deals or cheapest_now.
| Argument | Type | Description |
|---|---|---|
| city* | string | City slug from catalog, e.g. "salvador" |
| lang | string | Language of labels, schedules and page links |
| venue* | string | Venue slug, e.g. "boteco-do-ze" |
{
"type": "object",
"required": [
"city",
"venue"
],
"properties": {
"city": {
"type": "string",
"maxLength": 60,
"description": "City slug from catalog, e.g. \"salvador\""
},
"lang": {
"enum": [
"pt-BR",
"en"
],
"type": "string",
"default": "pt-BR",
"description": "Language of labels, schedules and page links"
},
"venue": {
"type": "string",
"maxLength": 120,
"description": "Venue slug, e.g. \"boteco-do-ze\""
}
},
"additionalProperties": false
}The city's bairros (neighbourhoods) with beer prices: how many bars, shops and prices each has, and its cheapest price per litre at a bar and at a shop, kept apart, most bars first. Pass a slug as the neighbourhood argument of search_deals.
| Argument | Type | Description |
|---|---|---|
| city* | string | City slug from catalog, e.g. "salvador" |
| lang | string | Language of labels, schedules and page links |
{
"type": "object",
"required": [
"city"
],
"properties": {
"city": {
"type": "string",
"maxLength": 60,
"description": "City slug from catalog, e.g. \"salvador\""
},
"lang": {
"enum": [
"pt-BR",
"en"
],
"type": "string",
"default": "pt-BR",
"description": "Language of labels, schedules and page links"
}
},
"additionalProperties": false
}The monthly Índice Cerveja Barata for a city: median, quartiles and minimum price per litre at bars, for the whole city and by format, bairro and brand, with how many prices and bars each cell rests on. Latest month by default; final once the month is closed.
| Argument | Type | Description |
|---|---|---|
| city* | string | City slug from catalog, e.g. "salvador" |
| lang | string | Language of labels, schedules and page links |
| month | string | Month as YYYY-MM, e.g. "2026-11"; latest by default |
{
"type": "object",
"required": [
"city"
],
"properties": {
"city": {
"type": "string",
"maxLength": 60,
"description": "City slug from catalog, e.g. \"salvador\""
},
"lang": {
"enum": [
"pt-BR",
"en"
],
"type": "string",
"default": "pt-BR",
"description": "Language of labels, schedules and page links"
},
"month": {
"type": "string",
"maxLength": 7,
"description": "Month as YYYY-MM, e.g. \"2026-11\"; latest by default"
}
},
"additionalProperties": false
}Convert a Brazilian beer price into reais per litre, the unit Cerveja Barata ranks by. Give the price paid in BRL, the volume of one unit in ml and how many units the price buys (e.g. 5 for a bucket of 5 long necks).
| Argument | Type | Description |
|---|---|---|
| units | integer | Units the price buys |
| price_brl* | number | Price paid, in BRL, e.g. 9.99 |
| volume_ml* | number | Volume of one unit in millilitres, e.g. 600 |
{
"type": "object",
"required": [
"price_brl",
"volume_ml"
],
"properties": {
"units": {
"type": "integer",
"default": 1,
"minimum": 1,
"description": "Units the price buys"
},
"price_brl": {
"type": "number",
"description": "Price paid, in BRL, e.g. 9.99",
"exclusiveMinimum": 0
},
"volume_ml": {
"type": "number",
"description": "Volume of one unit in millilitres, e.g. 600",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}Beer prices in a city, cheapest per litre first. Bars' prices, to drink there, come in deals; supermarkets' and depósitos' prices, to take away, come separately in shops (at most 5), never mixed with the bars'. Each price has the place and its category, the serving, the price, when it applies (happy hours) and when it was last checked. Filter by category (one kind only), neighbourhood, brand, format, kind or a maximum price per litre. Open-bar packages only come with kind=open_bar, ranked by package price.
| Argument | Type | Description |
|---|---|---|
| city* | string | City slug from catalog, e.g. "salvador" |
| kind | string | Only this kind of price |
| lang | string | Language of labels, schedules and page links |
| brand | string | Brand slug from catalog, e.g. "brahma" |
| limit | integer | How many prices |
| format | string | Format type (lata, long_neck, garrafa, litrao, chopp, torre) or code (garrafa_600), from catalog |
| category | string | Only this kind of place: bar (to drink there), mercado (supermarkets and corner shops) or deposito (drinks shops), the last two to take away; its prices then come in deals. Without it, bars' prices come in deals and shops' prices (at most 5) in shops |
| neighbourhood | string | Bairro slug from list_neighbourhoods |
| max_price_per_litre | number | In BRL per litre, e.g. 15 |
{
"type": "object",
"required": [
"city"
],
"properties": {
"city": {
"type": "string",
"maxLength": 60,
"description": "City slug from catalog, e.g. \"salvador\""
},
"kind": {
"enum": [
"regular",
"happy_hour",
"promo",
"combo",
"open_bar"
],
"type": "string",
"description": "Only this kind of price"
},
"lang": {
"enum": [
"pt-BR",
"en"
],
"type": "string",
"default": "pt-BR",
"description": "Language of labels, schedules and page links"
},
"brand": {
"type": "string",
"maxLength": 60,
"description": "Brand slug from catalog, e.g. \"brahma\""
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 20,
"minimum": 1,
"description": "How many prices"
},
"format": {
"type": "string",
"maxLength": 40,
"description": "Format type (lata, long_neck, garrafa, litrao, chopp, torre) or code (garrafa_600), from catalog"
},
"category": {
"enum": [
"bar",
"mercado",
"deposito"
],
"type": "string",
"description": "Only this kind of place: bar (to drink there), mercado (supermarkets and corner shops) or deposito (drinks shops), the last two to take away; its prices then come in deals. Without it, bars' prices come in deals and shops' prices (at most 5) in shops"
},
"neighbourhood": {
"type": "string",
"maxLength": 80,
"description": "Bairro slug from list_neighbourhoods"
},
"max_price_per_litre": {
"type": "number",
"description": "In BRL per litre, e.g. 15",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}