Skip to main content
Glama
Yarroudh

cityjson-mcp

by Yarroudh

Assign CityJSON CRS

cityjson_assign_crs

Assign or update the EPSG code for a CityJSON dataset without altering coordinate values. Returns a new dataset_id for subsequent operations.

Instructions

Assign/update the EPSG reference without changing coordinate values using cjio. Returns a new dataset_id.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
epsgYes
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

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral burden. It discloses that coordinate values are not changed and that the tool returns a new dataset_id, covering the most important side-effect and output behavior. It does not detail error cases or whether the original dataset is mutated, but for this simple assignment operation the disclosure is reasonably complete.

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

Conciseness4/5

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

The description is two short sentences with the core behavior front-loaded. The phrase 'using cjio' is mild filler that an agent does not need, but the overall size is appropriate and the return behavior is included.

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 the required semantic context: what the tool does, what it does not do, and what it returns. The schema covers dataset_id and requiredness. It could be more complete by explicitly stating whether the input dataset is left unchanged, but the description is adequate for correct invocation.

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?

The dataset_id parameter is already documented in the schema, but the epsg parameter has no schema description. The tool description ties epsg to the 'EPSG reference' concept and clarifies it is not a coordinate transformation, which adds some meaning. However, it does not provide examples, valid-range guidance, or further semantics beyond what the parameter name already implies.

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 specific verb and resource ('Assign/update the EPSG reference') and adds the key distinguishing constraint 'without changing coordinate values', which separates it from tools like cityjson_reproject. An agent can tell what this tool does and what it deliberately avoids doing.

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?

The phrase 'without changing coordinate values' provides clear usage context: use this when setting/updating CRS metadata rather than transforming geometry. It stops short of explicitly naming an alternative tool or saying 'use reproject when coordinate values must change', so it does not fully earn a 5.

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