# KentekenKompas (remote · api.kentekenkompas.nl)

Read-only Dutch vehicle knowledge, comparisons, terminology and cited sources for AI clients.

- Trust score: 76/100 (medium)
- Change this week: +1
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-07

## Components

- remote · `api.kentekenkompas.nl`: 76/100 (this document), [markdown](https://verifymcp.io/servers/nl-kentekenkompas-vehicle-knowledge/api.md), [page](https://verifymcp.io/servers/nl-kentekenkompas-vehicle-knowledge/api)

## Channel facts

- Endpoint: `https://api.kentekenkompas.nl/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.2`

## 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-07.

- **Endpoint Security**: 63/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 enforcement could not be verified: the plaintext port answered with HTTP 403, which proves neither a plaintext path nor enforcement.
  - 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**: 50/100
  - 0% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 1614 tokens (~100/item across 16 items; 7 tools + 9 resources), lean.
  - 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 7 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 9 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the KentekenKompas MCP server?

KentekenKompas is a hosted endpoint at https://api.kentekenkompas.nl/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 nl-kentekenkompas-vehicle-knowledge 'https://api.kentekenkompas.nl/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "nl-kentekenkompas-vehicle-knowledge": {
      "url": "https://api.kentekenkompas.nl/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "nl-kentekenkompas-vehicle-knowledge": {
      "type": "http",
      "url": "https://api.kentekenkompas.nl/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.nl-kentekenkompas-vehicle-knowledge]
url = "https://api.kentekenkompas.nl/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "nl-kentekenkompas-vehicle-knowledge": {
      "type": "remote",
      "url": "https://api.kentekenkompas.nl/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add nl-kentekenkompas-vehicle-knowledge --url 'https://api.kentekenkompas.nl/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  nl-kentekenkompas-vehicle-knowledge:
    url: "https://api.kentekenkompas.nl/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "nl-kentekenkompas-vehicle-knowledge": {
      "Transport": "http",
      "Url": "https://api.kentekenkompas.nl/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add nl-kentekenkompas-vehicle-knowledge -t streamable-http -u 'https://api.kentekenkompas.nl/mcp'
```

### Other

```json
{
  "mcpServers": {
    "nl-kentekenkompas-vehicle-knowledge": {
      "type": "http",
      "url": "https://api.kentekenkompas.nl/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-02 (score 76, 0)

- [security] Stability: 0.97 → pass

### 2026-10-01 (score 76, +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-29 (score 75, +1)

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

### 2026-09-28 (score 74, 0)

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

### 2026-09-27 (score 74, +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 73, +1)

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

### 2026-09-24 (score 72, 0)

- [security] Tool “compare_vehicle_models” rewrote its description, which is the text the model reads

### 2026-09-22 (score 72, +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.

## MCP tools (7)

### `search_vehicle_knowledge` (~204 tokens)

Discover public models, existing answers, terms and provenance from free text when no canonical key is known. Use get_model_context, get_answer_context, explain_dutch_vehicle_term or get_source_context for known IDs; compare_vehicle_models for a known model pair; get_fuel_price_context for fuel-source status. Results use deterministic lexical/intent relevance, never AI confidence; no supported match returns data=[] with limitations. Public read-only access; no knowledge writes. Calls consume rate limits.

Input parameters:

- `limit` (integer): Optional maximum result count; integer 1â€“10 inclusive, default 5. Fewer or zero results may be returned; this MCP limit differs from other transports.
- `query` (string, required): Required free-text query, 1â€“200 raw characters, no ASCII control characters. Use at least two searchable characters after accent/case/punctuation normalization. Dutch terms and model names search t…

Output parameters:

- `citationUrl` (string): Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity.
- `coverage` (object): Available coverage metadata; incomplete or absent coverage is not an assurance of complete knowledge. Preserve limitations.
- `data` (array): Tool-specific successful result. Search returns an array (possibly empty); exact tools return the requested record or projection. Tool errors use a separate isError envelope.
- `evidence` (array): Exposed evidence references with classifications and source IDs. May be empty (including search); not proof that knowledge has no provenance.
- `freshness` (object): Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.
- `knowledgeVersion` (string): Active knowledge release identifier from its manifest; not the API contract or MCP/registry server version.
- `limitations` (array): Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage.
- `schemaVersion` (string): Transport envelope contract kk-api-v1; distinct from the nested knowledge schema, knowledgeVersion and server version.
- `sources` (array): Resolved public SOURCE/SOURCE_GROUP records supporting this result. Search may leave this empty; use get_source_context for a discovered source ID.

### `get_model_context` (~203 tokens)

Read model-level knowledge for an exact modelKey; optionally include its existing Direct Answers. Use search_vehicle_knowledge to discover a key, get_answer_context for a known answerId, or compare_vehicle_models for a known pair. Not a license-plate lookup or individual-car assessment. Unknown key returns MODEL_NOT_FOUND; incomplete coverage remains a successful result with coverage and limitations. Public read-only access; no knowledge writes. Calls consume rate limits.

Input parameters:

- `includeAnswers` (boolean): Optional, default false. When true, include the model's existing Direct Answers in data.answers and merge their evidence, sources and limitations. Does not generate answers or change the model's fres…
- `modelKey` (string, required): Canonical model identifier from search results or kk://models, e.g. volkswagen-golf. 1â€“200 characters; lowercase ASCII letters/digits separated by single hyphens. Exact match; no aliases, spaces, u…

Output parameters:

- `citationUrl` (string): Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity.
- `coverage` (object): Available coverage metadata; incomplete or absent coverage is not an assurance of complete knowledge. Preserve limitations.
- `data` (object): Tool-specific successful result. Search returns an array (possibly empty); exact tools return the requested record or projection. Tool errors use a separate isError envelope.
- `evidence` (array): Exposed evidence references with classifications and source IDs. May be empty (including search); not proof that knowledge has no provenance.
- `freshness` (object): Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.
- `knowledgeVersion` (string): Active knowledge release identifier from its manifest; not the API contract or MCP/registry server version.
- `limitations` (array): Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage.
- `schemaVersion` (string): Transport envelope contract kk-api-v1; distinct from the nested knowledge schema, knowledgeVersion and server version.
- `sources` (array): Resolved public SOURCE/SOURCE_GROUP records supporting this result. Search may leave this empty; use get_source_context for a discovered source ID.

### `get_answer_context` (~158 tokens)

Read one existing Direct Answer by exact answerId; no text generation. Use search_vehicle_knowledge when the ID is unknown, get_model_context with includeAnswers=true for a model's answers, or explain_dutch_vehicle_term for a term key. Do not pass a free-text question as an ID. Unknown ID returns ANSWER_NOT_FOUND; preserve the returned evidence and limitations. Public read-only access; no knowledge writes. Calls consume rate limits.

Input parameters:

- `answerId` (string, required): Stable existing Direct Answer identifier, 1â€“200 characters, matching answer.<lowercase-model-or-topic>.<lowercase-intent> (ASCII letters, digits and hyphens in both parts). Copy the full ID from di…

Output parameters:

- `citationUrl` (string): Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity.
- `coverage` (object): Available coverage metadata; incomplete or absent coverage is not an assurance of complete knowledge. Preserve limitations.
- `data` (object): Tool-specific successful result. Search returns an array (possibly empty); exact tools return the requested record or projection. Tool errors use a separate isError envelope.
- `evidence` (array): Exposed evidence references with classifications and source IDs. May be empty (including search); not proof that knowledge has no provenance.
- `freshness` (object): Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.
- `knowledgeVersion` (string): Active knowledge release identifier from its manifest; not the API contract or MCP/registry server version.
- `limitations` (array): Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage.
- `schemaVersion` (string): Transport envelope contract kk-api-v1; distinct from the nested knowledge schema, knowledgeVersion and server version.
- `sources` (array): Resolved public SOURCE/SOURCE_GROUP records supporting this result. Search may leave this empty; use get_source_context for a discovered source ID.

### `compare_vehicle_models` (~255 tokens)

Read one stored sourceModelKey-to-targetModelKey relation, not a generated comparison. Returns model keys, relationType/meaning and rationale, with evidence, sources and citations. Preserve classification and limitations; do not strengthen the stored claims. Only DIRECT_ALTERNATIVE denotes a direct alternative. Existing models need not have a relation; the reverse direction is a separate lookup. Use get_model_context for one model and its peers, or search_vehicle_knowledge to discover keys. Unknown model returns MODEL_NOT_FOUND; self/missing relation returns COMPARISON_NOT_AVAILABLE. Public read-only access; no knowledge writes. Calls consume rate limits.

Input parameters:

- `sourceModelKey` (string, required): Required exact canonical model key whose stored outgoing peer relation is read. 1–200 lowercase ASCII letters/digits in single-hyphen-separated groups, e.g. volkswagen-golf; exact match, direction ma…
- `targetModelKey` (string, required): Required exact canonical key of the target in the source model's stored peers. 1–200 lowercase ASCII letters/digits in single-hyphen-separated groups; exact match, must differ from sourceModelKey. Ex…

Output parameters:

- `citationUrl` (string): Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity.
- `coverage` (object): Available coverage metadata; incomplete or absent coverage is not an assurance of complete knowledge. Preserve limitations.
- `data` (object): Tool-specific successful result. Search returns an array (possibly empty); exact tools return the requested record or projection. Tool errors use a separate isError envelope.
- `evidence` (array): Exposed evidence references with classifications and source IDs. May be empty (including search); not proof that knowledge has no provenance.
- `freshness` (object): Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.
- `knowledgeVersion` (string): Active knowledge release identifier from its manifest; not the API contract or MCP/registry server version.
- `limitations` (array): Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage.
- `schemaVersion` (string): Transport envelope contract kk-api-v1; distinct from the nested knowledge schema, knowledgeVersion and server version.
- `sources` (array): Resolved public SOURCE/SOURCE_GROUP records supporting this result. Search may leave this empty; use get_source_context for a discovered source ID.

### `explain_dutch_vehicle_term` (~153 tokens)

Read one existing Dutch vehicle definition by lowercase term slug or term.<slug>. Use search_vehicle_knowledge for free text or an unknown key, get_answer_context for a known answerId, or get_model_context for model-specific context. No fuzzy definition generation. Unknown valid key returns TERM_NOT_FOUND; uppercase/spaced inputs fail validation before normalization. Public read-only access; no knowledge writes. Calls consume rate limits.

Input parameters:

- `termKey` (string, required): Existing lowercase term slug or the same slug prefixed with term., e.g. apk or term.apk. 1â€“200 characters; ASCII letters/digits with single hyphen separators. No spaces, uppercase or fuzzy matching…

Output parameters:

- `citationUrl` (string): Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity.
- `coverage` (object): Available coverage metadata; incomplete or absent coverage is not an assurance of complete knowledge. Preserve limitations.
- `data` (object): Tool-specific successful result. Search returns an array (possibly empty); exact tools return the requested record or projection. Tool errors use a separate isError envelope.
- `evidence` (array): Exposed evidence references with classifications and source IDs. May be empty (including search); not proof that knowledge has no provenance.
- `freshness` (object): Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.
- `knowledgeVersion` (string): Active knowledge release identifier from its manifest; not the API contract or MCP/registry server version.
- `limitations` (array): Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage.
- `schemaVersion` (string): Transport envelope contract kk-api-v1; distinct from the nested knowledge schema, knowledgeVersion and server version.
- `sources` (array): Resolved public SOURCE/SOURCE_GROUP records supporting this result. Search may leave this empty; use get_source_context for a discovered source ID.

### `get_source_context` (~145 tokens)

Read one public SOURCE or SOURCE_GROUP by exact opaque sourceId to inspect provenance, freshness and limitations. Use search_vehicle_knowledge to discover sources; get_model_context or get_answer_context retrieves the knowledge a source supports. Not a search by URL or source label. Never split composite-looking IDs. Unknown ID returns SOURCE_NOT_FOUND. Public read-only access; no knowledge writes. Calls consume rate limits.

Input parameters:

- `sourceId` (string, required): Opaque public SOURCE or SOURCE_GROUP ID, 1â€“200 characters; lowercase ASCII letters/digits with dot, colon or hyphen separators as specified by the pattern. Copy exactly from sources or search; neve…

Output parameters:

- `citationUrl` (string): Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity.
- `coverage` (object): Available coverage metadata; incomplete or absent coverage is not an assurance of complete knowledge. Preserve limitations.
- `data`: Tool-specific successful result. Search returns an array (possibly empty); exact tools return the requested record or projection. Tool errors use a separate isError envelope.
- `evidence` (array): Exposed evidence references with classifications and source IDs. May be empty (including search); not proof that knowledge has no provenance.
- `freshness` (object): Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.
- `knowledgeVersion` (string): Active knowledge release identifier from its manifest; not the API contract or MCP/registry server version.
- `limitations` (array): Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage.
- `schemaVersion` (string): Transport envelope contract kk-api-v1; distinct from the nested knowledge schema, knowledgeVersion and server version.
- `sources` (array): Resolved public SOURCE/SOURCE_GROUP records supporting this result. Search may leave this empty; use get_source_context for a discovered source ID.

### `get_fuel_price_context` (~96 tokens)

Read the existing fuel-price provenance/status, not current pump prices or a vehicle's consumption. No arguments. Currently succeeds with SOURCE_REQUIRED_AT_RUNTIME and prices=[] because no validated current-price adapter is configured. Use get_source_context for an exact source ID or search_vehicle_knowledge for broader fuel knowledge. Never treat empty prices as zero or invent a current price. Public read-only access; no knowledge writes. Calls consume rate limits.

Output parameters:

- `citationUrl` (string): Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity.
- `coverage` (object): Available coverage metadata; incomplete or absent coverage is not an assurance of complete knowledge. Preserve limitations.
- `data` (object): Tool-specific successful result. Search returns an array (possibly empty); exact tools return the requested record or projection. Tool errors use a separate isError envelope.
- `evidence` (array): Exposed evidence references with classifications and source IDs. May be empty (including search); not proof that knowledge has no provenance.
- `freshness` (object): Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.
- `knowledgeVersion` (string): Active knowledge release identifier from its manifest; not the API contract or MCP/registry server version.
- `limitations` (array): Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage.
- `schemaVersion` (string): Transport envelope contract kk-api-v1; distinct from the nested knowledge schema, knowledgeVersion and server version.
- `sources` (array): Resolved public SOURCE/SOURCE_GROUP records supporting this result. Search may leave this empty; use get_source_context for a discovered source ID.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/nl-kentekenkompas-vehicle-knowledge/api#diagnostics

## Score history

- 2026-10-07: 76
- 2026-10-04: 76
- 2026-10-03: 76
- 2026-10-02: 76
- 2026-10-01: 76
- 2026-09-30: 75
- 2026-09-29: 75
- 2026-09-28: 74
- 2026-09-27: 74
- 2026-09-26: 73
- 2026-09-25: 73
- 2026-09-24: 72
- 2026-09-23: 72
- 2026-09-22: 72
- 2026-09-21: 71
- 2026-09-20: 66
- 2026-09-19: 66
- 2026-09-18: 66
- 2026-09-17: 65
- 2026-09-16: 65
- 2026-09-15: 64
- 2026-09-14: 64
- 2026-09-13: 63
- 2026-09-12: 63
- 2026-09-11: 62
- 2026-09-10: 62
- 2026-09-09: 61
- 2026-09-08: 61
- 2026-09-07: 60
- 2026-09-06: 60

## Common questions

### What is the KentekenKompas MCP server?

KentekenKompas is an MCP server listed in the public MCP registry as nl.kentekenkompas/vehicle-knowledge. Read-only Dutch vehicle knowledge, comparisons, terminology and cited sources for AI clients. This page covers its hosted endpoint (https://api.kentekenkompas.nl/mcp).

### Is the KentekenKompas MCP server safe to use?

KentekenKompas scores 76 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 KentekenKompas MCP server expose?

KentekenKompas exposes 7 tools: search_vehicle_knowledge, get_model_context, get_answer_context, compare_vehicle_models, explain_dutch_vehicle_term, and 2 more. Their descriptions and schemas cost roughly 1,214 tokens of context every time the server is loaded.

### Does the KentekenKompas MCP server require authentication?

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

### Is the KentekenKompas MCP server still maintained?

KentekenKompas is still listed as active in the MCP registry. We last reached this channel on 7 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://api.kentekenkompas.nl/mcp
- Changelog RSS feed: https://verifymcp.io/servers/nl-kentekenkompas-vehicle-knowledge/api.xml
- Changelog JSON feed: https://verifymcp.io/servers/nl-kentekenkompas-vehicle-knowledge/api.json
- HTML version of this page: https://verifymcp.io/servers/nl-kentekenkompas-vehicle-knowledge/api
