# Voxcars (Portugal) (remote · www.voxcars.pt)

Used-car listings in Portugal: search, price statistics, comparables and articles.

- Trust score: 80/100 (high trust)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-02

## Components

- remote · `www.voxcars.pt`: 80/100 (this document), [markdown](https://verifymcp.io/servers/eu-voxs-voxcars-pt/api-mcp.md), [page](https://verifymcp.io/servers/eu-voxs-voxcars-pt/api-mcp)

## Channel facts

- Endpoint: `https://www.voxcars.pt/api/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.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-10-02.

- **Endpoint Security**: 80/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.
  - The HSTS (Strict-Transport-Security) header is present.
  - 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**: 52/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 1621 tokens (~270/item across 6 items; 6 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 100/100
  - No destabilizing schema changes in the last 30 days.
- **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.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 6 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 6 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 20/100
  - Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28.

## Install

### How do I install the Voxcars (Portugal) MCP server?

Voxcars (Portugal) is a hosted endpoint at https://www.voxcars.pt/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http eu-voxs-voxcars-pt 'https://www.voxcars.pt/api/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "eu-voxs-voxcars-pt": {
      "url": "https://www.voxcars.pt/api/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "eu-voxs-voxcars-pt": {
      "type": "http",
      "url": "https://www.voxcars.pt/api/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.eu-voxs-voxcars-pt]
url = "https://www.voxcars.pt/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "eu-voxs-voxcars-pt": {
      "type": "remote",
      "url": "https://www.voxcars.pt/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add eu-voxs-voxcars-pt --url 'https://www.voxcars.pt/api/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  eu-voxs-voxcars-pt:
    url: "https://www.voxcars.pt/api/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "eu-voxs-voxcars-pt": {
      "Transport": "http",
      "Url": "https://www.voxcars.pt/api/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add eu-voxs-voxcars-pt -t streamable-http -u 'https://www.voxcars.pt/api/mcp'
```

### Other

```json
{
  "mcpServers": {
    "eu-voxs-voxcars-pt": {
      "type": "http",
      "url": "https://www.voxcars.pt/api/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-10-01 (score 80, 0)

- [security] Stability: 0.97 → pass

### 2026-09-30 (score 80, +1)

No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-28 (score 79, +1)

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

### 2026-09-26 (score 78, +1)

No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-25 (score 77, 0)

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

### 2026-09-24 (score 77, +1)

No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-21 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-19 (score 75, +1)

- [security improvement] Authorization: unverified → partial
- [security improvement] Injection markers: unverified → pass
- [security improvement] HSTS header: unverified → pass
- [security improvement] Transport: fail → pass
- [functional regression] MCP protocol: unverified → fail
- [functional improvement] Endpoint reachability: unreachable → reachable
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] Stability: unverified → 0.60

## MCP tools (6)

### `search_cars` (~476 tokens)

Search current used-car listings for sale in Portugal. Use this whenever the user wants to find, compare or explore cars — by make, model, budget, mileage, fuel or district. Returns price, mileage, fuel, body and a citable listing URL, plus `total`: the exact number of listings matching the filters, which makes this tool usable to answer 'how many' questions. Listings are aggregated from stands and portals and refreshed daily; each result carries `publishedAt`. Prefer the broadest filters that answer the question and report `total` as a floor, not a census.

Input parameters:

- `bodyType` (string): Body style. SEDAN = berlina, HATCHBACK = citadino, COMBI = carrinha, CABRIO = descapotável, MINIVAN = monovolume.
- `condition` (string): Vehicle condition. new = 0 km / registered this year; semi_new = <2 years and <20 000 km; used = everything else.
- `district` (string): District or region inside the market (e.g. Lisboa, Porto, Berlin, Madrid). Matched exactly.
- `fuel` (string): Fuel type. GASOLINE = gasolina, ELECTRIC = eléctrico, HYBRID = full hybrid, PLUG_IN_HYBRID = PHEV.
- `kmMax` (number): Maximum kilometres on the odometer.
- `limit` (number): Results per page (default 10, max 20).
- `make` (string): Make slug (e.g. toyota, bmw, volkswagen). Not free text — the slug is the same in every market.
- `model` (string): Model slug (e.g. corolla, serie-3, golf). Requires `make` to disambiguate.
- `page` (number): 1-based page number. Use with `total` to walk a large result set.
- `priceMax` (number): Maximum price in the market currency. Listings with no published price are excluded by either bound.
- `priceMin` (number): Minimum price in the market currency.
- `sort` (string): Result order. Default `recent` (most recently seen first).
- `yearMax` (number): Maximum registration year.
- `yearMin` (number): Minimum registration year.

Output parameters:

- `cars` (array)
- `currency` (string)
- `hasMore` (boolean)
- `market` (string): ISO country code of this market.
- `page` (number)
- `pageSize` (number)
- `shown` (number)
- `total` (number): Exact number of listings in this market matching the filters, across all pages.

### `search_cars_by_description` (~364 tokens)

Search Portugal listings by describing the car in plain language, matched against listing text by meaning rather than keywords. Use this for wants that are not filter fields — 'a family SUV good in the snow', 'a low-mileage hybrid for the city', 'a used 4x4 to restore'. Prefer search_cars for entirely structural queries (make/model/budget); use this when the request is descriptive. Combine both by passing structural filters here too — they act as hard constraints while the description only ranks. Results are ordered by relevance, so `total` is the number matching the structural filters, not the number that fit the description.

Input parameters:

- `bodyType` (string): Body style. SEDAN = berlina, HATCHBACK = citadino, COMBI = carrinha, CABRIO = descapotável, MINIVAN = monovolume.
- `description` (string, required): What the user is looking for, in their own words. Full phrases work better than keywords. Pass the qualities here and the hard limits in the other arguments.
- `fuel` (string): Fuel type. GASOLINE = gasolina, ELECTRIC = eléctrico, HYBRID = full hybrid, PLUG_IN_HYBRID = PHEV.
- `kmMax` (number): Maximum kilometres on the odometer.
- `limit` (number): Maximum number of results (default 10, max 20).
- `make` (string): Make slug (e.g. toyota, bmw, volkswagen). Not free text — the slug is the same in every market.
- `priceMax` (number): Maximum price in the market currency. Listings with no published price are excluded by either bound.
- `yearMin` (number): Minimum registration year.

Output parameters:

- `cars` (array): Ordered by relevance to the description, most relevant first.
- `currency` (string)
- `market` (string)
- `shown` (number)
- `total` (number): Listings matching the structural filters. The description narrows the ranking, not this count.

### `get_price_stats` (~420 tokens)

Get price statistics for a slice of the Portugal used-car market: how many listings match, the median price, the p25–p75 range, the median price per kilometre and a breakdown by body type. Use this when the user asks what something costs, whether an asking price is fair, or how two makes compare — instead of listing individual cars. Takes the same filters as search_cars and describes exactly the set that tool would return, so the two never disagree. Reports medians and quartiles rather than averages, because car prices have a long right tail and a single luxury listing moves an average.

Input parameters:

- `bodyType` (string): Body style. SEDAN = berlina, HATCHBACK = citadino, COMBI = carrinha, CABRIO = descapotável, MINIVAN = monovolume.
- `condition` (string): Vehicle condition. new = 0 km / registered this year; semi_new = <2 years and <20 000 km; used = everything else.
- `district` (string): District or region inside the market (e.g. Lisboa, Porto, Berlin, Madrid). Matched exactly.
- `fuel` (string): Fuel type. GASOLINE = gasolina, ELECTRIC = eléctrico, HYBRID = full hybrid, PLUG_IN_HYBRID = PHEV.
- `kmMax` (number): Maximum kilometres on the odometer.
- `make` (string): Make slug (e.g. toyota, bmw, volkswagen). Not free text — the slug is the same in every market.
- `model` (string): Model slug (e.g. corolla, serie-3, golf). Requires `make` to disambiguate.
- `priceMax` (number): Maximum price in the market currency. Listings with no published price are excluded by either bound.
- `priceMin` (number): Minimum price in the market currency.
- `yearMax` (number): Maximum registration year.
- `yearMin` (number): Minimum registration year.

Output parameters:

- `byBodyType` (array): Up to 6 most represented body types, each with its own median.
- `count` (number): Listings matching the filters, with or without a published price.
- `currency` (string)
- `market` (string)
- `price` (object|null): Price distribution, in percentiles. null when no matching listing publishes a price. There is deliberately no min or max: listings come from third-party sources and the extremes are set by data error…
- `pricePerKmMedian` (number|null): Median price per kilometre on the odometer, in the listing currency (order of magnitude 0.05–3). Small = the car has done a lot for its price.
- `priced` (number): Subset with a published price — the base of every figure below. A large gap to `count` means many listings in this slice are 'price on request'.

### `find_similar_cars` (~199 tokens)

Given one listing, find comparable ones: same make, similar year, mileage and price band. Use this when the user likes a car but wants alternatives — 'find me something similar', 'the same but cheaper', 'what else is around this price'. Pass `maxPrice` for the cheaper case; without it, comparables are drawn from a band around the reference price. Comparability is by structure (make/model/year/km/price), not by text similarity: it answers 'is this well priced for what it is', which a keyword search cannot.

Input parameters:

- `limit` (number): Maximum number of comparables (default 6, max 20).
- `maxPrice` (number): Optional budget ceiling, in EUR. Use it for 'similar but cheaper'; it overrides the default band around the reference price.
- `slug` (string, required): Slug of the reference listing, as returned by search_cars or get_car_detail.

Output parameters:

- `cars` (array)
- `currency` (string)
- `market` (string)
- `reference` (object): The listing the comparables are measured against, echoed back for the comparison.
- `total` (number): Comparables returned.

### `get_car_detail` (~73 tokens)

Get the complete record of one used-car listing in Portugal by its slug. Use this after search_cars when the user asks about a specific car: full description, features, photos, seller, and the original source URL to cite.

Input parameters:

- `slug` (string, required): Unique listing slug, as returned by search_cars.

Output parameters:

- `body` (string|null)
- `color` (string|null)
- `condition` (string|null)
- `currency` (string): ISO 4217 code of this market.
- `description` (string|null)
- `district` (string|null)
- `doors` (number|null)
- `engineCc` (number|null)
- `features` (array)
- `fuel` (string|null)
- `km` (number|null)
- `make` (string)
- `model` (string)
- `origin` (string|null): NACIONAL = domestic; IMPORTADO = imported.
- `photos` (array): Up to 5 image URLs.
- `power_cv` (number|null): Engine power in metric horsepower (CV/PS).
- `price` (number|null): null means the source does not publish a price (on request).
- `publishedAt` (string): ISO 8601 date the listing was first seen at the source.
- `seats` (number|null)
- `sellerType` (string|null)
- `slug` (string): Stable identifier; pass to get_car_detail or find_similar_cars.
- `source` (string|null): Aggregator platform the listing came from; null when published directly with us.
- `sourceUrl` (string|null): Original listing URL at the source. Cite this alongside url.
- `title` (string)
- `transmission` (string|null)
- `url` (string): Canonical listing page on this market's domain.
- `variant` (string|null)
- `year` (number|null)

### `search_articles` (~89 tokens)

Search editorial articles about the used-car market in Portugal: buying guides, reviews, comparisons and market analysis. Use this when the user asks how something works — financing, warranty, IUC, IPO/ITV, the buying process — rather than asking for listings.

Input parameters:

- `category` (string): Article category.
- `limit` (number): Maximum number of results (default 5, max 10).

Output parameters:

- `articles` (array)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/eu-voxs-voxcars-pt/api-mcp#diagnostics

## Score history

- 2026-10-02: 80
- 2026-10-01: 80
- 2026-09-30: 80
- 2026-09-29: 79
- 2026-09-28: 79
- 2026-09-27: 78
- 2026-09-26: 78
- 2026-09-25: 77
- 2026-09-24: 77
- 2026-09-23: 76
- 2026-09-22: 76
- 2026-09-21: 76
- 2026-09-20: 75
- 2026-09-19: 75
- 2026-09-18: 74
- 2026-09-17: 74
- 2026-09-16: 73
- 2026-09-15: 73
- 2026-09-14: 72
- 2026-09-13: 72
- 2026-09-12: 71
- 2026-09-11: 71
- 2026-09-10: 70
- 2026-09-09: 70
- 2026-09-08: 69
- 2026-09-07: 69
- 2026-09-06: 69
- 2026-09-05: 68
- 2026-09-04: 68
- 2026-09-03: 67

## Common questions

### What is the Voxcars (Portugal) MCP server?

Voxcars (Portugal) is an MCP server listed in the public MCP registry as eu.voxs/voxcars-pt. Used-car listings in Portugal: search, price statistics, comparables and articles. This page covers its hosted endpoint (https://www.voxcars.pt/api/mcp).

### Is the Voxcars (Portugal) MCP server safe to use?

Voxcars (Portugal) scores 80 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Voxcars (Portugal) MCP server expose?

Voxcars (Portugal) exposes 6 tools: search_cars, search_cars_by_description, get_price_stats, find_similar_cars, get_car_detail, search_articles. Their descriptions and schemas cost roughly 1,621 tokens of context every time the server is loaded.

### Does the Voxcars (Portugal) MCP server require authentication?

No. We connected to Voxcars (Portugal) without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Voxcars (Portugal) MCP server still maintained?

Voxcars (Portugal) is still listed as active in the MCP registry. We last reached this channel on 2 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://www.voxcars.pt/api/mcp
- Website: https://www.voxcars.pt/
- Changelog RSS feed: https://verifymcp.io/servers/eu-voxs-voxcars-pt/api-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/eu-voxs-voxcars-pt/api-mcp.json
- HTML version of this page: https://verifymcp.io/servers/eu-voxs-voxcars-pt/api-mcp
