Skip to main content
Glama

create_feature_class

Create an empty feature class in the project's default geodatabase and add it to the map, defining geometry, fields, and coordinate system.

Instructions

Create an empty feature class, by default in the project's default geodatabase, and add it to the map.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
epsgNoCoordinate system WKID, e.g. 32647.
nameYesFeature class name.
has_mNoENABLED or DISABLED.DISABLED
has_zNoENABLED or DISABLED.DISABLED
fieldsNoFields to create, e.g. [{"name": "NAME", "type": "TEXT", "length": 50}].
map_nameNoMap to act on; defaults to the active map.
out_pathNoTarget geodatabase or folder.
templateNoDataset to copy the schema from.
add_to_mapNoAdd the result to the map.
geometry_typeNoPOINT, MULTIPOINT, POLYLINE or POLYGON.POLYGON

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed10 schema fields changedv1.1.1
    • addedInput schema / properties / add_to_map / description
      Added value: +"Add the result to the map."
    • addedInput schema / properties / epsg / description
      Added value: +"Coordinate system WKID, e.g. 32647."
    • addedInput schema / properties / fields
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "additionalProperties": true,
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Fields to create, e.g. [{\"name\": \"NAME\", \"type\": \"TEXT\", \"length\": 50}].",
      +  "title": "Fields"
      +}
    • addedInput schema / properties / geometry_type / description
      Added value: +"POINT, MULTIPOINT, POLYLINE or POLYGON."
    • addedInput schema / properties / has_m
      Added value: +{
      +  "default": "DISABLED",
      +  "description": "ENABLED or DISABLED.",
      +  "title": "Has M",
      +  "type": "string"
      +}
    • addedInput schema / properties / has_z
      Added value: +{
      +  "default": "DISABLED",
      +  "description": "ENABLED or DISABLED.",
      +  "title": "Has Z",
      +  "type": "string"
      +}
    • addedInput schema / properties / map_name / description
      Added value: +"Map to act on; defaults to the active map."
    • addedInput schema / properties / name / description
      Added value: +"Feature class name."
    • addedInput schema / properties / out_path / description
      Added value: +"Target geodatabase or folder."
    • addedInput schema / properties / template
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Dataset to copy the schema from.",
      +  "title": "Template"
      +}
  2. First observedv0.1.0

TDQS

B3.3/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 full burden. It does disclose a genuinely non-obvious default: that the feature class lands in the project's default geodatabase and is added to the map, which is not derivable from the schema (out_path defaults to null). However, it says nothing about failure modes, name collisions, permission/project prerequisites, or whether the project must be saved.

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?

A single sentence with zero waste, front-loaded with the action and followed by the two most decision-relevant defaults. Nothing extraneous.

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?

An output schema exists, so return values need not be explained, and the schema fully documents the 10 parameters. What remains missing for a mutation tool with no annotations is usage routing against siblings and any note on error/prerequisite behavior.

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 schema already documents all 10 parameters (epsg, fields, template, geometry_type, etc.). The description adds only the meaning of the default output location, so baseline 3 is appropriate.

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 ('Create an empty feature class') and adds two meaningful scope details: the default output geodatabase and that the result is added to the map. It is clear enough to distinguish from create_table/create_file_geodatabase, but it never names a sibling or contrast case explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance. With siblings like create_table, create_file_geodatabase, and add_layer in the same namespace, the agent gets no help choosing among them. Only default behavior ('by default in the project's default geodatabase') is stated, which is not usage routing.

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

Deploy Server

Other Tools