Skip to main content
Glama

AssetLab

Update infrastructure asset

update_infrastructure_asset
DestructiveIdempotent

Update an existing infrastructure asset (feature) by ID. To change geometry, provide a new GeoJSON Point/LineString matching the existing feature_type. Computed columns (length_m, slope_pct, risk_score) cannot be set. Requires infrastructure_assets:write scope.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesInfrastructure asset ID
nameNo
lanesNo
modelNo
depth_mNo
qr_codeNo
site_idNo
width_mNo
geometryNoReplacement GeoJSON geometry
materialNo
quantityNo
image_urlNo
status_idNo
system_idNo
to_streetNo
road_classNoO. Reg. 239/02 road class 1-6 (1-2 arterial, 3-4 collector, 5-6 local)
building_idNo
data_sourceNo
descriptionNo
diameter_mmNo
from_streetNo
location_idNo
risk_factorNo
to_invert_mNo
external_idsNo
feature_codeNo
install_dateNo
asset_type_idNo
from_invert_mNo
purchase_costNo
purchase_dateNo
safety_impactNo
salvage_valueNo
serial_numberNo
to_feature_idNo
flow_directionNo
service_impactNo
condition_scoreNo
from_feature_idNo
manufacturer_idNo
system_class_idNo
system_group_idNo
unit_of_measureNo
financial_impactNo
regulatory_impactNo
reputation_impactNo
environmental_impactNo
last_maintenance_dateNo
unit_replacement_valueNo
expected_lifetime_yearsNo
salvage_value_percentageNo
positional_accuracy_classNo
likelihood_of_failure_scoreNo
consequence_of_failure_scoreNo
purchase_cost_calculation_methodNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

B3.4/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnlyHint=false, destructiveHint=true, idempotentHint=true), so the description's bar is lower, and it still adds substantive behavior: computed columns (length_m, slope_pct, risk_score) are immutable and the required infrastructure_assets:write scope. It does not disclose whether unlisted fields are cleared or preserved, which matters for a destructive-flagged mutation.

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?

Three tight sentences, front-loaded with the operation and ID, then the two most failure-prone constraints (geometry typing, immutable computed columns). No filler; a small amount of space could still go to update semantics.

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 55-parameter mutation with no output schema, the description covers the highest-risk gotchas (geometry replacement, computed columns, scope) but omits partial-vs-full update semantics, which the idempotentHint implies but never confirms. Adequate, not 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?

Schema description coverage is only 5% across 55 parameters, so the description carries the burden, yet it explains only the geometry parameter and the computed-column exclusion. The remaining ~50 fields (road_class, flow_direction, positional_accuracy_class enums, financial/risk fields) get no meaning beyond their names in the 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?

States a specific verb and resource ('Update an existing infrastructure asset (feature) by ID'), which clearly separates it from create_infrastructure_asset and delete_infrastructure_asset. It does not, however, distinguish itself from the generic update_asset or bulk_update siblings, so the agent must infer which 'update' variant applies.

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?

It gives a usable rule for the geometry case ('to change geometry, provide a new GeoJSON Point/LineString matching the existing feature_type') and names the write scope, which is real usage guidance. It never states when to prefer this tool over update_asset, bulk_update, or update_infrastructure_asset_part, so sibling routing is left to inference.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources