Skip to main content
Glama

Create infrastructure zone

create_infrastructure_zone

Create an operational hydraulic boundary (pressure zone, DMA, sewershed, etc.). boundary is a GeoJSON Polygon, or a MultiPolygon when the area comes in separate pieces. (network_id, name) must be unique. Requires infrastructure_zones:write scope.

Input Schema

NameRequiredDescriptionDefault
codeNoOptional short code (e.g. "PZ-04")
kindYesZone kind (required)
nameYesZone name (required)
notesNoFree-form notes
boundaryYesGeoJSON Polygon or MultiPolygon (EPSG:4326). Each ring is closed; coordinates are [lon, lat]. Use MultiPolygon for a boundary in separate pieces - an area split by a rail corridor, or one containing an island.
network_idYesInfrastructure network ID (required)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • removedInput schema / additionalProperties
      Removed value: -false
    • changedInput schema / properties / boundary / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "coordinates": {
      -        "items": {
      -          "items": {
      -            "items": [
      -              {
      -                "type": "number"
      -              },
      -              {
      -                "type": "number"
      -              }
      -            ],
      -            "maxItems": 2,
      -            "minItems": 2,
      -            "type": "array"
      -          },
      -          "type": "array"
      -        },
      -        "type": "array"
      -      },
      -      "type": {
      -        "const": "Polygon",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "coordinates"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "coordinates": {
      -        "items": {
      -          "items": {
      -            "items": {
      -              "items": [
      -                {
      -                  "type": "number"
      -                },
      -                {
      -                  "type": "number"
      -                }
      -              ],
      -              "maxItems": 2,
      -              "minItems": 2,
      -              "type": "array"
      -            },
      -            "type": "array"
      -          },
      -          "type": "array"
      -        },
      -        "type": "array"
      -      },
      -      "type": {
      -        "const": "MultiPolygon",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "coordinates"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "coordinates": {
      +        "items": {
      +          "items": {
      +            "items": false,
      +            "maxItems": 2,
      +            "minItems": 2,
      +            "prefixItems": [
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "number"
      +              }
      +            ],
      +            "type": "array"
      +          },
      +          "type": "array"
      +        },
      +        "type": "array"
      +      },
      +      "type": {
      +        "const": "Polygon",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "coordinates"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "coordinates": {
      +        "items": {
      +          "items": {
      +            "items": {
      +              "items": false,
      +              "maxItems": 2,
      +              "minItems": 2,
      +              "prefixItems": [
      +                {
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "number"
      +                }
      +              ],
      +              "type": "array"
      +            },
      +            "type": "array"
      +          },
      +          "type": "array"
      +        },
      +        "type": "array"
      +      },
      +      "type": {
      +        "const": "MultiPolygon",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "coordinates"
      +    ],
      +    "type": "object"
      +  }
      +]
    • addedInput schema / properties / network_id / pattern
      Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
  2. Changed4 schema fields changed
    • changedInput schema / $schema
      Previous value: -"https://json-schema.org/draft/2020-12/schema"New value: +"http://json-schema.org/draft-07/schema#"
    • addedInput schema / additionalProperties
      Added value: +false
    • changedInput schema / properties / boundary / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "coordinates": {
      -        "items": {
      -          "items": {
      -            "items": false,
      -            "maxItems": 2,
      -            "minItems": 2,
      -            "prefixItems": [
      -              {
      -                "type": "number"
      -              },
      -              {
      -                "type": "number"
      -              }
      -            ],
      -            "type": "array"
      -          },
      -          "type": "array"
      -        },
      -        "type": "array"
      -      },
      -      "type": {
      -        "const": "Polygon",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "coordinates"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "coordinates": {
      -        "items": {
      -          "items": {
      -            "items": {
      -              "items": false,
      -              "maxItems": 2,
      -              "minItems": 2,
      -              "prefixItems": [
      -                {
      -                  "type": "number"
      -                },
      -                {
      -                  "type": "number"
      -                }
      -              ],
      -              "type": "array"
      -            },
      -            "type": "array"
      -          },
      -          "type": "array"
      -        },
      -        "type": "array"
      -      },
      -      "type": {
      -        "const": "MultiPolygon",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "coordinates"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "coordinates": {
      +        "items": {
      +          "items": {
      +            "items": [
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "number"
      +              }
      +            ],
      +            "maxItems": 2,
      +            "minItems": 2,
      +            "type": "array"
      +          },
      +          "type": "array"
      +        },
      +        "type": "array"
      +      },
      +      "type": {
      +        "const": "Polygon",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "coordinates"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "coordinates": {
      +        "items": {
      +          "items": {
      +            "items": {
      +              "items": [
      +                {
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "number"
      +                }
      +              ],
      +              "maxItems": 2,
      +              "minItems": 2,
      +              "type": "array"
      +            },
      +            "type": "array"
      +          },
      +          "type": "array"
      +        },
      +        "type": "array"
      +      },
      +      "type": {
      +        "const": "MultiPolygon",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "coordinates"
      +    ],
      +    "type": "object"
      +  }
      +]
    • removedInput schema / properties / network_id / pattern
      Removed value: -"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
  3. Changed4 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • removedInput schema / additionalProperties
      Removed value: -false
    • changedInput schema / properties / boundary / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "coordinates": {
      -        "items": {
      -          "items": {
      -            "items": [
      -              {
      -                "type": "number"
      -              },
      -              {
      -                "type": "number"
      -              }
      -            ],
      -            "maxItems": 2,
      -            "minItems": 2,
      -            "type": "array"
      -          },
      -          "type": "array"
      -        },
      -        "type": "array"
      -      },
      -      "type": {
      -        "const": "Polygon",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "coordinates"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "coordinates": {
      -        "items": {
      -          "items": {
      -            "items": {
      -              "items": [
      -                {
      -                  "type": "number"
      -                },
      -                {
      -                  "type": "number"
      -                }
      -              ],
      -              "maxItems": 2,
      -              "minItems": 2,
      -              "type": "array"
      -            },
      -            "type": "array"
      -          },
      -          "type": "array"
      -        },
      -        "type": "array"
      -      },
      -      "type": {
      -        "const": "MultiPolygon",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "coordinates"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "coordinates": {
      +        "items": {
      +          "items": {
      +            "items": false,
      +            "maxItems": 2,
      +            "minItems": 2,
      +            "prefixItems": [
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "number"
      +              }
      +            ],
      +            "type": "array"
      +          },
      +          "type": "array"
      +        },
      +        "type": "array"
      +      },
      +      "type": {
      +        "const": "Polygon",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "coordinates"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "coordinates": {
      +        "items": {
      +          "items": {
      +            "items": {
      +              "items": false,
      +              "maxItems": 2,
      +              "minItems": 2,
      +              "prefixItems": [
      +                {
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "number"
      +                }
      +              ],
      +              "type": "array"
      +            },
      +            "type": "array"
      +          },
      +          "type": "array"
      +        },
      +        "type": "array"
      +      },
      +      "type": {
      +        "const": "MultiPolygon",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "coordinates"
      +    ],
      +    "type": "object"
      +  }
      +]
    • addedInput schema / properties / network_id / pattern
      Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
  4. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations cover the safety profile (not read-only, not destructive, not idempotent), so the bar is lower, and the description still adds real value: the uniqueness constraint on (network_id, name), which explains the non-idempotent hint, plus the required OAuth scope. It does not describe what is returned or failure modes.

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?

Three short sentences, front-loaded with the purpose, then the boundary format, then the uniqueness and auth constraints. No filler or redundancy.

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 6-param mutation with no output schema, the description covers the tricky input (boundary geometry), the uniqueness constraint, and the auth scope. Only the return value/error behavior is unaddressed, which is a minor gap given no output schema exists.

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?

Schema description coverage is 100%, so the baseline is 3; the boundary format, kind enum, and id limits are already documented per-parameter. The description restates the Polygon/MultiPolygon rule rather than adding new semantics such as coordinate ordering caveats beyond what the schema says.

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+resource ('Create an operational hydraulic boundary') and disambiguates the domain by naming concrete kinds (pressure zone, DMA, sewershed). It is clearly distinct from create_infrastructure_network or create_service_area, though it never names a sibling explicitly to route the agent.

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 supplies prerequisites (unique (network_id, name), required infrastructure_zones:write scope) which tells the agent when the call will succeed. However, it gives no guidance on choosing this tool over create_infrastructure_network, create_service_area, or bulk_create.

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