Skip to main content
Glama
Yarroudh

cityjson-mcp

by Yarroudh

Validate 3D geometry

cityjson_validate_geometry

Validates CityJSON 3D geometries against ISO 19107 and CityJSON-specific rules, returning a detailed report with invalid object IDs and error-code counts.

Instructions

Validate CityJSON 3D primitives with val3dity according to ISO 19107 concepts and CityJSON-specific geometric checks. Returns a detailed report plus a compact reportSummary containing every invalid object ID and error-code count.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
verboseNo
dataset_idYesDataset handle returned by cityjson_import, cityjson_open, cityjson_import_text, or another transformation tool.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations present, the description carries the full burden of behavioral disclosure. It clearly explains the validation scope and the return behavior: a detailed report plus a compact reportSummary with invalid object IDs and error-code counts. It does not mention side effects, but 'validate' strongly implies read-only analysis and no dataset mutation.

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 two sentences with no filler. It front-loads the core purpose and validation method, then summarizes the output contract. Every sentence earns its place.

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

Completeness4/5

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

For a two-parameter tool with no output schema, the description covers most essential context: what gets validated, how, and what the return contents are. The only meaningful gap is the undocumented verbose parameter and the lack of explicit guidance about when not to use this tool in favor of sibling validators.

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

Parameters2/5

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

Schema description coverage is only 50%: dataset_id is documented, but the verbose parameter has no schema description and is not mentioned in the tool description. The agent is left to infer what verbose changes about the report. Since the description does not compensate for this gap, parameter semantics are incomplete.

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 states a specific verb ('Validate'), a concrete resource ('CityJSON 3D primitives'), and the validation approach (val3dity, ISO 19107, CityJSON-specific geometric checks). This clearly differentiates it from sibling validation tools like cityjson_validate_schema, which target schema validation rather than geometry primitives.

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

Usage Guidelines3/5

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

The description implies when the tool is appropriate: when validating 3D geometry primitives rather than the overall schema or general CityJSON file validity. However, it does not explicitly name alternatives such as cityjson_validate_schema or cityjson_validate, nor does it state conditions for choosing one over another.

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