Skip to main content
Glama

Mapsource OpenStreetMap & Geospatial APIs

geo_analyze

Read-only

Measure or transform geometry using buffer, centroid, bbox, area, length, distance, intersect, union, difference, contains, intersects, nearest, simplify, or convex. Inputs accept GeoJSON, coordinate pairs, Overpass results, and result handles. Polygon overlay operations require areas. Use operation pipeline for up to 12 ordered steps and estimateOnly for cost estimation. Requires a subscription key.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
aNoGeoJSON, a [lon, lat] pair, an Overpass result, a places result, or a result handle such as rh_ followed by 32 hex characters. Required for every operation except pipeline.
bNoThe second operand, in the same forms as a.
unitsNometers
returnsNopipeline only: which step to return, as $stepId. Defaults to the last.
distanceNoBuffer radius or simplify tolerance.
pipelineNopipeline only: ordered steps. Any argument may be $anEarlierStepId.
operationYesbuffer and simplify take distance. distance, intersect, union, difference, contains, intersects and nearest take a second geometry in b. pipeline runs several steps server-side and takes pipeline instead of a.
estimateOnlyNopipeline: calculate estimated cost without execution.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / estimateOnly / description
      Previous value: -"pipeline only: report what it would cost without running it."New value: +"pipeline: calculate estimated cost without execution."
  2. Changed1 schema field changed
    • changedInput schema / properties / a / description
      Previous value: -"GeoJSON, a [lon, lat] pair, an Overpass result, a places result, or a result handle such as res_abc123. Required for every operation except pipeline."New value: +"GeoJSON, a [lon, lat] pair, an Overpass result, a places result, or a result handle such as rh_ followed by 32 hex characters. Required for every operation except pipeline."
  3. Changed7 schema fields changed
    • changedInput schema / properties / a / description
      Previous value: -"GeoJSON, a [lon, lat] pair, an Overpass result, or a result handle such as res_abc123."New value: +"GeoJSON, a [lon, lat] pair, an Overpass result, a places result, or a result handle such as res_abc123. Required for every operation except pipeline."
    • addedInput schema / properties / estimateOnly
      Added value: +{
      +  "default": false,
      +  "description": "pipeline only: report what it would cost without running it.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / operation / description
      Previous value: -"buffer and simplify take distance. distance, intersect, union, difference, contains, intersects and nearest take a second geometry in b."New value: +"buffer and simplify take distance. distance, intersect, union, difference, contains, intersects and nearest take a second geometry in b. pipeline runs several steps server-side and takes pipeline instead of a."
    • changedInput schema / properties / operation / enum
      Previous value: -[
      -  "buffer",
      -  "centroid",
      -  "bbox",
      -  "area",
      -  "length",
      -  "distance",
      -  "intersect",
      -  "union",
      -  "difference",
      -  "contains",
      -  "intersects",
      -  "nearest",
      -  "simplify",
      -  "convex"
      -]New value: +[
      +  "buffer",
      +  "centroid",
      +  "bbox",
      +  "area",
      +  "length",
      +  "distance",
      +  "intersect",
      +  "union",
      +  "difference",
      +  "contains",
      +  "intersects",
      +  "nearest",
      +  "simplify",
      +  "convex",
      +  "pipeline"
      +]
    • addedInput schema / properties / pipeline
      Added value: +{
      +  "description": "pipeline only: ordered steps. Any argument may be $anEarlierStepId.",
      +  "items": {
      +    "properties": {
      +      "args": {
      +        "additionalProperties": {},
      +        "default": {},
      +        "propertyNames": {
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      "id": {
      +        "description": "Referenced by later steps as $id.",
      +        "type": "string"
      +      },
      +      "op": {
      +        "enum": [
      +          "search",
      +          "nearby",
      +          "route",
      +          "isochrone",
      +          "matrix",
      +          "analyze",
      +          "filter",
      +          "sort",
      +          "limit"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "op"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 12,
      +  "type": "array"
      +}
    • addedInput schema / properties / returns
      Added value: +{
      +  "description": "pipeline only: which step to return, as $stepId. Defaults to the last.",
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "operation",
      -  "a"
      -]New value: +[
      +  "operation"
      +]
  4. Added

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description is consistent with that (compute/transform, no persistence claims). Beyond the annotations it adds real context: the subscription-key auth requirement, the 12-step pipeline cap, the estimateOnly cost-estimation mode, and the constraint that overlay ops need polygon areas. It does not disclose rate limits or what a successful response contains.

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?

Dense but front-loaded: the operation enumeration and accepted input forms lead, followed by the pipeline/estimateOnly note and the auth prerequisite. Nearly every clause carries information, though the long operation list partially duplicates the enum in the schema.

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 complex 8-parameter tool with a nested pipeline and no output schema, the description covers inputs, the pipeline cap, and auth but says nothing about what comes back (result handles, geometry payloads, units of numeric results) or failure behavior. The mention of 'result handle such as rh_...' in the schema hints outputs are handles, but the description never closes that loop.

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 coverage is 88%, so the schema already documents a, b, distance, units, pipeline, returns, and estimateOnly, including which operations take b vs. distance. The description mostly restates this (operation list, input forms, 'polygon overlay operations require areas'), adding only marginal meaning beyond the schema. 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?

States a specific verb pair ('measure or transform') plus the resource ('geometry') and enumerates all 15 operations, so an agent can tell this is a geometry-computation tool rather than a search or routing tool. It never names a sibling to route away from, so differentiation from geo_search/find_features/route is only implicit.

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?

Gives conditional guidance for the pipeline path ('Use operation pipeline for up to 12 ordered steps and estimateOnly for cost estimation') and a prerequisite ('Polygon overlay operations require areas', 'Requires a subscription key'). It does not say when to prefer this tool over siblings such as geo_search, find_features, or route for spatial questions, so usage is only partially implied.

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