Skip to main content
Glama
Yarroudh

cityjson-mcp

by Yarroudh

Filter CityJSON LoD

cityjson_filter_lod

Filter a CityJSON dataset to retain only a single level of detail, removing all other LODs and returning a new dataset_id for further processing.

Instructions

Keep only one level of detail using cjio lod_filter. Returns a new dataset_id.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
lodYes
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.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral disclosure burden. It does disclose that the output is a new dataset_id and that the operation keeps only one LoD, which implies the dropped LoDs are not retained in the result. However, it does not state whether the original dataset is mutated, whether it remains available, or whether the operation is reversible.

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 short sentences with no filler or repetition. The action is front-loaded, the implementation is named, and the return behavior is stated. Every sentence earns its place.

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?

The tool is simple and the description covers the core purpose and output, but there are meaningful gaps: lod value semantics are not specified, there is no mention of side effects on the input dataset, and no output schema exists to clarify what the new dataset_id represents. Overall this is adequate but incomplete for fully reliable invocation.

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 50%: dataset_id is documented, but lod has no description. The tool description adds little beyond restating that lod refers to 'one level of detail', which is already implied by the tool name. It does not provide acceptable formats, examples, or allowed LoD values, so an agent may not know whether to pass '1', '2', '1.2', or another representation.

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?

States a specific action ('Keep only one level of detail') on a CityJSON dataset and names the underlying cjio lod_filter operation. This clearly distinguishes it from sibling tools like cityjson_subset or cityjson_attribute_remove, which perform different transformations. The return statement also clarifies that this is a filtering step producing a new dataset handle.

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 to use the tool: when a CityJSON dataset should be reduced to a single level of detail. However, it provides no explicit when-not-to-use guidance and does not mention alternatives, such as cityjson_subset or other transform tools. The usage context is interpretable but not directly stated.

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