Skip to main content
Glama
nkarasiak

QGIS MCP

by nkarasiak

Identify Features

identify_features
Read-only

Identify features at a given coordinate across map layers, using tolerance to expand the search. Handles CRS reprojection and optional layer filtering.

Instructions

Identify features at a point [x, y] across layers (map-click analogue). The point and tolerance are in crs when given, else the project CRS; layers in another CRS are reprojected. tolerance (in those units) expands the search; 0 = exact hit. layer_ids limits the search (default: visible vector layers). limit caps features per layer. Layers the point cannot be transformed into are listed in skipped_layers.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
crsNo
limitNo
pointYes
layer_idsNo
toleranceNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.15.0
    • addedInput schema / properties / crs
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
  2. Addedv0.5.0

TDQS

A4.8/5.0
Behavior5/5

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

The description adds substantial behavior beyond the readOnlyHint annotation: it explains CRS handling (reprojection), tolerance semantics (0 = exact), default layer scope, and the skipped_layers output. This gives an agent a clear picture of side effects and edge cases without contradicting the annotation.

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?

The description is a single dense paragraph that front-loads the core purpose and then systematically covers parameters and behaviors. Every sentence adds value, with no filler or repetition. It is concise yet comprehensive.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 5 parameters and no output schema, the description covers all inputs, default behaviors, CRS handling, and a notable output field (skipped_layers). Nothing an agent needs to invoke it correctly is missing.

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?

Despite 0% schema description coverage, the description explains every parameter: point and tolerance units, crs fallback, layer_ids default, and limit cap. It adds meaning beyond the raw schema types and defaults, making each parameter actionable.

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 clearly states the tool's purpose: 'Identify features at a point [x, y] across layers' with the helpful analogy '(map-click analogue)'. This makes the action and resource unambiguous, and the mention of 'across layers' differentiates it from single-layer query tools among the siblings.

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 description gives clear context for when to use it (as a map-click analogue) and how to scope it via layer_ids and limit, but it does not explicitly name alternative tools or state when NOT to use it. The analogy and default behavior (visible vector layers) imply usage, but a direct comparison to a sibling like get_layer_features would strengthen it.

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