Skip to main content
Glama
Yarroudh

cityjson-mcp

by Yarroudh

Convert CityGML to CityJSON

citygml_to_cityjson

Convert CityGML 1.0/2.0/3.0 GML/XML datasets to CityJSON, with the output opened and returned as a dataset_id for immediate use.

Instructions

Convert a CityGML 1.0/2.0/3.0 GML/XML dataset to CityJSON using citygml-tools. A regular CityJSON output is automatically opened and returned as a dataset_id.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sourceYes
json_linesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description bears the transparency burden. It does disclose a meaningful output behavior: a regular CityJSON output is automatically opened and returned as a dataset_id. It does not cover side effects, error handling, or behavior when json_lines is true, leaving some ambiguity.

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?

Two sentences, front-loaded with the core action and followed by the output behavior, with no redundant phrasing. The mention of citygml-tools is minor but not damaging.

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

Completeness3/5

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

For a no-annotation, no-output-schema conversion tool with two parameters, the description gives the essential purpose and result but omits the meaning of json_lines and any constraints on source. It is minimally usable for the default path but not fully complete.

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?

The input schema has no descriptions and the description has 0% parameter coverage, so the description needed to explain both parameters. It indirectly refers to the CityGML source dataset but never names the source property or explains that json_lines toggles a CityJSON Lines variant. The optional parameter is entirely unexplained.

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 uses a specific action (convert), resource (CityGML 1.0/2.0/3.0 GML/XML to CityJSON), and explicitly names the direction, so an agent can distinguish it from sibling tools like cityjson_to_citygml. It also scopes the accepted input formats clearly.

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

Usage Guidelines4/5

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

It clearly implies the tool is for converting CityGML inputs to CityJSON, with supported input versions stated. It does not, however, name alternative tools for cases like already-CityJSON inputs or reverse conversion, so exclusions are absent rather than explicit.

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