KentekenKompas MCP
Read-only Dutch vehicle knowledge, comparisons, terminology and cited sources for AI clients. It is not RDW and does not claim official RDW affiliation. Missing or delayed data is a limitation, not proof of a good or bad vehicle.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://api.kentekenkompas.nl/mcpWhat its tools do
7 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to kentekenkompas.nl ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Search deterministically in vehicle knowledge
- Retrieve model and Direct Answer context
- Read existing model relations and terms
- Provide provenance of an exact SOURCE or SOURCE_GROUP
Source and maintenance
Protocol and capabilities
- Server
- KentekenKompas Public Knowledge MCP 1.0.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 7 advertised
- Resources
- 9 advertised
- Resource templates
- 6 advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": false
},
"resources": {
"subscribe": false,
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
7 advertised
search_vehicle_knowledge
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.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"default": 5,
"maximum": 10,
"minimum": 1,
"description": "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": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "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 the existing index using lexical tokens and intent rules; no semantic generation."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"schemaVersion",
"knowledgeVersion",
"data",
"evidence",
"sources",
"freshness",
"limitations"
],
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type",
"title",
"answerPreview",
"matchedTerms",
"matchedIntent",
"matchReasons",
"classification",
"freshnessSummary",
"relevanceScore",
"relevanceTier",
"citationUrl"
],
"properties": {
"id": {
"type": "string",
"description": "Stable result identifier. Route by type: model to get_model_context, answer to get_answer_context, term to explain_dutch_vehicle_term, source to get_source_context. Topic IDs are not automatically answer IDs."
},
"type": {
"type": "string",
"description": "Result kind (currently model, answer, term, topic or supplemental source); determines how its identifier can be used."
},
"title": {
"type": "string",
"description": "Human-readable title of the matched existing knowledge record."
},
"modelKey": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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, uppercase, URL or license plate."
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"matchReasons": {
"type": "array",
"items": {
"type": "string"
},
"description": "Deterministic matching/boost reason codes explaining ranking, not evidence for factual claims."
},
"matchedTerms": {
"type": "array",
"items": {
"type": "string"
},
"description": "Normalized lexical query tokens found in the index record; may be empty for fixed intent-based supplemental results."
},
"answerPreview": {
"type": "string",
"description": "Existing short preview or fixed contract explanation; not a generated answer or a replacement for full context."
},
"matchedIntent": {
"type": "string",
"description": "Deterministic query-intent label used by search rules, not inferred user certainty."
},
"relevanceTier": {
"enum": [
"EXACT",
"STRONG",
"RELATED"
],
"type": "string",
"description": "Score band: EXACT >=140, STRONG >=55 and <140, RELATED <55. EXACT is a score label and does not guarantee a literal exact match."
},
"classification": {
"enum": [
"OFFICIAL",
"DERIVED",
"EDITORIAL"
],
"type": "string",
"description": "Knowledge classification: OFFICIAL, reproducibly DERIVED, or EDITORIAL. Preserve this label; it is not a confidence score."
},
"relevanceScore": {
"type": "number",
"description": "Deterministic lexical/intent ranking score, not AI confidence, truth probability or source quality. Used to sort this query's results; not a probability or fixed 0–1 scale."
},
"freshnessSummary": {
"type": "object",
"description": "Search-level freshness metadata/status. NOT_EXPOSED_IN_SEARCH_INDEX means dates are not exposed there; fetch exact context when available.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"additionalProperties": false
},
"maxItems": 10,
"description": "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."
},
"sources": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"required": [
"sourceId",
"kind",
"visibility",
"label",
"category",
"citationUrl",
"sourceUrl",
"freshness",
"limitations"
],
"properties": {
"kind": {
"type": "string",
"const": "SOURCE",
"description": "Discriminator: SOURCE is one public source; SOURCE_GROUP is an explicit grouped provenance record."
},
"label": {
"type": "string",
"description": "Human-readable label supplied by the knowledge record."
},
"category": {
"enum": [
"OFFICIAL_PRIMARY_DATA",
"OFFICIAL_GUIDANCE",
"PRIMARY_NON_GOVERNMENT",
"REPUTABLE_EDITORIAL",
"BACKGROUND_REFERENCE",
"KENTEKENKOMPAS_DERIVED",
"KENTEKENKOMPAS_EDITORIAL"
],
"type": "string",
"description": "Detailed provenance category. Keep it distinct from the coarser OFFICIAL/DERIVED/EDITORIAL classification."
},
"sourceId": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"freshness": {
"type": "object",
"description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"sourceUrl": {
"type": "string",
"format": "uri",
"description": "Original public source URL for a SOURCE record; distinct from the KentekenKompas explanation URL."
},
"visibility": {
"type": "string",
"const": "PUBLIC",
"description": "PUBLIC marks provenance permitted in the public knowledge contract."
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"limitations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"sourceId",
"kind",
"visibility",
"label",
"category",
"citationUrl",
"description",
"memberSourceIds",
"memberOrderMeaning",
"citationUrls",
"freshness",
"limitations"
],
"properties": {
"kind": {
"type": "string",
"const": "SOURCE_GROUP",
"description": "Discriminator: SOURCE is one public source; SOURCE_GROUP is an explicit grouped provenance record."
},
"label": {
"type": "string",
"description": "Human-readable label supplied by the knowledge record."
},
"category": {
"enum": [
"OFFICIAL_PRIMARY_DATA",
"OFFICIAL_GUIDANCE",
"PRIMARY_NON_GOVERNMENT",
"REPUTABLE_EDITORIAL",
"BACKGROUND_REFERENCE",
"KENTEKENKOMPAS_DERIVED",
"KENTEKENKOMPAS_EDITORIAL"
],
"type": "string",
"description": "Detailed provenance category. Keep it distinct from the coarser OFFICIAL/DERIVED/EDITORIAL classification."
},
"sourceId": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"freshness": {
"type": "object",
"description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"visibility": {
"type": "string",
"const": "PUBLIC",
"description": "PUBLIC marks provenance permitted in the public knowledge contract."
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"description": {
"type": "string",
"description": "Public explanation of the source group's purpose and composition."
},
"limitations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
},
"citationUrls": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"description": "Human-readable citation links associated with the group; not its members' sourceUrl fields."
},
"memberSourceIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"minItems": 1,
"description": "Explicit, non-empty list of source IDs belonging to this group; use these rather than splitting the group's opaque sourceId."
},
"memberOrderMeaning": {
"type": "string",
"description": "Explanation of whether/how member ordering matters; do not infer ranking or chronology."
}
},
"additionalProperties": false
}
]
},
"description": "Resolved public SOURCE/SOURCE_GROUP records supporting this result. Search may leave this empty; use get_source_context for a discovered source ID."
},
"coverage": {
"type": "object",
"description": "Available coverage metadata; incomplete or absent coverage is not an assurance of complete knowledge. Preserve limitations.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"evidence": {
"type": "array",
"items": {
"type": "object",
"required": [
"evidenceId",
"classification",
"sourceIds"
],
"properties": {
"sourceIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"description": "Opaque IDs of supporting public sources or source groups. An empty array means no references exposed here, not proof of completeness."
},
"evidenceId": {
"type": "string",
"description": "Identifier of a cited evidence reference; resolve its sourceIds for provenance, not as a confidence score."
},
"classification": {
"enum": [
"OFFICIAL",
"DERIVED",
"EDITORIAL"
],
"type": "string",
"description": "Knowledge classification: OFFICIAL, reproducibly DERIVED, or EDITORIAL. Preserve this label; it is not a confidence score."
}
},
"additionalProperties": false
},
"description": "Exposed evidence references with classifications and source IDs. May be empty (including search); not proof that knowledge has no provenance."
},
"freshness": {
"type": "object",
"required": [
"generatedAt"
],
"properties": {
"dataAsOf": {
"type": "string",
"description": "Optional date/time to which the underlying data relates; absent means not supplied, not current."
},
"generatedAt": {
"type": "string",
"description": "Timestamp of generation. At envelope level this is the active manifest's generatedAt, not a source refresh or publication date."
},
"sourceCheckedAt": {
"type": "string",
"description": "Optional date/time when the source was checked, not necessarily the date the data describes."
},
"editorialReviewedAt": {
"type": "string",
"description": "Optional date/time of editorial review; does not certify that all underlying data was refreshed."
}
},
"description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
"additionalProperties": false
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"limitations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
},
"schemaVersion": {
"type": "string",
"const": "kk-api-v1",
"description": "Transport envelope contract kk-api-v1; distinct from the nested knowledge schema, knowledgeVersion and server version."
},
"knowledgeVersion": {
"type": "string",
"description": "Active knowledge release identifier from its manifest; not the API contract or MCP/registry server version."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_model_context
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.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"modelKey"
],
"properties": {
"modelKey": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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, uppercase, URL or license plate."
},
"includeAnswers": {
"type": "boolean",
"default": false,
"description": "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 freshness."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"schemaVersion",
"knowledgeVersion",
"data",
"evidence",
"sources",
"freshness",
"limitations"
],
"properties": {
"data": {
"type": "object",
"required": [
"model",
"classification"
],
"properties": {
"model": {
"type": "object",
"required": [
"schemaVersion",
"modelKey",
"brand",
"model",
"canonicalRoute",
"citationUrl",
"vehicleRole",
"bodyProfile",
"configurationProfile",
"vehicleFormContext",
"namedVariants",
"powertrainProfile",
"useFit",
"insights",
"buyerActions",
"riskQuestion",
"peers",
"directAnswerId",
"editorialIndicator",
"evidenceReferences",
"sourceIds",
"freshness",
"coverage",
"limitations"
],
"properties": {
"brand": {
"type": "string",
"description": "Brand label of the canonical model, not an individual vehicle registration."
},
"model": {
"type": "string",
"description": "Canonical model label or model-level knowledge object, as specified by the field's schema."
},
"peers": {
"type": "array",
"items": {},
"description": "Existing outgoing model relations. Relation type matters; not every peer is a direct alternative. Use compare_vehicle_models for a known pair."
},
"useFit": {
"type": "object",
"description": "Published use-fit context; editorial interpretation rather than a personal purchase recommendation.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"coverage": {
"type": "object",
"description": "Available coverage metadata; incomplete or absent coverage is not an assurance of complete knowledge. Preserve limitations.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"insights": {
"type": "array",
"items": {},
"description": "Existing public model insights with their release-specific fields and limitations."
},
"modelKey": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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, uppercase, URL or license plate."
},
"freshness": {
"type": "object",
"description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"sourceIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"description": "Opaque IDs of supporting public sources or source groups. An empty array means no references exposed here, not proof of completeness."
},
"bodyProfile": {
"type": "object",
"description": "Imported public body-style profile. Retains the knowledge release's nested fields; not specifications of an individual vehicle.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"limitations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
},
"vehicleRole": {
"type": "string",
"description": "Published description of the model's vehicle/use role."
},
"buyerActions": {
"type": "array",
"items": {},
"description": "Existing public buyer checks/actions; no external action is performed by returning them."
},
"riskQuestion": {
"type": "object",
"description": "Published model-level risk/question context, not an assessment of a specific car.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"namedVariants": {
"type": "array",
"items": {},
"description": "Existing public named-variant records; no inferred or generated variants."
},
"schemaVersion": {
"type": "string",
"const": "kk-public-knowledge-v1",
"description": "Public knowledge record contract version kk-public-knowledge-v1; different from the enclosing API schema and server version."
},
"canonicalRoute": {
"type": "string",
"description": "Relative human-readable website route for the canonical model."
},
"directAnswerId": {
"type": "string",
"pattern": "^answer\\.[a-z0-9-]+\\.[a-z0-9-]+$",
"maxLength": 200,
"minLength": 1,
"description": "Stable ID of this model's primary existing Direct Answer; retrieve it with get_answer_context."
},
"powertrainProfile": {
"type": "object",
"description": "Imported public powertrain context; no promise of every engine or individual vehicle configuration.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"editorialIndicator": {
"type": "object",
"description": "Imported indicator with explicit knowledge classification; not a probability or individual-vehicle verdict.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"evidenceReferences": {
"type": "array",
"items": {},
"description": "Public model-level evidence records as supplied by the release."
},
"vehicleFormContext": {
"type": "object",
"description": "Imported public vehicle-form context and its applicability boundaries.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"configurationProfile": {
"type": "object",
"description": "Imported public configuration context; available variants and coverage are release-specific.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"description": "Validated model-level knowledge; not an assessment of one individual vehicle.",
"additionalProperties": false
},
"answers": {
"type": "array",
"items": {
"type": "object",
"required": [
"answerId",
"question",
"intents",
"answer",
"evidenceIds",
"sourceIds",
"classification",
"freshness",
"limitations",
"citationUrl"
],
"properties": {
"topic": {
"type": "string",
"description": "Optional topic identifier for a non-model or topic-specific Direct Answer."
},
"answer": {
"type": "string",
"description": "Existing published answer text; returned without generating new factual claims."
},
"intents": {
"type": "array",
"items": {
"type": "string"
},
"description": "Existing intent labels attached to this Direct Answer; these are discovery metadata, not generated confidence estimates."
},
"answerId": {
"type": "string",
"pattern": "^answer\\.[a-z0-9-]+\\.[a-z0-9-]+$",
"maxLength": 200,
"minLength": 1,
"description": "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 discovery; no free-text question."
},
"modelKey": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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, uppercase, URL or license plate."
},
"question": {
"type": "string",
"description": "Existing published question answered by this knowledge record."
},
"freshness": {
"type": "object",
"description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"sourceIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"description": "Opaque IDs of supporting public sources or source groups. An empty array means no references exposed here, not proof of completeness."
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"evidenceIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Identifiers of the evidence supporting this answer; envelope evidence contains the exposed references."
},
"limitations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
},
"classification": {
"enum": [
"OFFICIAL",
"DERIVED",
"EDITORIAL"
],
"type": "string",
"description": "Knowledge classification: OFFICIAL, reproducibly DERIVED, or EDITORIAL. Preserve this label; it is not a confidence score."
}
},
"additionalProperties": false
},
"description": "Existing model Direct Answers, present only when includeAnswers=true; an empty list means none exposed for the model."
},
"classification": {
"enum": [
"OFFICIAL",
"DERIVED",
"EDITORIAL"
],
"type": "string",
"description": "Knowledge classification: OFFICIAL, reproducibly DERIVED, or EDITORIAL. Preserve this label; it is not a confidence score."
}
},
"description": "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.",
"additionalProperties": false
},
"sources": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"required": [
"sourceId",
"kind",
"visibility",
"label",
"category",
"citationUrl",
"sourceUrl",
"freshness",
"limitations"
],
"properties": {
"kind": {
"type": "string",
"const": "SOURCE",
"description": "Discriminator: SOURCE is one public source; SOURCE_GROUP is an explicit grouped provenance record."
},
"label": {
"type": "string",
"description": "Human-readable label supplied by the knowledge record."
},
"category": {
"enum": [
"OFFICIAL_PRIMARY_DATA",
"OFFICIAL_GUIDANCE",
"PRIMARY_NON_GOVERNMENT",
"REPUTABLE_EDITORIAL",
"BACKGROUND_REFERENCE",
"KENTEKENKOMPAS_DERIVED",
"KENTEKENKOMPAS_EDITORIAL"
],
"type": "string",
"description": "Detailed provenance category. Keep it distinct from the coarser OFFICIAL/DERIVED/EDITORIAL classification."
},
"sourceId": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"freshness": {
"type": "object",
"description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"sourceUrl": {
"type": "string",
"format": "uri",
"description": "Original public source URL for a SOURCE record; distinct from the KentekenKompas explanation URL."
},
"visibility": {
"type": "string",
"const": "PUBLIC",
"description": "PUBLIC marks provenance permitted in the public knowledge contract."
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"limitations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"sourceId",
"kind",
"visibility",
"label",
"category",
"citationUrl",
"description",
"memberSourceIds",
"memberOrderMeaning",
"citationUrls",
"freshness",
"limitations"
],
"properties": {
"kind": {
"type": "string",
"const": "SOURCE_GROUP",
"description": "Discriminator: SOURCE is one public source; SOURCE_GROUP is an explicit grouped provenance record."
},
"label": {
"type": "string",
"description": "Human-readable label supplied by the knowledge record."
},
"category": {
"enum": [
"OFFICIAL_PRIMARY_DATA",
"OFFICIAL_GUIDANCE",
"PRIMARY_NON_GOVERNMENT",
"REPUTABLE_EDITORIAL",
"BACKGROUND_REFERENCE",
"KENTEKENKOMPAS_DERIVED",
"KENTEKENKOMPAS_EDITORIAL"
],
"type": "string",
"description": "Detailed provenance category. Keep it distinct from the coarser OFFICIAL/DERIVED/EDITORIAL classification."
},
"sourceId": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"freshness": {
"type": "object",
"description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"visibility": {
"type": "string",
"const": "PUBLIC",
"description": "PUBLIC marks provenance permitted in the public knowledge contract."
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"description": {
"type": "string",
"description": "Public explanation of the source group's purpose and composition."
},
"limitations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
},
"citationUrls": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"description": "Human-readable citation links associated with the group; not its members' sourceUrl fields."
},
"memberSourceIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"minItems": 1,
"description": "Explicit, non-empty list of source IDs belonging to this group; use these rather than splitting the group's opaque sourceId."
},
"memberOrderMeaning": {
"type": "string",
"description": "Explanation of whether/how member ordering matters; do not infer ranking or chronology."
}
},
"additionalProperties": false
}
]
},
"description": "Resolved public SOURCE/SOURCE_GROUP records supporting this result. Search may leave this empty; use get_source_context for a discovered source ID."
},
"coverage": {
"type": "object",
"description": "Available coverage metadata; incomplete or absent coverage is not an assurance of complete knowledge. Preserve limitations.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"evidence": {
"type": "array",
"items": {
"type": "object",
"required": [
"evidenceId",
"classification",
"sourceIds"
],
"properties": {
"sourceIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"description": "Opaque IDs of supporting public sources or source groups. An empty array means no references exposed here, not proof of completeness."
},
"evidenceId": {
"type": "string",
"description": "Identifier of a cited evidence reference; resolve its sourceIds for provenance, not as a confidence score."
},
"classification": {
"enum": [
"OFFICIAL",
"DERIVED",
"EDITORIAL"
],
"type": "string",
"description": "Knowledge classification: OFFICIAL, reproducibly DERIVED, or EDITORIAL. Preserve this label; it is not a confidence score."
}
},
"additionalProperties": false
},
"description": "Exposed evidence references with classifications and source IDs. May be empty (including search); not proof that knowledge has no provenance."
},
"freshness": {
"type": "object",
"required": [
"generatedAt"
],
"properties": {
"dataAsOf": {
"type": "string",
"description": "Optional date/time to which the underlying data relates; absent means not supplied, not current."
},
"generatedAt": {
"type": "string",
"description": "Timestamp of generation. At envelope level this is the active manifest's generatedAt, not a source refresh or publication date."
},
"sourceCheckedAt": {
"type": "string",
"description": "Optional date/time when the source was checked, not necessarily the date the data describes."
},
"editorialReviewedAt": {
"type": "string",
"description": "Optional date/time of editorial review; does not certify that all underlying data was refreshed."
}
},
"description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
"additionalProperties": false
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"limitations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
},
"schemaVersion": {
"type": "string",
"const": "kk-api-v1",
"description": "Transport envelope contract kk-api-v1; distinct from the nested knowledge schema, knowledgeVersion and server version."
},
"knowledgeVersion": {
"type": "string",
"description": "Active knowledge release identifier from its manifest; not the API contract or MCP/registry server version."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_answer_context
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.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"answerId"
],
"properties": {
"answerId": {
"type": "string",
"pattern": "^answer\\.[a-z0-9-]+\\.[a-z0-9-]+$",
"maxLength": 200,
"minLength": 1,
"description": "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 discovery; no free-text question."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"schemaVersion",
"knowledgeVersion",
"data",
"evidence",
"sources",
"freshness",
"limitations"
],
"properties": {
"data": {
"type": "object",
"required": [
"answerId",
"question",
"intents",
"answer",
"evidenceIds",
"sourceIds",
"classification",
"freshness",
"limitations",
"citationUrl"
],
"properties": {
"topic": {
"type": "string",
"description": "Optional topic identifier for a non-model or topic-specific Direct Answer."
},
"answer": {
"type": "string",
"description": "Existing published answer text; returned without generating new factual claims."
},
"intents": {
"type": "array",
"items": {
"type": "string"
},
"description": "Existing intent labels attached to this Direct Answer; these are discovery metadata, not generated confidence estimates."
},
"answerId": {
"type": "string",
"pattern": "^answer\\.[a-z0-9-]+\\.[a-z0-9-]+$",
"maxLength": 200,
"minLength": 1,
"description": "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 discovery; no free-text question."
},
"modelKey": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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, uppercase, URL or license plate."
},
"question": {
"type": "string",
"description": "Existing published question answered by this knowledge record."
},
"freshness": {
"type": "object",
"description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"sourceIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"description": "Opaque IDs of supporting public sources or source groups. An empty array means no references exposed here, not proof of completeness."
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"evidenceIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Identifiers of the evidence supporting this answer; envelope evidence contains the exposed references."
},
"limitations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
},
"classification": {
"enum": [
"OFFICIAL",
"DERIVED",
"EDITORIAL"
],
"type": "string",
"description": "Knowledge classification: OFFICIAL, reproducibly DERIVED, or EDITORIAL. Preserve this label; it is not a confidence score."
}
},
"description": "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.",
"additionalProperties": false
},
"sources": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"required": [
"sourceId",
"kind",
"visibility",
"label",
"category",
"citationUrl",
"sourceUrl",
"freshness",
"limitations"
],
"properties": {
"kind": {
"type": "string",
"const": "SOURCE",
"description": "Discriminator: SOURCE is one public source; SOURCE_GROUP is an explicit grouped provenance record."
},
"label": {
"type": "string",
"description": "Human-readable label supplied by the knowledge record."
},
"category": {
"enum": [
"OFFICIAL_PRIMARY_DATA",
"OFFICIAL_GUIDANCE",
"PRIMARY_NON_GOVERNMENT",
"REPUTABLE_EDITORIAL",
"BACKGROUND_REFERENCE",
"KENTEKENKOMPAS_DERIVED",
"KENTEKENKOMPAS_EDITORIAL"
],
"type": "string",
"description": "Detailed provenance category. Keep it distinct from the coarser OFFICIAL/DERIVED/EDITORIAL classification."
},
"sourceId": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"freshness": {
"type": "object",
"description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"sourceUrl": {
"type": "string",
"format": "uri",
"description": "Original public source URL for a SOURCE record; distinct from the KentekenKompas explanation URL."
},
"visibility": {
"type": "string",
"const": "PUBLIC",
"description": "PUBLIC marks provenance permitted in the public knowledge contract."
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"limitations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"sourceId",
"kind",
"visibility",
"label",
"category",
"citationUrl",
"description",
"memberSourceIds",
"memberOrderMeaning",
"citationUrls",
"freshness",
"limitations"
],
"properties": {
"kind": {
"type": "string",
"const": "SOURCE_GROUP",
"description": "Discriminator: SOURCE is one public source; SOURCE_GROUP is an explicit grouped provenance record."
},
"label": {
"type": "string",
"description": "Human-readable label supplied by the knowledge record."
},
"category": {
"enum": [
"OFFICIAL_PRIMARY_DATA",
"OFFICIAL_GUIDANCE",
"PRIMARY_NON_GOVERNMENT",
"REPUTABLE_EDITORIAL",
"BACKGROUND_REFERENCE",
"KENTEKENKOMPAS_DERIVED",
"KENTEKENKOMPAS_EDITORIAL"
],
"type": "string",
"description": "Detailed provenance category. Keep it distinct from the coarser OFFICIAL/DERIVED/EDITORIAL classification."
},
"sourceId": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"freshness": {
"type": "object",
"description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"visibility": {
"type": "string",
"const": "PUBLIC",
"description": "PUBLIC marks provenance permitted in the public knowledge contract."
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"description": {
"type": "string",
"description": "Public explanation of the source group's purpose and composition."
},
"limitations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
},
"citationUrls": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"description": "Human-readable citation links associated with the group; not its members' sourceUrl fields."
},
"memberSourceIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"minItems": 1,
"description": "Explicit, non-empty list of source IDs belonging to this group; use these rather than splitting the group's opaque sourceId."
},
"memberOrderMeaning": {
"type": "string",
"description": "Explanation of whether/how member ordering matters; do not infer ranking or chronology."
}
},
"additionalProperties": false
}
]
},
"description": "Resolved public SOURCE/SOURCE_GROUP records supporting this result. Search may leave this empty; use get_source_context for a discovered source ID."
},
"coverage": {
"type": "object",
"description": "Available coverage metadata; incomplete or absent coverage is not an assurance of complete knowledge. Preserve limitations.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"evidence": {
"type": "array",
"items": {
"type": "object",
"required": [
"evidenceId",
"classification",
"sourceIds"
],
"properties": {
"sourceIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"description": "Opaque IDs of supporting public sources or source groups. An empty array means no references exposed here, not proof of completeness."
},
"evidenceId": {
"type": "string",
"description": "Identifier of a cited evidence reference; resolve its sourceIds for provenance, not as a confidence score."
},
"classification": {
"enum": [
"OFFICIAL",
"DERIVED",
"EDITORIAL"
],
"type": "string",
"description": "Knowledge classification: OFFICIAL, reproducibly DERIVED, or EDITORIAL. Preserve this label; it is not a confidence score."
}
},
"additionalProperties": false
},
"description": "Exposed evidence references with classifications and source IDs. May be empty (including search); not proof that knowledge has no provenance."
},
"freshness": {
"type": "object",
"required": [
"generatedAt"
],
"properties": {
"dataAsOf": {
"type": "string",
"description": "Optional date/time to which the underlying data relates; absent means not supplied, not current."
},
"generatedAt": {
"type": "string",
"description": "Timestamp of generation. At envelope level this is the active manifest's generatedAt, not a source refresh or publication date."
},
"sourceCheckedAt": {
"type": "string",
"description": "Optional date/time when the source was checked, not necessarily the date the data describes."
},
"editorialReviewedAt": {
"type": "string",
"description": "Optional date/time of editorial review; does not certify that all underlying data was refreshed."
}
},
"description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
"additionalProperties": false
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"limitations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
},
"schemaVersion": {
"type": "string",
"const": "kk-api-v1",
"description": "Transport envelope contract kk-api-v1; distinct from the nested knowledge schema, knowledgeVersion and server version."
},
"knowledgeVersion": {
"type": "string",
"description": "Active knowledge release identifier from its manifest; not the API contract or MCP/registry server version."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}compare_vehicle_models
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.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"sourceModelKey",
"targetModelKey"
],
"properties": {
"sourceModelKey": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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 matters. Use get_model_context to discover peers."
},
"targetModelKey": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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. Existence of two models does not guarantee a relation."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"schemaVersion",
"knowledgeVersion",
"data",
"evidence",
"sources",
"freshness",
"limitations"
],
"properties": {
"data": {
"type": "object",
"required": [
"sourceModelKey",
"targetModelKey",
"label",
"relationType",
"relationMeaning",
"classification",
"reasons",
"rationale",
"limitations",
"citationUrl"
],
"properties": {
"label": {
"type": "string",
"description": "Human-readable label supplied by the knowledge record."
},
"reasons": {
"type": "array",
"items": {
"type": "string"
},
"description": "Published reasons for the stored comparison relation."
},
"rationale": {
"type": "array",
"items": {
"type": "string"
},
"description": "Published semantic rationale when supplied, otherwise the stored reasons; not newly generated explanation."
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"limitations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
},
"relationType": {
"enum": [
"DIRECT_ALTERNATIVE",
"CONTROL_MODEL",
"POWERTRAIN_CONTRAST",
"CROSS_BODY_COMPARISON"
],
"type": "string",
"description": "Stored relation kind. CONTROL_MODEL, POWERTRAIN_CONTRAST and CROSS_BODY_COMPARISON must not be called direct alternatives."
},
"classification": {
"enum": [
"OFFICIAL",
"DERIVED",
"EDITORIAL"
],
"type": "string",
"description": "Knowledge classification: OFFICIAL, reproducibly DERIVED, or EDITORIAL. Preserve this label; it is not a confidence score."
},
"sourceModelKey": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "Canonical source model key of the directed stored comparison relation."
},
"targetModelKey": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "Canonical target model key of the directed stored comparison relation."
},
"relationMeaning": {
"type": "string",
"description": "Human-readable interpretation of the stored relationType."
},
"importantDifference": {
"type": "string",
"description": "Optional published difference between these models; absent means not supplied."
}
},
"description": "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.",
"additionalProperties": false
},
"sources": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"required": [
"sourceId",
"kind",
"visibility",
"label",
"category",
"citationUrl",
"sourceUrl",
"freshness",
"limitations"
],
"properties": {
"kind": {
"type": "string",
"const": "SOURCE",
"description": "Discriminator: SOURCE is one public source; SOURCE_GROUP is an explicit grouped provenance record."
},
"label": {
"type": "string",
"description": "Human-readable label supplied by the knowledge record."
},
"category": {
"enum": [
"OFFICIAL_PRIMARY_DATA",
"OFFICIAL_GUIDANCE",
"PRIMARY_NON_GOVERNMENT",
"REPUTABLE_EDITORIAL",
"BACKGROUND_REFERENCE",
"KENTEKENKOMPAS_DERIVED",
"KENTEKENKOMPAS_EDITORIAL"
],
"type": "string",
"description": "Detailed provenance category. Keep it distinct from the coarser OFFICIAL/DERIVED/EDITORIAL classification."
},
"sourceId": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"freshness": {
"type": "object",
"description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"sourceUrl": {
"type": "string",
"format": "uri",
"description": "Original public source URL for a SOURCE record; distinct from the KentekenKompas explanation URL."
},
"visibility": {
"type": "string",
"const": "PUBLIC",
"description": "PUBLIC marks provenance permitted in the public knowledge contract."
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"limitations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"sourceId",
"kind",
"visibility",
"label",
"category",
"citationUrl",
"description",
"memberSourceIds",
"memberOrderMeaning",
"citationUrls",
"freshness",
"limitations"
],
"properties": {
"kind": {
"type": "string",
"const": "SOURCE_GROUP",
"description": "Discriminator: SOURCE is one public source; SOURCE_GROUP is an explicit grouped provenance record."
},
"label": {
"type": "string",
"description": "Human-readable label supplied by the knowledge record."
},
"category": {
"enum": [
"OFFICIAL_PRIMARY_DATA",
"OFFICIAL_GUIDANCE",
"PRIMARY_NON_GOVERNMENT",
"REPUTABLE_EDITORIAL",
"BACKGROUND_REFERENCE",
"KENTEKENKOMPAS_DERIVED",
"KENTEKENKOMPAS_EDITORIAL"
],
"type": "string",
"description": "Detailed provenance category. Keep it distinct from the coarser OFFICIAL/DERIVED/EDITORIAL classification."
},
"sourceId": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"freshness": {
"type": "object",
"description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"visibility": {
"type": "string",
"const": "PUBLIC",
"description": "PUBLIC marks provenance permitted in the public knowledge contract."
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"description": {
"type": "string",
"description": "Public explanation of the source group's purpose and composition."
},
"limitations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
},
"citationUrls": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"description": "Human-readable citation links associated with the group; not its members' sourceUrl fields."
},
"memberSourceIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"minItems": 1,
"description": "Explicit, non-empty list of source IDs belonging to this group; use these rather than splitting the group's opaque sourceId."
},
"memberOrderMeaning": {
"type": "string",
"description": "Explanation of whether/how member ordering matters; do not infer ranking or chronology."
}
},
"additionalProperties": false
}
]
},
"description": "Resolved public SOURCE/SOURCE_GROUP records supporting this result. Search may leave this empty; use get_source_context for a discovered source ID."
},
"coverage": {
"type": "object",
"description": "Available coverage metadata; incomplete or absent coverage is not an assurance of complete knowledge. Preserve limitations.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"evidence": {
"type": "array",
"items": {
"type": "object",
"required": [
"evidenceId",
"classification",
"sourceIds"
],
"properties": {
"sourceIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"description": "Opaque IDs of supporting public sources or source groups. An empty array means no references exposed here, not proof of completeness."
},
"evidenceId": {
"type": "string",
"description": "Identifier of a cited evidence reference; resolve its sourceIds for provenance, not as a confidence score."
},
"classification": {
"enum": [
"OFFICIAL",
"DERIVED",
"EDITORIAL"
],
"type": "string",
"description": "Knowledge classification: OFFICIAL, reproducibly DERIVED, or EDITORIAL. Preserve this label; it is not a confidence score."
}
},
"additionalProperties": false
},
"description": "Exposed evidence references with classifications and source IDs. May be empty (including search); not proof that knowledge has no provenance."
},
"freshness": {
"type": "object",
"required": [
"generatedAt"
],
"properties": {
"dataAsOf": {
"type": "string",
"description": "Optional date/time to which the underlying data relates; absent means not supplied, not current."
},
"generatedAt": {
"type": "string",
"description": "Timestamp of generation. At envelope level this is the active manifest's generatedAt, not a source refresh or publication date."
},
"sourceCheckedAt": {
"type": "string",
"description": "Optional date/time when the source was checked, not necessarily the date the data describes."
},
"editorialReviewedAt": {
"type": "string",
"description": "Optional date/time of editorial review; does not certify that all underlying data was refreshed."
}
},
"description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
"additionalProperties": false
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"limitations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
},
"schemaVersion": {
"type": "string",
"const": "kk-api-v1",
"description": "Transport envelope contract kk-api-v1; distinct from the nested knowledge schema, knowledgeVersion and server version."
},
"knowledgeVersion": {
"type": "string",
"description": "Active knowledge release identifier from its manifest; not the API contract or MCP/registry server version."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}explain_dutch_vehicle_term
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.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"termKey"
],
"properties": {
"termKey": {
"type": "string",
"pattern": "^(?:term\\.)?[a-z0-9]+(?:-[a-z0-9]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; these fail schema validation before normalization."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"schemaVersion",
"knowledgeVersion",
"data",
"evidence",
"sources",
"freshness",
"limitations"
],
"properties": {
"data": {
"type": "object",
"required": [
"schemaVersion",
"termId",
"term",
"question",
"answer",
"classification",
"sourceIds",
"freshness",
"limitations",
"citationUrl"
],
"properties": {
"term": {
"type": "string",
"description": "Human-readable name of the existing Dutch vehicle term."
},
"answer": {
"type": "string",
"description": "Existing published answer text; returned without generating new factual claims."
},
"termId": {
"type": "string",
"description": "Canonical term identifier, including its term. prefix."
},
"question": {
"type": "string",
"description": "Existing published question answered by this knowledge record."
},
"freshness": {
"type": "object",
"description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"sourceIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"description": "Opaque IDs of supporting public sources or source groups. An empty array means no references exposed here, not proof of completeness."
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"limitations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
},
"schemaVersion": {
"type": "string",
"const": "kk-public-knowledge-v1",
"description": "Public knowledge record contract version kk-public-knowledge-v1; different from the enclosing API schema and server version."
},
"classification": {
"enum": [
"OFFICIAL",
"DERIVED",
"EDITORIAL"
],
"type": "string",
"description": "Knowledge classification: OFFICIAL, reproducibly DERIVED, or EDITORIAL. Preserve this label; it is not a confidence score."
}
},
"description": "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.",
"additionalProperties": false
},
"sources": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"required": [
"sourceId",
"kind",
"visibility",
"label",
"category",
"citationUrl",
"sourceUrl",
"freshness",
"limitations"
],
"properties": {
"kind": {
"type": "string",
"const": "SOURCE",
"description": "Discriminator: SOURCE is one public source; SOURCE_GROUP is an explicit grouped provenance record."
},
"label": {
"type": "string",
"description": "Human-readable label supplied by the knowledge record."
},
"category": {
"enum": [
"OFFICIAL_PRIMARY_DATA",
"OFFICIAL_GUIDANCE",
"PRIMARY_NON_GOVERNMENT",
"REPUTABLE_EDITORIAL",
"BACKGROUND_REFERENCE",
"KENTEKENKOMPAS_DERIVED",
"KENTEKENKOMPAS_EDITORIAL"
],
"type": "string",
"description": "Detailed provenance category. Keep it distinct from the coarser OFFICIAL/DERIVED/EDITORIAL classification."
},
"sourceId": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"freshness": {
"type": "object",
"description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"sourceUrl": {
"type": "string",
"format": "uri",
"description": "Original public source URL for a SOURCE record; distinct from the KentekenKompas explanation URL."
},
"visibility": {
"type": "string",
"const": "PUBLIC",
"description": "PUBLIC marks provenance permitted in the public knowledge contract."
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"limitations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"sourceId",
"kind",
"visibility",
"label",
"category",
"citationUrl",
"description",
"memberSourceIds",
"memberOrderMeaning",
"citationUrls",
"freshness",
"limitations"
],
"properties": {
"kind": {
"type": "string",
"const": "SOURCE_GROUP",
"description": "Discriminator: SOURCE is one public source; SOURCE_GROUP is an explicit grouped provenance record."
},
"label": {
"type": "string",
"description": "Human-readable label supplied by the knowledge record."
},
"category": {
"enum": [
"OFFICIAL_PRIMARY_DATA",
"OFFICIAL_GUIDANCE",
"PRIMARY_NON_GOVERNMENT",
"REPUTABLE_EDITORIAL",
"BACKGROUND_REFERENCE",
"KENTEKENKOMPAS_DERIVED",
"KENTEKENKOMPAS_EDITORIAL"
],
"type": "string",
"description": "Detailed provenance category. Keep it distinct from the coarser OFFICIAL/DERIVED/EDITORIAL classification."
},
"sourceId": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"freshness": {
"type": "object",
"description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"visibility": {
"type": "string",
"const": "PUBLIC",
"description": "PUBLIC marks provenance permitted in the public knowledge contract."
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"description": {
"type": "string",
"description": "Public explanation of the source group's purpose and composition."
},
"limitations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
},
"citationUrls": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"description": "Human-readable citation links associated with the group; not its members' sourceUrl fields."
},
"memberSourceIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"minItems": 1,
"description": "Explicit, non-empty list of source IDs belonging to this group; use these rather than splitting the group's opaque sourceId."
},
"memberOrderMeaning": {
"type": "string",
"description": "Explanation of whether/how member ordering matters; do not infer ranking or chronology."
}
},
"additionalProperties": false
}
]
},
"description": "Resolved public SOURCE/SOURCE_GROUP records supporting this result. Search may leave this empty; use get_source_context for a discovered source ID."
},
"coverage": {
"type": "object",
"description": "Available coverage metadata; incomplete or absent coverage is not an assurance of complete knowledge. Preserve limitations.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"evidence": {
"type": "array",
"items": {
"type": "object",
"required": [
"evidenceId",
"classification",
"sourceIds"
],
"properties": {
"sourceIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"description": "Opaque IDs of supporting public sources or source groups. An empty array means no references exposed here, not proof of completeness."
},
"evidenceId": {
"type": "string",
"description": "Identifier of a cited evidence reference; resolve its sourceIds for provenance, not as a confidence score."
},
"classification": {
"enum": [
"OFFICIAL",
"DERIVED",
"EDITORIAL"
],
"type": "string",
"description": "Knowledge classification: OFFICIAL, reproducibly DERIVED, or EDITORIAL. Preserve this label; it is not a confidence score."
}
},
"additionalProperties": false
},
"description": "Exposed evidence references with classifications and source IDs. May be empty (including search); not proof that knowledge has no provenance."
},
"freshness": {
"type": "object",
"required": [
"generatedAt"
],
"properties": {
"dataAsOf": {
"type": "string",
"description": "Optional date/time to which the underlying data relates; absent means not supplied, not current."
},
"generatedAt": {
"type": "string",
"description": "Timestamp of generation. At envelope level this is the active manifest's generatedAt, not a source refresh or publication date."
},
"sourceCheckedAt": {
"type": "string",
"description": "Optional date/time when the source was checked, not necessarily the date the data describes."
},
"editorialReviewedAt": {
"type": "string",
"description": "Optional date/time of editorial review; does not certify that all underlying data was refreshed."
}
},
"description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
"additionalProperties": false
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"limitations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
},
"schemaVersion": {
"type": "string",
"const": "kk-api-v1",
"description": "Transport envelope contract kk-api-v1; distinct from the nested knowledge schema, knowledgeVersion and server version."
},
"knowledgeVersion": {
"type": "string",
"description": "Active knowledge release identifier from its manifest; not the API contract or MCP/registry server version."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_source_context
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.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"sourceId"
],
"properties": {
"sourceId": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"schemaVersion",
"knowledgeVersion",
"data",
"evidence",
"sources",
"freshness",
"limitations"
],
"properties": {
"data": {
"anyOf": [
{
"type": "object",
"required": [
"sourceId",
"kind",
"visibility",
"label",
"category",
"citationUrl",
"sourceUrl",
"freshness",
"limitations"
],
"properties": {
"kind": {
"type": "string",
"const": "SOURCE",
"description": "Discriminator: SOURCE is one public source; SOURCE_GROUP is an explicit grouped provenance record."
},
"label": {
"type": "string",
"description": "Human-readable label supplied by the knowledge record."
},
"category": {
"enum": [
"OFFICIAL_PRIMARY_DATA",
"OFFICIAL_GUIDANCE",
"PRIMARY_NON_GOVERNMENT",
"REPUTABLE_EDITORIAL",
"BACKGROUND_REFERENCE",
"KENTEKENKOMPAS_DERIVED",
"KENTEKENKOMPAS_EDITORIAL"
],
"type": "string",
"description": "Detailed provenance category. Keep it distinct from the coarser OFFICIAL/DERIVED/EDITORIAL classification."
},
"sourceId": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"freshness": {
"type": "object",
"description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"sourceUrl": {
"type": "string",
"format": "uri",
"description": "Original public source URL for a SOURCE record; distinct from the KentekenKompas explanation URL."
},
"visibility": {
"type": "string",
"const": "PUBLIC",
"description": "PUBLIC marks provenance permitted in the public knowledge contract."
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"limitations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"sourceId",
"kind",
"visibility",
"label",
"category",
"citationUrl",
"description",
"memberSourceIds",
"memberOrderMeaning",
"citationUrls",
"freshness",
"limitations"
],
"properties": {
"kind": {
"type": "string",
"const": "SOURCE_GROUP",
"description": "Discriminator: SOURCE is one public source; SOURCE_GROUP is an explicit grouped provenance record."
},
"label": {
"type": "string",
"description": "Human-readable label supplied by the knowledge record."
},
"category": {
"enum": [
"OFFICIAL_PRIMARY_DATA",
"OFFICIAL_GUIDANCE",
"PRIMARY_NON_GOVERNMENT",
"REPUTABLE_EDITORIAL",
"BACKGROUND_REFERENCE",
"KENTEKENKOMPAS_DERIVED",
"KENTEKENKOMPAS_EDITORIAL"
],
"type": "string",
"description": "Detailed provenance category. Keep it distinct from the coarser OFFICIAL/DERIVED/EDITORIAL classification."
},
"sourceId": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"freshness": {
"type": "object",
"description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"visibility": {
"type": "string",
"const": "PUBLIC",
"description": "PUBLIC marks provenance permitted in the public knowledge contract."
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"description": {
"type": "string",
"description": "Public explanation of the source group's purpose and composition."
},
"limitations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
},
"citationUrls": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"description": "Human-readable citation links associated with the group; not its members' sourceUrl fields."
},
"memberSourceIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"minItems": 1,
"description": "Explicit, non-empty list of source IDs belonging to this group; use these rather than splitting the group's opaque sourceId."
},
"memberOrderMeaning": {
"type": "string",
"description": "Explanation of whether/how member ordering matters; do not infer ranking or chronology."
}
},
"additionalProperties": false
}
],
"description": "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."
},
"sources": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"required": [
"sourceId",
"kind",
"visibility",
"label",
"category",
"citationUrl",
"sourceUrl",
"freshness",
"limitations"
],
"properties": {
"kind": {
"type": "string",
"const": "SOURCE",
"description": "Discriminator: SOURCE is one public source; SOURCE_GROUP is an explicit grouped provenance record."
},
"label": {
"type": "string",
"description": "Human-readable label supplied by the knowledge record."
},
"category": {
"enum": [
"OFFICIAL_PRIMARY_DATA",
"OFFICIAL_GUIDANCE",
"PRIMARY_NON_GOVERNMENT",
"REPUTABLE_EDITORIAL",
"BACKGROUND_REFERENCE",
"KENTEKENKOMPAS_DERIVED",
"KENTEKENKOMPAS_EDITORIAL"
],
"type": "string",
"description": "Detailed provenance category. Keep it distinct from the coarser OFFICIAL/DERIVED/EDITORIAL classification."
},
"sourceId": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"freshness": {
"type": "object",
"description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"sourceUrl": {
"type": "string",
"format": "uri",
"description": "Original public source URL for a SOURCE record; distinct from the KentekenKompas explanation URL."
},
"visibility": {
"type": "string",
"const": "PUBLIC",
"description": "PUBLIC marks provenance permitted in the public knowledge contract."
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"limitations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"sourceId",
"kind",
"visibility",
"label",
"category",
"citationUrl",
"description",
"memberSourceIds",
"memberOrderMeaning",
"citationUrls",
"freshness",
"limitations"
],
"properties": {
"kind": {
"type": "string",
"const": "SOURCE_GROUP",
"description": "Discriminator: SOURCE is one public source; SOURCE_GROUP is an explicit grouped provenance record."
},
"label": {
"type": "string",
"description": "Human-readable label supplied by the knowledge record."
},
"category": {
"enum": [
"OFFICIAL_PRIMARY_DATA",
"OFFICIAL_GUIDANCE",
"PRIMARY_NON_GOVERNMENT",
"REPUTABLE_EDITORIAL",
"BACKGROUND_REFERENCE",
"KENTEKENKOMPAS_DERIVED",
"KENTEKENKOMPAS_EDITORIAL"
],
"type": "string",
"description": "Detailed provenance category. Keep it distinct from the coarser OFFICIAL/DERIVED/EDITORIAL classification."
},
"sourceId": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"freshness": {
"type": "object",
"description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"visibility": {
"type": "string",
"const": "PUBLIC",
"description": "PUBLIC marks provenance permitted in the public knowledge contract."
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"description": {
"type": "string",
"description": "Public explanation of the source group's purpose and composition."
},
"limitations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
},
"citationUrls": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"description": "Human-readable citation links associated with the group; not its members' sourceUrl fields."
},
"memberSourceIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"minItems": 1,
"description": "Explicit, non-empty list of source IDs belonging to this group; use these rather than splitting the group's opaque sourceId."
},
"memberOrderMeaning": {
"type": "string",
"description": "Explanation of whether/how member ordering matters; do not infer ranking or chronology."
}
},
"additionalProperties": false
}
]
},
"description": "Resolved public SOURCE/SOURCE_GROUP records supporting this result. Search may leave this empty; use get_source_context for a discovered source ID."
},
"coverage": {
"type": "object",
"description": "Available coverage metadata; incomplete or absent coverage is not an assurance of complete knowledge. Preserve limitations.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"evidence": {
"type": "array",
"items": {
"type": "object",
"required": [
"evidenceId",
"classification",
"sourceIds"
],
"properties": {
"sourceIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"description": "Opaque IDs of supporting public sources or source groups. An empty array means no references exposed here, not proof of completeness."
},
"evidenceId": {
"type": "string",
"description": "Identifier of a cited evidence reference; resolve its sourceIds for provenance, not as a confidence score."
},
"classification": {
"enum": [
"OFFICIAL",
"DERIVED",
"EDITORIAL"
],
"type": "string",
"description": "Knowledge classification: OFFICIAL, reproducibly DERIVED, or EDITORIAL. Preserve this label; it is not a confidence score."
}
},
"additionalProperties": false
},
"description": "Exposed evidence references with classifications and source IDs. May be empty (including search); not proof that knowledge has no provenance."
},
"freshness": {
"type": "object",
"required": [
"generatedAt"
],
"properties": {
"dataAsOf": {
"type": "string",
"description": "Optional date/time to which the underlying data relates; absent means not supplied, not current."
},
"generatedAt": {
"type": "string",
"description": "Timestamp of generation. At envelope level this is the active manifest's generatedAt, not a source refresh or publication date."
},
"sourceCheckedAt": {
"type": "string",
"description": "Optional date/time when the source was checked, not necessarily the date the data describes."
},
"editorialReviewedAt": {
"type": "string",
"description": "Optional date/time of editorial review; does not certify that all underlying data was refreshed."
}
},
"description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
"additionalProperties": false
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"limitations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
},
"schemaVersion": {
"type": "string",
"const": "kk-api-v1",
"description": "Transport envelope contract kk-api-v1; distinct from the nested knowledge schema, knowledgeVersion and server version."
},
"knowledgeVersion": {
"type": "string",
"description": "Active knowledge release identifier from its manifest; not the API contract or MCP/registry server version."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_fuel_price_context
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.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"additionalProperties": false
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"schemaVersion",
"knowledgeVersion",
"data",
"evidence",
"sources",
"freshness",
"limitations"
],
"properties": {
"data": {
"type": "object",
"required": [
"schemaVersion",
"status",
"prices",
"classification",
"sourceIds",
"freshness",
"limitations",
"citationUrl"
],
"properties": {
"prices": {
"type": "array",
"items": {
"not": {}
},
"maxItems": 0,
"description": "Always empty in this contract. Never interpret missing prices as zero or substitute an invented current price."
},
"status": {
"type": "string",
"const": "SOURCE_REQUIRED_AT_RUNTIME",
"description": "SOURCE_REQUIRED_AT_RUNTIME means there is no configured validated current-price adapter; this is a successful status response, not a current price."
},
"freshness": {
"type": "object",
"description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"sourceIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"description": "Opaque IDs of supporting public sources or source groups. An empty array means no references exposed here, not proof of completeness."
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"limitations": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
},
"schemaVersion": {
"type": "string",
"const": "kk-public-knowledge-v1",
"description": "Public knowledge record contract version kk-public-knowledge-v1; different from the enclosing API schema and server version."
},
"classification": {
"enum": [
"OFFICIAL",
"DERIVED",
"EDITORIAL"
],
"type": "string",
"description": "Knowledge classification: OFFICIAL, reproducibly DERIVED, or EDITORIAL. Preserve this label; it is not a confidence score."
}
},
"description": "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.",
"additionalProperties": false
},
"sources": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"required": [
"sourceId",
"kind",
"visibility",
"label",
"category",
"citationUrl",
"sourceUrl",
"freshness",
"limitations"
],
"properties": {
"kind": {
"type": "string",
"const": "SOURCE",
"description": "Discriminator: SOURCE is one public source; SOURCE_GROUP is an explicit grouped provenance record."
},
"label": {
"type": "string",
"description": "Human-readable label supplied by the knowledge record."
},
"category": {
"enum": [
"OFFICIAL_PRIMARY_DATA",
"OFFICIAL_GUIDANCE",
"PRIMARY_NON_GOVERNMENT",
"REPUTABLE_EDITORIAL",
"BACKGROUND_REFERENCE",
"KENTEKENKOMPAS_DERIVED",
"KENTEKENKOMPAS_EDITORIAL"
],
"type": "string",
"description": "Detailed provenance category. Keep it distinct from the coarser OFFICIAL/DERIVED/EDITORIAL classification."
},
"sourceId": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"freshness": {
"type": "object",
"description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"sourceUrl": {
"type": "string",
"format": "uri",
"description": "Original public source URL for a SOURCE record; distinct from the KentekenKompas explanation URL."
},
"visibility": {
"type": "string",
"const": "PUBLIC",
"description": "PUBLIC marks provenance permitted in the public knowledge contract."
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"limitations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"sourceId",
"kind",
"visibility",
"label",
"category",
"citationUrl",
"description",
"memberSourceIds",
"memberOrderMeaning",
"citationUrls",
"freshness",
"limitations"
],
"properties": {
"kind": {
"type": "string",
"const": "SOURCE_GROUP",
"description": "Discriminator: SOURCE is one public source; SOURCE_GROUP is an explicit grouped provenance record."
},
"label": {
"type": "string",
"description": "Human-readable label supplied by the knowledge record."
},
"category": {
"enum": [
"OFFICIAL_PRIMARY_DATA",
"OFFICIAL_GUIDANCE",
"PRIMARY_NON_GOVERNMENT",
"REPUTABLE_EDITORIAL",
"BACKGROUND_REFERENCE",
"KENTEKENKOMPAS_DERIVED",
"KENTEKENKOMPAS_EDITORIAL"
],
"type": "string",
"description": "Detailed provenance category. Keep it distinct from the coarser OFFICIAL/DERIVED/EDITORIAL classification."
},
"sourceId": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"freshness": {
"type": "object",
"description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"visibility": {
"type": "string",
"const": "PUBLIC",
"description": "PUBLIC marks provenance permitted in the public knowledge contract."
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"description": {
"type": "string",
"description": "Public explanation of the source group's purpose and composition."
},
"limitations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
},
"citationUrls": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"description": "Human-readable citation links associated with the group; not its members' sourceUrl fields."
},
"memberSourceIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"minItems": 1,
"description": "Explicit, non-empty list of source IDs belonging to this group; use these rather than splitting the group's opaque sourceId."
},
"memberOrderMeaning": {
"type": "string",
"description": "Explanation of whether/how member ordering matters; do not infer ranking or chronology."
}
},
"additionalProperties": false
}
]
},
"description": "Resolved public SOURCE/SOURCE_GROUP records supporting this result. Search may leave this empty; use get_source_context for a discovered source ID."
},
"coverage": {
"type": "object",
"description": "Available coverage metadata; incomplete or absent coverage is not an assurance of complete knowledge. Preserve limitations.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"evidence": {
"type": "array",
"items": {
"type": "object",
"required": [
"evidenceId",
"classification",
"sourceIds"
],
"properties": {
"sourceIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
"maxLength": 200,
"minLength": 1,
"description": "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; never split or reconstruct composite-looking IDs."
},
"description": "Opaque IDs of supporting public sources or source groups. An empty array means no references exposed here, not proof of completeness."
},
"evidenceId": {
"type": "string",
"description": "Identifier of a cited evidence reference; resolve its sourceIds for provenance, not as a confidence score."
},
"classification": {
"enum": [
"OFFICIAL",
"DERIVED",
"EDITORIAL"
],
"type": "string",
"description": "Knowledge classification: OFFICIAL, reproducibly DERIVED, or EDITORIAL. Preserve this label; it is not a confidence score."
}
},
"additionalProperties": false
},
"description": "Exposed evidence references with classifications and source IDs. May be empty (including search); not proof that knowledge has no provenance."
},
"freshness": {
"type": "object",
"required": [
"generatedAt"
],
"properties": {
"dataAsOf": {
"type": "string",
"description": "Optional date/time to which the underlying data relates; absent means not supplied, not current."
},
"generatedAt": {
"type": "string",
"description": "Timestamp of generation. At envelope level this is the active manifest's generatedAt, not a source refresh or publication date."
},
"sourceCheckedAt": {
"type": "string",
"description": "Optional date/time when the source was checked, not necessarily the date the data describes."
},
"editorialReviewedAt": {
"type": "string",
"description": "Optional date/time of editorial review; does not certify that all underlying data was refreshed."
}
},
"description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
"additionalProperties": false
},
"citationUrl": {
"type": "string",
"format": "uri",
"description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
},
"limitations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
},
"schemaVersion": {
"type": "string",
"const": "kk-api-v1",
"description": "Transport envelope contract kk-api-v1; distinct from the nested knowledge schema, knowledgeVersion and server version."
},
"knowledgeVersion": {
"type": "string",
"description": "Active knowledge release identifier from its manifest; not the API contract or MCP/registry server version."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
9 advertised
kentekenkompas-meta — KentekenKompas knowledge metadata
kk://metakentekenkompas-changelog — KentekenKompas public knowledge changelog
kk://changelogkentekenkompas-guide-provenance — KentekenKompas provenance guide
kk://guides/provenancekentekenkompas-guide-freshness — KentekenKompas freshness guide
kk://guides/freshnesskentekenkompas-guide-citations — KentekenKompas citations guide
kk://guides/citationskentekenkompas-guide-limitations — KentekenKompas limitations guide
kk://guides/limitationskentekenkompas-models — Public model catalog
kk://modelskentekenkompas-sources — Public provenance catalog
kk://sourceskentekenkompas-fuel-price-context — Fuel-price source status
kk://fuel-prices/latestkentekenkompas-model — Public model context
kk://models/{modelKey}kentekenkompas-model-answers — Public model answers
kk://models/{modelKey}/answerskentekenkompas-model-comparisons — Public model comparisons
kk://models/{modelKey}/comparisonskentekenkompas-answer — Public Direct Answer
kk://answers/{answerId}kentekenkompas-term — Dutch vehicle term
kk://terms/{termKey}kentekenkompas-source — Public provenance source
kk://sources/{sourceId}90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 584 ms
- 95th percentile latency
- 584 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 584 ms · metadata changed · 7 tool(s), 9 resource(s), 6 resource template(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http kentekenkompas-mcp https://api.kentekenkompas.nl/mcpCodex
codex mcp add kentekenkompas-mcp --url https://api.kentekenkompas.nl/mcpCursor
{
"mcpServers": {
"kentekenkompas-mcp": {
"url": "https://api.kentekenkompas.nl/mcp"
}
}
}Cline
{
"mcpServers": {
"kentekenkompas-mcp": {
"type": "streamableHttp",
"url": "https://api.kentekenkompas.nl/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"kentekenkompas-mcp": {
"type": "http",
"url": "https://api.kentekenkompas.nl/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http kentekenkompas-mcp https://api.kentekenkompas.nl/mcpClaude Desktop
https://api.kentekenkompas.nl/mcpWindsurf
{
"mcpServers": {
"kentekenkompas-mcp": {
"serverUrl": "https://api.kentekenkompas.nl/mcp"
}
}
}Let your agent find its tools
Find servers like KentekenKompas MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other data and analytics servers
Do you run KentekenKompas MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.