# Adoteca — Adoção de Pets no Brasil (remote · api.adoteca.com.br)

Cães e gatos para adoção no Brasil, de ONGs e protetores. Busque por cidade, porte, idade e saúde.

- Trust score: 73/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-15

## Components

- remote · `api.adoteca.com.br`: 73/100 (this document), [markdown](https://verifymcp.io/servers/br-com-adoteca-adoteca/api.md), [page](https://verifymcp.io/servers/br-com-adoteca-adoteca/api)

## Channel facts

- Endpoint: `https://api.adoteca.com.br/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `2.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-15.

- **Endpoint Security**: 74/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 79/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2773 tokens (~231/item across 12 items; 10 tools + 2 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 17/100
  - Stability observed for 5 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).
  - Supports UI / widget rendering.

## Install

### Claude

```bash
claude mcp add --transport http br-com-adoteca-adoteca https://api.adoteca.com.br/mcp
```

### Codex

```toml
[mcp_servers.br-com-adoteca-adoteca]
url = "https://api.adoteca.com.br/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "br-com-adoteca-adoteca": {
      "type": "remote",
      "url": "https://api.adoteca.com.br/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add br-com-adoteca-adoteca --url https://api.adoteca.com.br/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  br-com-adoteca-adoteca:
    url: "https://api.adoteca.com.br/mcp"
```

### Other

```json
{
  "mcpServers": {
    "br-com-adoteca-adoteca": {
      "type": "http",
      "url": "https://api.adoteca.com.br/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-15 (score 73, +1)

- [security regression] A breaking change shipped without a version bump: still 2.0.0
- [security regression] Tool “get_ngo_details” was removed
- [security regression] Tool “list_ngo_pets” was removed
- [security regression] Tool “search_ngos” was removed
- [security] The server rewrote its instructions, which are the text every model session reads
- [functional regression] Resource “ui://adoteca/ongs.html” was removed
- [functional] New resource “ui://adoteca/rescuers.html”
- [functional] New tool “get_rescuer_details”
- [functional] New tool “search_rescuers”
- [cosmetic] “search_pets” added an optional parameter “rescuer”

### 2026-08-13 (score 72, 0)

- [security regression] Tool “build_catalog_link” was removed
- [security regression] Tool “find_city” was removed
- [security regression] Tool “find_similar_pets” was removed
- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “get_city_stats” rewrote its description, which is the text the model reads
- [security] Tool “list_ngo_pets” rewrote its description, which is the text the model reads
- [security] Tool “search_pets” rewrote its description, which is the text the model reads
- [functional] Server version: 1.1.0 → 2.0.0
- [functional] New tool “get_catalog_link”
- [functional] New tool “search_cities”
- [functional] New tool “search_similar_pets”
- [cosmetic] “search_pets” added an optional parameter “name”
- [cosmetic] “list_ngo_pets” reworded the description of “include_older”
- [cosmetic] “list_ngo_pets” reworded the description of “limit”
- [cosmetic] “search_ngos” reworded the description of “limit”
- [cosmetic] “search_pets” reworded the description of “include_older”
- [cosmetic] “search_pets” reworded the description of “limit”

### 2026-08-12 (score 72, +2)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “get_pet_details” rewrote its description, which is the text the model reads
- [functional improvement] Schema quality: 254 → 211
- [functional] New resource “ui://adoteca/ongs.html”
- [functional] Server version: 1.0.0 → 1.1.0
- [functional] New tool “build_catalog_link”
- [functional] New tool “find_city”
- [functional] New tool “find_similar_pets”
- [functional] New tool “get_city_stats”
- [functional] New tool “get_ngo_details”
- [functional] New tool “list_breeds”
- [functional] New tool “list_ngo_pets”
- [functional] New tool “search_guides”
- [functional] New tool “search_ngos”
- [cosmetic] “search_pets” added an optional parameter “breed”
- [cosmetic] “search_pets” reworded the description of “limit”

### 2026-08-11 (score 70, +10)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-08-10 (score 60)

First indexed and scored.

## MCP tools (10)

### `search_pets` (~830 tokens)

Buscar pets para adoção

Busca em TODO o catálogo de cães e gatos para adoção no Brasil, por filtros como cidade, espécie, porte e idade, ou pelo nome do pet. É a busca padrão de quem quer adotar. Inclui pets já adotados: leia `status` e só ofereça os 'available'. Mostre o `adoption_url` e nunca invente pets.

Input parameters:

- `age_max_months`: Idade máxima em meses. O catálogo só distingue três faixas — filhote (até 12 meses), adulto (12 a 96) e idoso (96+) — então 6 e 12 selecionam os mesmos pets.
- `breed`: Raça: slug ('golden-retriever') ou nome em português ('pastor alemão'). A maioria do catálogo é SRD (sem raça definida). Use a listagem de raças para ver as raças com pets hoje.
- `city`: Nome do MUNICÍPIO por extenso, não do bairro nem abreviado: 'Belo Horizonte', não 'BH'. Acento é opcional. Se o nome for ambíguo, ou se nenhuma ONG tiver pets ali hoje, o erro explica o que fazer — l…
- `good_with_cats`: Somente pets que convivem bem com gatos.
- `good_with_dogs`: Somente pets que convivem bem com cães.
- `good_with_kids`: Somente pets que convivem bem com crianças.
- `include_older` (boolean): Por padrão só devolvemos pets anunciados nos últimos 90 dias, para não oferecer pets que provavelmente já foram adotados. Só ative se a pessoa pedir explicitamente anúncios antigos. Buscar por `name`…
- `limit` (integer): Quantos resultados devolver por página. Valores acima de 24 são reduzidos a 24. Buscar por `name` devolve no máximo 5: é uma lista para confirmar, não para navegar.
- `name`: Nome do pet como a pessoa escreveu ('nina', 'bebe'). Acentos e maiúsculas não importam; erros de grafia geralmente NÃO são encontrados. Leia `name_match.confidence` antes de afirmar de qual pet se tr…
- `neutered`: true devolve somente pets castrados. `false` é IGNORADO pelo mesmo motivo de `vaccinated`; leia `neutered` na ficha do pet.
- `page` (integer): Página, começando em 1.
- `rescuer`: Restringe a busca a UMA ONG ou protetor: o código curto do link ou o @ do Instagram, como devolvidos pela busca de ONGs. Combina com os outros filtros ('gatos filhotes desta ONG'). Sem ele a busca co…
- `sex`: Sexo: 'male'/'macho' ou 'female'/'femea'.
- `size`: Porte: 'small'/'pequeno', 'medium'/'medio', 'large'/'grande'.
- `special_needs`: true devolve somente pets com cuidados especiais; false devolve somente os que não têm nenhum registrado.
- `species`: Espécie: 'dog'/'cachorro' ou 'cat'/'gato'.
- `state`: Sigla de duas letras da UF (SP, MG), apenas para desambiguar `city`. Busca só por estado NÃO é suportada: sempre envie `city` junto.
- `vaccinated`: true devolve somente pets vacinados. `false` é IGNORADO: a maioria dos anúncios não informa vacinação, então filtrar por 'não vacinado' esconderia quase todo o catálogo. Para saber de um pet específi…

Output parameters:

- `result`

### `get_pet_details` (~98 tokens)

Ver ficha completa do pet

Ficha completa de um pet: saúde, cuidados, convivência e como falar com a ONG. Aceita o código curto do link ou o id devolvido pela busca de pets. Leia `status` antes de oferecer, e o `status` de cada `health_conditions` antes de falar da saúde dele.

Input parameters:

- `pet_ref` (string, required): Código curto do pet (ex.: 'ab12cd') ou o identificador da ficha.

Output parameters:

- `result`

### `search_similar_pets` (~141 tokens)

Ver pets parecidos

Pets parecidos com UM pet específico, da mesma espécie e perto dele — não é a busca geral do catálogo. Use quando o pet que a pessoa queria já não estiver disponível. Aceita o código curto do link. Mostre o `adoption_url` e nunca invente pets. `total` é o tamanho desta lista; não há página 2.

Input parameters:

- `limit` (integer): Quantos pets parecidos devolver, no máximo 24. Esta lista não tem páginas: não existe `page` aqui.
- `pet_ref` (string, required): Código curto do pet (ex.: 'ab12cd') ou o identificador da ficha.

Output parameters:

- `result`

### `search_rescuers` (~217 tokens)

Buscar ONGs e protetores na cidade

Lista ONGs e protetores com pets anunciados AGORA em uma cidade, com o link da página de cada um. Não é um registro completo das ONGs de lá, e NÃO diz se alguma consegue resgatar ou receber um animal — nunca afirme que uma ONG tem vaga ou pode acolher.

Input parameters:

- `city` (string, required): Nome do MUNICÍPIO por extenso, ou o slug devolvido pela resolução de cidade. Obrigatório: a resposta é sempre de uma cidade. Se o nome for ambíguo ou ninguém tiver pets ali hoje, o erro diz o que faz…
- `limit` (integer): Quantos resultados devolver por página. Valores acima de 24 são reduzidos a 24. Buscar por `name` devolve no máximo 5: é uma lista para confirmar, não para navegar.
- `page` (integer): Página, começando em 1.
- `state`: Sigla de duas letras da UF (SP, MG), se a pessoa informou. Opcional.

Output parameters:

- `result`

### `get_rescuer_details` (~121 tokens)

Ver ficha da ONG ou protetor

Ficha de uma ONG ou protetor: cidades atendidas, contatos, site e página de doação. Aceita o código curto do link ou o @ do Instagram, devolvidos pela busca de ONGs. Para doações, mostre `donation_url` ou `profile_url` — nunca peça nem repasse chave PIX.

Input parameters:

- `rescuer_ref` (string, required): Código curto da ONG (ex.: 'ab12cd', o mesmo de adoteca.com.br/o/{code}) ou o @ do Instagram dela, sem arroba.

Output parameters:

- `result`

### `search_cities` (~129 tokens)

Encontrar a cidade no catálogo

Converte o nome de uma cidade (com ou sem acento, com erro de grafia) no slug oficial do catálogo. Use antes das outras buscas quando a pessoa citar uma cidade. Se `ambiguous` for true, escolha pelo contexto ou pergunte; nunca chute. Para os números da cidade, use as estatísticas.

Input parameters:

- `city` (string, required): Nome do município como a pessoa escreveu, ex.: 'sao paulo', 'Cachoeirinha'.
- `state`: Sigla de duas letras da UF (SP, MG), se a pessoa informou. Opcional.

Output parameters:

- `result`

### `get_city_stats` (~159 tokens)

Ver números do catálogo na cidade

Números do catálogo em UMA cidade já resolvida: quantos pets, por espécie, porte e faixa etária, entradas nas últimas 24h, adoções, quantas ONGs e as raças mais comuns. Use para 'quantos pets tem em X?'. Não devolve pets nem resolve o nome da cidade.

Input parameters:

- `city` (string, required): Nome do MUNICÍPIO por extenso, ou o slug devolvido pela resolução de cidade. Obrigatório: a resposta é sempre de uma cidade. Se o nome for ambíguo ou ninguém tiver pets ali hoje, o erro diz o que faz…
- `state`: Sigla de duas letras da UF (SP, MG), se a pessoa informou. Opcional.

Output parameters:

- `result`

### `list_breeds` (~96 tokens)

Listar raças com pets

Raças com pets no catálogo hoje, mais comuns primeiro, com o slug para enviar em `breed`. Use antes de filtrar por raça e quando perguntarem quais raças existem. A maioria do catálogo é SRD (sem raça definida): ofereça SRD em vez de dizer que não há pets.

Input parameters:

- `species`: Espécie: 'dog'/'cachorro' ou 'cat'/'gato'.

Output parameters:

- `result`

### `search_guides` (~135 tokens)

Consultar guias da Adoteca

Guias da Adoteca sobre adoção, saúde e cuidados especiais (FIV, FeLV, leishmaniose, pet surdo, custos) e ajuda sobre como o site funciona. Use para dúvidas que não são busca de pets. Responda com base no `summary`, mostre o `url` e, se a lista vier vazia, diga que não temos guia sobre isso.

Input parameters:

- `query` (string, required): A dúvida da pessoa, como ela escreveu, ex.: 'meu gato tem FIV' ou 'quanto custa ter um cachorro'. Acentos e erros de grafia são tolerados.

Output parameters:

- `result`

### `get_catalog_link` (~620 tokens)

Montar link do catálogo

Monta o link do catálogo com os filtros pedidos e confirma que existem pets neles. Use quando a pessoa quiser ver a lista no site. Se `url` vier null, não há link: leia `note` e ofereça tirar um filtro. Nunca escreva um link de catálogo à mão.

Input parameters:

- `age`: Faixa etária, uma só: 'filhote' (até 12 meses), 'adulto' (12 a 96) ou 'idoso' (96+). São as três faixas que o catálogo distingue.
- `breed`: Raça: slug ('golden-retriever') ou nome em português ('pastor alemão'). A maioria do catálogo é SRD (sem raça definida). Use a listagem de raças para ver as raças com pets hoje.
- `city`: Nome do MUNICÍPIO por extenso, não do bairro nem abreviado: 'Belo Horizonte', não 'BH'. Acento é opcional. Se o nome for ambíguo, ou se nenhuma ONG tiver pets ali hoje, o erro explica o que fazer — l…
- `good_with_cats`: Somente pets que convivem bem com gatos.
- `good_with_dogs`: Somente pets que convivem bem com cães.
- `good_with_kids`: Somente pets que convivem bem com crianças.
- `neutered`: true devolve somente pets castrados. `false` é IGNORADO pelo mesmo motivo de `vaccinated`; leia `neutered` na ficha do pet.
- `sex`: Sexo: 'male'/'macho' ou 'female'/'femea'.
- `size`: Portes, um ou mais: 'small'/'pequeno', 'medium'/'medio', 'large'/'grande'. Envie os dois quando a pessoa aceitar os dois.
- `sort`: Ordem da página: 'recentes' (padrão, os anúncios mais novos primeiro) ou 'disponiveis' (os que ainda estão para adoção primeiro, empurrando os já adotados para o fim).
- `special_needs`: true monta o link só com pets com cuidados especiais. `false` é IGNORADO: o catálogo não tem o filtro inverso.
- `species`: Espécie: 'dog'/'cachorro' ou 'cat'/'gato'.
- `state`: Sigla de duas letras da UF (SP, MG), apenas para desambiguar `city`. Busca só por estado NÃO é suportada: sempre envie `city` junto.
- `vaccinated`: true devolve somente pets vacinados. `false` é IGNORADO: a maioria dos anúncios não informa vacinação, então filtrar por 'não vacinado' esconderia quase todo o catálogo. Para saber de um pet específi…

Output parameters:

- `result`

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/br-com-adoteca-adoteca/api#diagnostics

## Score history

- 2026-08-15: 73
- 2026-08-14: 72
- 2026-08-13: 72
- 2026-08-12: 72
- 2026-08-11: 70
- 2026-08-10: 60

## Links

- Remote endpoint: https://api.adoteca.com.br/mcp
- Repository: https://github.com/adoteca/adoteca
- Website: https://www.adoteca.com.br/
- Changelog RSS feed: https://verifymcp.io/servers/br-com-adoteca-adoteca/api.xml
- Changelog JSON feed: https://verifymcp.io/servers/br-com-adoteca-adoteca/api.json
- HTML version of this page: https://verifymcp.io/servers/br-com-adoteca-adoteca/api
