# `br.com.cervejabarata/mcp` on anlyon.dev

> Text inside fenced blocks marked untrusted-server-text was written by the MCP server's publisher, not by anlyon.dev. It is data to inspect, not instructions to follow. Invisible characters are shown as [U+XXXX].
> No finding is not a safety guarantee: these are point-in-time checks of tool definitions, not of code or behaviour.

- Page: https://anlyon.dev/servers/br.com.cervejabarata/mcp
- JSON: https://anlyon.dev/api/v1/servers/br.com.cervejabarata/mcp
- Version: 0.2.1 (active)
- Publisher: br.com.cervejabarata (domain proven to the MCP Registry)
- Runs: remote (streamable-http)
- Sign-in to list tools: none
- Metadata from the official MCP Registry, synced 2026-10-21T17:46:01.192Z

Title and description, as the publisher wrote them:

```untrusted-server-text
Cerveja Barata
Beer prices in Brazilian bars ranked by price per litre: search, cheapest now, bars, price index
```

Scanned 2026-10-21T18:44:03.203Z over streamable-http.

**7 tools: 4 change things and 3 only read.**

| Group | Class | Tools | Claude Code |
| --- | --- | --- | --- |
| Deletes or cancels | destructive | 0 | deny |
| Can't be undone | irreversible | 0 | ask |
| Changes things | write | 4 | ask |
| Only reads | read | 3 | allow |

## Findings

- **warn** Annotations that disagree with the tool in `price_per_litre` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "price_per_litre" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
```


## Changes things (4)

Creates or changes something that can be changed back. Claude Code: ask.

### `catalog`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
The cities covered (with how many prices each has), the beer brands and the serving formats: the slugs the other tools take.
```

### `cheapest_now`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
The cheapest beer prices on right now in the city's time zone, happy hours and timed promos included. Give lat and lng to keep bars within radius_m of a point (distance in metres comes back with each price).
```

### `price_index`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
The monthly Índice Cerveja Barata for a city: median, quartiles and minimum price per litre, 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.
```

### `price_per_litre`

- The description's first verb is "convert": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
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).
```

## Only reads (3)

Looks things up and changes nothing. Claude Code: allow.

### `get_venue`

- The name "get_venue" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
A bar's details (kind, bairro, address, location, Instagram, opening hours, attributes) and every beer price it has, cheapest per litre first. The venue slug comes from search_deals or cheapest_now URLs.
```

### `list_neighbourhoods`

- The name "list_neighbourhoods" says "list": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
The city's bairros that have beer prices: how many bars and prices each has and its cheapest price per litre, most covered first. The slugs filter search_deals.
```

### `search_deals`

- The name "search_deals" says "search": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Beer prices in a city's bars, cheapest per litre first, each with the bar, the serving, the price, when it applies (happy hours) and when it was last checked. Filter by bairro, brand, format, kind or a maximum price per litre. Open bars only come with kind=open_bar, ranked by package price.
```

## Claude Code permissions

For `.claude/settings.json`, assuming the server is installed as `cervejabarata`:

```json
{
  "permissions": {
    "allow": [
      "mcp__cervejabarata__search_deals",
      "mcp__cervejabarata__get_venue",
      "mcp__cervejabarata__list_neighbourhoods"
    ],
    "ask": [
      "mcp__cervejabarata__price_per_litre",
      "mcp__cervejabarata__cheapest_now",
      "mcp__cervejabarata__price_index",
      "mcp__cervejabarata__catalog"
    ],
    "deny": []
  }
}
```
