# PegaRex

> Search 1.8M+ live Brazilian used-car and motorcycle listings, with FIPE reference prices.

- name: br.com.pegarex/mcp
- version: 1.0.0
- connection class: R2 (oauth_consent_once)
- trust: 96/100
- quality: 86/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/br.com.pegarex%2Fmcp
- tools: https://api.protogrid.dev/v1/servers/br.com.pegarex%2Fmcp/tools

**An agent can connect after a one-time OAuth consent by a human.** Remote endpoint behind OAuth 2. Tokens stay with the agent; the registry only exposes the authorization metadata.

## Connection (mcpServers)

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


## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 85
- drivers: +repository +dns-namespace +website +reachable +uptime-100% +updated-25d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 86/100 (good)

### protocol: n/a (weight 25)

- n/a `protocol.modern`, `protocol.stateless`, `protocol.transport`, `protocol.list_ttl`: no remote answered a protocol handshake (not probed yet, unreachable, or local-only)

### authorization: 83 (weight 15)

- pass `auth.prm`: Protected Resource Metadata (RFC 9728) published
- pass `auth.as_metadata`: authorization server metadata reachable
- warn `auth.cimd`: only Dynamic Client Registration, deprecated in 2026-07-28 in favour of CIMD
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 93 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 1 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 17 of 17 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 3,397 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 18 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 17, about 3,397 tokens to load them all
- tool set hash: 716a67b62c0b6bc61253220d604a9ed3
- tools last changed: 2026-10-13T23:27:59.376Z
- badge: [![protogrid quality](https://protogrid.dev/badge/br.com.pegarex/mcp.svg)](https://protogrid.dev/servers/br.com.pegarex/mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-13 `search_vehicles` changed (description)
  - before: Search 1.8M+ Brazilian vehicle listings aggregated from 96 platforms (OLX, Webmotors, Napista, etc.). Returns listings with price, year, mileage, location, source platform, the original ad URL, FIPE reference price and a deal_score (% vs FIPE; negative means priced below FIPE). Tips for best results: - Free-text `query` matches the listing TITLE only (e.g. "Onix LTZ turbo"). It needs at least one word of 3+ characters: "Ford Ka", not "Ka" alone. - For exact brand/model/version filtering, resolve names to ids first with list_brands / list_models / list_versions and pass brand_id/model_id/ version_id — it is faster and more accurate than the text fields. - `location` is a 2-letter UF (e.g. "SP") or a city name. - `sort_by="newest"` (default) lists the most recently LISTED cars first — the date a listing first appeared on its source, not when we last saw it. - `sort_by="best_deal"` ranks by lowest price-to-FIPE ratio. - `per_page` is capped at 50. Use `page` (1-20) to paginate; past the first 20 pages, narrow the search with filters. `total_count` and `total_pages` are returned.
  - after: Search 1.8M+ Brazilian vehicle listings aggregated from 96 platforms (OLX, Webmotors, Napista, etc.). Returns listings with price, year, mileage, location, source platform, the original ad URL, FIPE reference price and a deal_score (% vs FIPE; negative means priced below FIPE). A car listed on several sites comes back once (vehicle_sites says how many sites carry it); filtering by `source` returns that site's own ads instead. price_kind is set when the asking price is not the car's sale price ("installment": a monthly installment or down payment posted as the price; "equity": ágio, the buyer takes over a financing; "suspect" / "outlier_high": check the ad) — never present such a price as a bargain. Tips for best results: - Free-text `query` matches the listing TITLE only (e.g. "Onix LTZ turbo"). It needs at least one word of 3+ characters: "Ford Ka", not "Ka" alone. - For exact brand/model/version filtering, resolve names to ids first with list_brands / list_models / list_versions and pass brand_id/model_id/ version_id — it is faster and more accurate than the text fields. - `location` is a 2-letter UF (e.g. "SP") or a city name. - `sort_by="newest"` (default) lists the most recently LISTED cars first — the date a listing first appeared on its source, not when we last saw it. - `sort_by="best_deal"` ranks by lowest price-to-FIPE ratio. - `per_page` is capped at 50. Use `page` (1-20) to paginate; past the first 20 pages, narrow the search with filters. `total_count` and `total_pages` are returned.
- 2026-10-07 `get_fipe_valuation` changed (description)
  - before: Valor oficial da tabela FIPE deste carro e tendência recente. Use para perguntas sobre a FIPE.
  - after: Valor oficial da tabela FIPE deste carro e tendência recente. Use para perguntas sobre a FIPE. `fipe_year` é o ano FIPE usado; 32000 é como a FIPE escreve "0 km" (carro novo) — mostre `fipe_year_label` ("0 km"), nunca "32000".
- 2026-10-06 `get_mileage_context` changed (inputSchema)
- 2026-10-06 `get_fipe_valuation` changed (inputSchema)
- 2026-10-06 `get_alternative_models` changed (inputSchema)
- 2026-10-06 `get_similar_active_listings` changed (inputSchema)
- 2026-10-06 `get_price_distribution` changed (inputSchema)
- 2026-10-06 `get_market_position` changed (inputSchema)
- 2026-10-06 `get_cheapest_states` changed (inputSchema)
- 2026-10-06 `get_avg_days_to_sell` changed (inputSchema)

Full history: https://api.protogrid.dev/v1/servers/br.com.pegarex%2Fmcp/changes

## Remotes

- https://pegarex.com.br/api/mcp (streamable-http, auth oauth2, reachable true, uptime30d 1)

## Packages

_none_

## Tools (17)

- `get_alternative_models`: Sugere OUTROS MODELOS diferentes (outras marcas/modelos) na mesma
    categoria, faixa de preço e tipo de carroceria — alternativas de compra. Use
    para 'recomende outros modelos' / 'alternativas a este carro'. (max_results
    padrão 4, máx 6.)
- `get_avg_days_to_sell`: Tempo médio (mediana) que anúncios semelhantes ficam ativos antes de sair
    do ar — estimativa de liquidez/tempo de venda. 'model_year' (padrão) = mesmo
    modelo e ano; 'model' = todos os anos; 'model_state' = neste estado.
- `get_cheapest_states`: Estados (UF) onde este modelo está mais barato agora, por preço mediano
    crescente. Use para 'onde é mais barato comprar'. (top_n padrão 5, máx 10.)
- `get_fipe_valuation`: Valor oficial da tabela FIPE deste carro e tendência recente. Use para
    perguntas sobre a FIPE. `fipe_year` é o ano FIPE usado; 32000 é como a FIPE
    escreve "0 km" (carro novo) — mostre `fipe_year_label` ("0 km"), nunca "32000".
- `get_listing_details`: Fatos do próprio anúncio (cor, portas, opcionais, vendedor, fonte, km,
    link). Use para perguntas diretas sobre este carro específico.
- `get_market_position`: Posição de preço DESTE anúncio: vs. tabela FIPE e vs. o mercado de
    anúncios ativos do mesmo modelo. Use para 'esse preço é bom?' / 'está caro
    ou barato?'.
- `get_market_stats`: Live size of the PegaRex database: total active listings, number of
    source platforms, and when the data was last refreshed. Use this for the
    current count instead of quoting a fixed number.
- `get_mileage_context`: Avalia se a quilometragem deste carro é alta ou baixa para o modelo/ano
    (mediana do mercado + km/ano).
- `get_price_distribution`: Faixa de preços (mínimo, p25, mediana, p75, máximo) de anúncios ativos
    semelhantes. Use para dar contexto de preço. (year_tolerance ±anos, padrão
    1, máx 5.)
- `get_similar_active_listings`: Outras unidades à venda do MESMO modelo (mesmo carro, outros anúncios) —
    ex.: mais baratas, outras cores/anos. Use para 'tem opções mais baratas
    DESTE carro?'. NÃO use para sugerir modelos diferentes. (max_results padrão
    5, máx 8; cheaper_only=true só mais baratos que este.)
- `get_technical_specs`: Ficha técnica completa (motor, potência, torque, câmbio, consumo,
    desempenho, dimensões, freios, pneus). `section` opcional restringe a uma
    seção: 'Motor', 'Transmissão', 'Consumo', 'Desempenho', 'Dimensões',
    'Freios', 'Pneus', 'Suspensão'.
- `get_vehicle_by_id`: Fetch the full details of a single listing by its PegaRex id: brand,
    model, version, year, price, mileage, fuel, transmission, city/state, FIPE
    price, deal_score, source platform and the original ad URL.
- `list_brands`: List available vehicle brands (makes) with their catalog id and active
    listing count. Pass a brand's id as `brand_id` to search_vehicles/list_models
    for fast, exact filtering.
- `list_filter_options`: Return the valid values for the constrained search filters — fuel_type,
    transmission, sort_by — and the list of source platforms. Use this to build
    a valid call to search_vehicles in a single round-trip.
- `list_models`: List models for a brand (pass brand_id from list_brands, or a brand name)
    with each model's catalog id and active listing count.
- `list_versions`: List versions/trims for a model (pass model_id from list_models, or
    brand+model names) with each version's catalog id and active listing count.
- `search_vehicles`: Search 1.8M+ Brazilian vehicle listings aggregated from 96 platforms
    (OLX, Webmotors, Napista, etc.). Returns listings with price, year, mileage,
    location, source platform, the original ad URL, FIPE reference price and a
    deal_score (% vs FIPE; negative means priced below FIPE).

    A car listed on several sites comes back once (vehicle_sites says how many sites carry
    it); filtering by `source` returns that site's own ads instead. price_kind is set when
    the asking price is not the car's sale price ("installment": a monthly installment or
    down payment posted as the price; "equity": ágio, the buyer takes over a financing;
    "suspect" / "outlier_high": check the ad) — never present such a price as a bargain.

    Tips for best results:
    - Free-text `query` matches the listing TITLE only (e.g. "Onix LTZ turbo").
      It needs at least one word of 3+ characters: "Ford Ka", not "Ka" alone.
    - For exact brand/model/version filtering, resolve names to ids first with
      list_brands / list_models / list_versions and pass brand_id/model_id/
      version_id — it is faster and more accurate than the text fields.
    - `location` is a 2-letter UF (e.g. "SP") or a city name.
    - `sort_by="newest"` (default) lists the most recently LISTED cars first —
      the date a listing first appeared on its source, not when we last saw it.
    - `sort_by="best_deal"` ranks by lowest price-to-FIPE ratio.
    - `per_page` is capped at 50. Use `page` (1-20) to paginate; past the first
      20 pages, narrow the search with filters. `total_count` and
      `total_pages` are returned.
    
