Skip to main content
Glama
HamerCode

CityDPC-MCP

by HamerCode

enrich_building

Add semantic attributes such as height, roof type, function, usage, construction year, and storeys to a CityGML/CityJSON building by ID, updating the dataset directly.

Instructions

Reichert ein Gebäude mit semantischen Informationen an.

Die Änderungen werden direkt im Dataset vorgenommen (Single Source of Truth). Verwende take_snapshot() vor wichtigen Änderungen und save_dataset() zum Speichern.

Args: building_id: Die gml:id des Gebäudes measured_height: Gemessene Gebäudehöhe in Metern roof_type: Dachtyp-Code (z.B. "1000"=Flach, "1030"=Sattel, "1040"=Walm, "3100"=andere) roof_height: Dachhöhe in Metern function: Gebäudefunktion-Code nach CityGML (z.B. "31001_1010"=Wohngebäude, "31001_2000"=Gewerbe) usage: Nutzung des Gebäudes (z.B. "residential", "commercial", "industrial") year_of_construction: Baujahr (z.B. 2020) storeys_above_ground: Anzahl der Stockwerke über dem Boden storeys_below_ground: Anzahl der Stockwerke unter dem Boden (Keller) creation_date: Erstellungsdatum des Gebäudes (ISO-Format: "2020-01-15") Returns: dict: Das angereicherte Gebäude mit allen Attributen

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
usageNo
functionNo
roof_typeNo
building_idYes
roof_heightNo
creation_dateNo
measured_heightNo
storeys_above_groundNo
storeys_below_groundNo
year_of_constructionNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and does well: it discloses that changes are made directly in the dataset, recommends snapshotting before important changes, and notes save_dataset() is needed to persist. It does not cover permissions, validation failures, or rollback behavior.

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 purpose and mutation workflow are front-loaded, and the Args list is necessary because the schema lacks property descriptions. The Returns line is somewhat redundant given the output schema exists, but overall the structure is efficient.

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 10-parameter mutation tool with no annotations and 0% schema coverage, the description is complete enough: it explains the mutation, persistence workflow, and all parameter meanings. It could say more about invalid inputs or permission requirements, but the output schema handles return values.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate for all 10 parameters. It describes every parameter, including units, code examples, and intended meaning for roof_type, function, usage, and date formats, adding substantial value beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: enriching a building with semantic information. It is clearly distinct from create_building, remove_building_attributes, and read-only siblings, but it does not explicitly name alternatives or contrast itself with them.

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 gives clear workflow guidance: use take_snapshot() before important changes and save_dataset() to persist. This establishes context and prerequisites, though it does not explicitly say when to choose enrich_building over create_building or manual attribute editing.

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