Skip to main content
Glama

KentekenKompas

explain_dutch_vehicle_term

Read-onlyIdempotent

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

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
termKeyYesExisting 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.

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. Changed30 schema fields changed
    • addedInput schema / properties / termKey / description
      Added value: +"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."
    • 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 / properties / answer / description
      Added value: +"Existing published answer text; returned without generating new factual claims."
    • addedOutput schema / properties / data / 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 / 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 / properties / freshness / description
      Added value: +"Available freshness metadata. Distinguish dataAsOf, sourceCheckedAt, editorialReviewedAt and generatedAt; missing fields do not mean current."
    • addedOutput schema / properties / data / properties / limitations / description
      Added value: +"Explicit scope and interpretation limits to preserve in client answers. Empty does not certify complete coverage."
    • addedOutput schema / properties / data / properties / question / description
      Added value: +"Existing published question answered by this knowledge record."
    • addedOutput schema / properties / data / properties / schemaVersion / description
      Added value: +"Public knowledge record contract version kk-public-knowledge-v1; different from the enclosing API schema and server version."
    • addedOutput schema / properties / data / 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 / data / 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 / data / properties / term / description
      Added value: +"Human-readable name of the existing Dutch vehicle term."
    • addedOutput schema / properties / data / properties / termId / description
      Added value: +"Canonical term identifier, including its term. prefix."
    • 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?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description adds significant behavior beyond those: unknown valid keys return TERM_NOT_FOUND, uppercase/spaced inputs fail validation before normalization, calls consume rate limits, and no knowledge writes occur. There is no contradiction with 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 description is dense but efficient, front-loading the core action and input format, then handling routing, error behavior, access, and rate limits in a compact sequence. Every sentence contributes distinct information, and nothing is redundant or filler.

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?

For a single-parameter read tool with a full output schema and safety annotations, the description covers input format, validation failure mode, unknown-key behavior, sibling routing, access level, and rate-limit impact. An agent has everything needed to decide whether and how to invoke this tool correctly.

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?

Schema description coverage is 100%, and the schema already documents the termKey format, pattern, length, examples, and the fact that uppercase/spaced/fuzzy inputs fail validation. The tool description mainly restates these constraints rather than adding new parameter-level meaning, so a baseline 3 is appropriate.

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 a precise verb and resource: 'Read one existing Dutch vehicle definition', and it specifies the exact input form (lowercase slug or term.<slug>). It also explicitly names sibling tools, so an agent can distinguish this from search_vehicle_knowledge, get_answer_context, and get_model_context without inspecting their 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 description gives explicit routing guidance: use search_vehicle_knowledge for free text or unknown keys, get_answer_context for a known answerId, and get_model_context for model-specific context. It also states what this tool does not do ('No fuzzy definition generation'), making when-not-to-use clear.

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