Skip to main content
Glama

KentekenKompas

search_vehicle_knowledge

Read-onlyIdempotent

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

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoOptional maximum result count; integer 1–10 inclusive, default 5. Fewer or zero results may be returned; this MCP limit differs from other transports.
queryYesRequired 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.

Output Schema

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

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed33 schema fields changed
    • addedInput schema / properties / limit / description
      Added value: +"Optional maximum result count; integer 1–10 inclusive, default 5. Fewer or zero results may be returned; this MCP limit differs from other transports."
    • addedInput schema / properties / query / description
      Added value: +"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."
    • addedOutput schema / properties / citationUrl / description
      Added value: +"Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
    • addedOutput schema / properties / coverage / description
      Added value: +"Available coverage metadata; incomplete or absent coverage is not an assurance of complete knowledge. Preserve limitations."
    • addedOutput schema / properties / data / description
      Added value: +"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."
    • addedOutput schema / properties / data / items / properties / answerPreview / description
      Added value: +"Existing short preview or fixed contract explanation; not a generated answer or a replacement for full context."
    • addedOutput schema / properties / data / items / properties / citationUrl / description
      Added value: +"Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity."
    • addedOutput schema / properties / data / items / properties / classification / description
      Added value: +"Knowledge classification: OFFICIAL, reproducibly DERIVED, or EDITORIAL. Preserve this label; it is not a confidence score."
    • addedOutput schema / properties / data / items / properties / freshnessSummary / description
      Added value: +"Search-level freshness metadata/status. NOT_EXPOSED_IN_SEARCH_INDEX means dates are not exposed there; fetch exact context when available."
    • addedOutput schema / properties / data / items / properties / id / description
      Added value: +"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."
    • addedOutput schema / properties / data / items / properties / matchReasons / description
      Added value: +"Deterministic matching/boost reason codes explaining ranking, not evidence for factual claims."
    • addedOutput schema / properties / data / items / properties / matchedIntent / description
      Added value: +"Deterministic query-intent label used by search rules, not inferred user certainty."
    • addedOutput schema / properties / data / items / properties / matchedTerms / description
      Added value: +"Normalized lexical query tokens found in the index record; may be empty for fixed intent-based supplemental results."
    • addedOutput schema / properties / data / items / properties / modelKey / description
      Added value: +"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."
    • addedOutput schema / properties / data / items / properties / relevanceScore / description
      Added value: +"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."
    • addedOutput schema / properties / data / items / properties / relevanceTier / description
      Added value: +"Score band: EXACT >=140, STRONG >=55 and <140, RELATED <55. EXACT is a score label and does not guarantee a literal exact match."
    • addedOutput schema / properties / data / items / properties / title / description
      Added value: +"Human-readable title of the matched existing knowledge record."
    • addedOutput schema / properties / data / items / properties / type / description
      Added value: +"Result kind (currently model, answer, term, topic or supplemental source); determines how its identifier can be used."
    • addedOutput schema / properties / evidence / description
      Added value: +"Exposed evidence references with classifications and source IDs. May be empty (including search); not proof that knowledge has no provenance."
    • addedOutput schema / properties / evidence / items / properties / classification / description
      Added value: +"Knowledge classification: OFFICIAL, reproducibly DERIVED, or EDITORIAL. Preserve this label; it is not a confidence score."
    • addedOutput schema / properties / evidence / items / properties / evidenceId / description
      Added value: +"Identifier of a cited evidence reference; resolve its sourceIds for provenance, not as a confidence score."
    • addedOutput schema / properties / evidence / items / properties / sourceIds / description
      Added value: +"Opaque IDs of supporting public sources or source groups. An empty array means no references exposed here, not proof of completeness."
    • addedOutput schema / properties / evidence / items / properties / sourceIds / items / description
      Added value: +"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."
    • addedOutput schema / properties / freshness / description
      Added value: +"Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current."
    • addedOutput schema / properties / freshness / properties / dataAsOf / description
      Added value: +"Optional date/time to which the underlying data relates; absent means not supplied, not current."
    • addedOutput schema / properties / freshness / properties / editorialReviewedAt / description
      Added value: +"Optional date/time of editorial review; does not certify that all underlying data was refreshed."
    • addedOutput schema / properties / freshness / properties / generatedAt / description
      Added value: +"Timestamp of generation. At envelope level this is the active manifest's generatedAt, not a source refresh or publication date."
    • addedOutput schema / properties / freshness / properties / sourceCheckedAt / description
      Added value: +"Optional date/time when the source was checked, not necessarily the date the data describes."
    • addedOutput schema / properties / knowledgeVersion / description
      Added value: +"Active knowledge release identifier from its manifest; not the API contract or MCP/registry server version."
    • addedOutput schema / properties / limitations / description
      Added value: +"Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
    • addedOutput schema / properties / schemaVersion / description
      Added value: +"Transport envelope contract kk-api-v1; distinct from the nested knowledge schema, knowledgeVersion and server version."
    • addedOutput schema / properties / sources / description
      Added value: +"Resolved public SOURCE/SOURCE_GROUP records supporting this result. Search may leave this empty; use get_source_context for a discovered source ID."
    • changedOutput schema / properties / sources / items / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "category": {
      -        "enum": [
      -          "OFFICIAL_PRIMARY_DATA",
      -          "OFFICIAL_GUIDANCE",
      -          "PRIMARY_NON_GOVERNMENT",
      -          "REPUTABLE_EDITORIAL",
      -          "BACKGROUND_REFERENCE",
      -          "KENTEKENKOMPAS_DERIVED",
      -          "KENTEKENKOMPAS_EDITORIAL"
      -        ],
      -        "type": "string"
      -      },
      -      "citationUrl": {
      -        "format": "uri",
      -        "type": "string"
      -      },
      -      "freshness": {
      -        "additionalProperties": {},
      -        "propertyNames": {
      -          "type": "string"
      -        },
      -        "type": "object"
      -      },
      -      "kind": {
      -        "const": "SOURCE",
      -        "type": "string"
      -      },
      -      "label": {
      -        "type": "string"
      -      },
      -      "limitations": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "sourceId": {
      -        "maxLength": 200,
      -        "minLength": 1,
      -        "pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
      -        "type": "string"
      -      },
      -      "sourceUrl": {
      -        "format": "uri",
      -        "type": "string"
      -      },
      -      "visibility": {
      -        "const": "PUBLIC",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "sourceId",
      -      "kind",
      -      "visibility",
      -      "label",
      -      "category",
      -      "citationUrl",
      -      "sourceUrl",
      -      "freshness",
      -      "limitations"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "category": {
      -        "enum": [
      -          "OFFICIAL_PRIMARY_DATA",
      -          "OFFICIAL_GUIDANCE",
      -          "PRIMARY_NON_GOVERNMENT",
      -          "REPUTABLE_EDITORIAL",
      -          "BACKGROUND_REFERENCE",
      -          "KENTEKENKOMPAS_DERIVED",
      -          "KENTEKENKOMPAS_EDITORIAL"
      -        ],
      -        "type": "string"
      -      },
      -      "citationUrl": {
      -        "format": "uri",
      -        "type": "string"
      -      },
      -      "citationUrls": {
      -        "items": {
      -          "format": "uri",
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "description": {
      -        "type": "string"
      -      },
      -      "freshness": {
      -        "additionalProperties": {},
      -        "propertyNames": {
      -          "type": "string"
      -        },
      -        "type": "object"
      -      },
      -      "kind": {
      -        "const": "SOURCE_GROUP",
      -        "type": "string"
      -      },
      -      "label": {
      -        "type": "string"
      -      },
      -      "limitations": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "memberOrderMeaning": {
      -        "type": "string"
      -      },
      -      "memberSourceIds": {
      -        "items": {
      -          "maxLength": 200,
      -          "minLength": 1,
      -          "pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
      -          "type": "string"
      -        },
      -        "minItems": 1,
      -        "type": "array"
      -      },
      -      "sourceId": {
      -        "maxLength": 200,
      -        "minLength": 1,
      -        "pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
      -        "type": "string"
      -      },
      -      "visibility": {
      -        "const": "PUBLIC",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "sourceId",
      -      "kind",
      -      "visibility",
      -      "label",
      -      "category",
      -      "citationUrl",
      -      "description",
      -      "memberSourceIds",
      -      "memberOrderMeaning",
      -      "citationUrls",
      -      "freshness",
      -      "limitations"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "category": {
      +        "description": "Detailed provenance category. Keep it distinct from the coarser OFFICIAL/DERIVED/EDITORIAL classification.",
      +        "enum": [
      +          "OFFICIAL_PRIMARY_DATA",
      +          "OFFICIAL_GUIDANCE",
      +          "PRIMARY_NON_GOVERNMENT",
      +          "REPUTABLE_EDITORIAL",
      +          "BACKGROUND_REFERENCE",
      +          "KENTEKENKOMPAS_DERIVED",
      +          "KENTEKENKOMPAS_EDITORIAL"
      +        ],
      +        "type": "string"
      +      },
      +      "citationUrl": {
      +        "description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity.",
      +        "format": "uri",
      +        "type": "string"
      +      },
      +      "freshness": {
      +        "additionalProperties": {},
      +        "description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
      +        "propertyNames": {
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      "kind": {
      +        "const": "SOURCE",
      +        "description": "Discriminator: SOURCE is one public source; SOURCE_GROUP is an explicit grouped provenance record.",
      +        "type": "string"
      +      },
      +      "label": {
      +        "description": "Human-readable label supplied by the knowledge record.",
      +        "type": "string"
      +      },
      +      "limitations": {
      +        "description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage.",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "sourceId": {
      +        "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.",
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
      +        "type": "string"
      +      },
      +      "sourceUrl": {
      +        "description": "Original public source URL for a SOURCE record; distinct from the KentekenKompas explanation URL.",
      +        "format": "uri",
      +        "type": "string"
      +      },
      +      "visibility": {
      +        "const": "PUBLIC",
      +        "description": "PUBLIC marks provenance permitted in the public knowledge contract.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "sourceId",
      +      "kind",
      +      "visibility",
      +      "label",
      +      "category",
      +      "citationUrl",
      +      "sourceUrl",
      +      "freshness",
      +      "limitations"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "category": {
      +        "description": "Detailed provenance category. Keep it distinct from the coarser OFFICIAL/DERIVED/EDITORIAL classification.",
      +        "enum": [
      +          "OFFICIAL_PRIMARY_DATA",
      +          "OFFICIAL_GUIDANCE",
      +          "PRIMARY_NON_GOVERNMENT",
      +          "REPUTABLE_EDITORIAL",
      +          "BACKGROUND_REFERENCE",
      +          "KENTEKENKOMPAS_DERIVED",
      +          "KENTEKENKOMPAS_EDITORIAL"
      +        ],
      +        "type": "string"
      +      },
      +      "citationUrl": {
      +        "description": "Human-readable KentekenKompas citation URL for this record/context; distinct from an original sourceUrl and a kk:// resource identity.",
      +        "format": "uri",
      +        "type": "string"
      +      },
      +      "citationUrls": {
      +        "description": "Human-readable citation links associated with the group; not its members' sourceUrl fields.",
      +        "items": {
      +          "format": "uri",
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "description": {
      +        "description": "Public explanation of the source group's purpose and composition.",
      +        "type": "string"
      +      },
      +      "freshness": {
      +        "additionalProperties": {},
      +        "description": "Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current.",
      +        "propertyNames": {
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      "kind": {
      +        "const": "SOURCE_GROUP",
      +        "description": "Discriminator: SOURCE is one public source; SOURCE_GROUP is an explicit grouped provenance record.",
      +        "type": "string"
      +      },
      +      "label": {
      +        "description": "Human-readable label supplied by the knowledge record.",
      +        "type": "string"
      +      },
      +      "limitations": {
      +        "description": "Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage.",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "memberOrderMeaning": {
      +        "description": "Explanation of whether/how member ordering matters; do not infer ranking or chronology.",
      +        "type": "string"
      +      },
      +      "memberSourceIds": {
      +        "description": "Explicit, non-empty list of source IDs belonging to this group; use these rather than splitting the group's opaque sourceId.",
      +        "items": {
      +          "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.",
      +          "maxLength": 200,
      +          "minLength": 1,
      +          "pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
      +          "type": "string"
      +        },
      +        "minItems": 1,
      +        "type": "array"
      +      },
      +      "sourceId": {
      +        "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.",
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "pattern": "^[a-z0-9]+(?:[.:-][a-z0-9-]+)*$",
      +        "type": "string"
      +      },
      +      "visibility": {
      +        "const": "PUBLIC",
      +        "description": "PUBLIC marks provenance permitted in the public knowledge contract.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "sourceId",
      +      "kind",
      +      "visibility",
      +      "label",
      +      "category",
      +      "citationUrl",
      +      "description",
      +      "memberSourceIds",
      +      "memberOrderMeaning",
      +      "citationUrls",
      +      "freshness",
      +      "limitations"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. First observed

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already mark the tool read-only and idempotent, and the description adds non-redundant context: results are 'deterministic lexical/intent relevance, never AI confidence,' no supported match returns 'data=[] with limitations,' and calls consume rate limits. This clarifies expected behavior beyond the structured hints, and nothing contradicts the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The ~70-word description is front-loaded with purpose in the first sentence, then alternates usage guidance and behavioral traits in a logical order, ending with rate limits. No sentence is filler; each earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a 2-parameter tool with full schema descriptions and an output schema, the description covers the use case, exclusions, deterministic behavior, no-match result shape, access rights, write prohibition, and rate-limit side effects. The only minor vagueness is the word 'limitations,' but the output schema handles return details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both limit and query already carry detailed schema descriptions covering type, bounds, defaults, and normalization rules, so schema coverage is 100%. The description adds only high-level context that input is free-text and results are lexical/intent-based, but that is already reflected in the query description; it does not need to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with the action 'Discover' and the resource 'public models, existing answers, terms and provenance from free text when no canonical key is known,' giving a specific verb and object. It immediately distinguishes from siblings by naming the ID-based tools and the known-pair comparator, so an agent can tell this tool apart without reading schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The text explicitly says to 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, and get_fuel_price_context for fuel-source status. It also frames the primary use case with 'when no canonical key is known,' giving both when and when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources