Skip to main content
Glama

Resolve a place in India

resolve_place
Read-onlyIdempotent

Resolve a place name, code, or coordinates into ranked matches with lat/lng, or find nearby railway stations, airports, and bus stations by distance.

Instructions

Turns a name or code into coordinates, or coordinates into nearby transport points. With query: matches railway station codes and names, airport IATA codes and names, bus stations, and landmarks or localities via OpenStreetMap geocoding, returning ranked matches with kind, code and lat/lng. With lat/lng: returns the nearest railway stations (within 10 km), airports with IATA codes (within 60 km) and bus stations (within 5 km), with straight-line distances. Does not search hotels.

Input Schema

NameRequiredDescriptionDefault
latNoLatitude, for nearby transport points.
lngNoLongitude, for nearby transport points.
kindNoOnly return this kind of place.
limitNoMaximum matches for a query.
queryNoName or code, e.g. 'Howrah', 'BLR', 'Hawa Mahal'.

Output Schema

NameRequiredDescriptionDefault
notesYesCaveats, unavailable geocoders and attribution.
nearbyYesTransport points near the given lat/lng, nearest first (null when query was given).
matchesYesPlaces matching query, best first (empty when lat/lng was given).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changedv0.3.0
    • addedOutput schema / properties / matches / description
      Added value: +"Places matching query, best first (empty when lat/lng was given)."
    • addedOutput schema / properties / matches / items / properties / code / description
      Added value: +"Railway station code or airport IATA code (null when the place has none)."
    • addedOutput schema / properties / matches / items / properties / context / description
      Added value: +"Extra detail, e.g. the airport's city, the bus operator, a halt marker or the geocoder's locality."
    • addedOutput schema / properties / matches / items / properties / kind / description
      Added value: +"Kind of place: station, airport, bus_station, landmark, locality or point (raw coordinates)."
    • addedOutput schema / properties / matches / items / properties / lat / description
      Added value: +"Latitude."
    • addedOutput schema / properties / matches / items / properties / lng / description
      Added value: +"Longitude."
    • addedOutput schema / properties / matches / items / properties / name / description
      Added value: +"Place name."
    • addedOutput schema / properties / matches / items / properties / source / description
      Added value: +"Dataset or geocoder the place came from, e.g. openstreetmap, ourairports, or input for given coordinates."
    • changedOutput schema / properties / nearby / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "airports": {
      -        "items": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "code": {
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "context": {
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "distance_km": {
      -              "type": "number"
      -            },
      -            "kind": {
      -              "type": "string"
      -            },
      -            "lat": {
      -              "type": "number"
      -            },
      -            "lng": {
      -              "type": "number"
      -            },
      -            "name": {
      -              "type": "string"
      -            },
      -            "source": {
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "kind",
      -            "name",
      -            "code",
      -            "context",
      -            "lat",
      -            "lng",
      -            "source",
      -            "distance_km"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "bus_stations": {
      -        "items": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "code": {
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "context": {
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "distance_km": {
      -              "type": "number"
      -            },
      -            "kind": {
      -              "type": "string"
      -            },
      -            "lat": {
      -              "type": "number"
      -            },
      -            "lng": {
      -              "type": "number"
      -            },
      -            "name": {
      -              "type": "string"
      -            },
      -            "source": {
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "kind",
      -            "name",
      -            "code",
      -            "context",
      -            "lat",
      -            "lng",
      -            "source",
      -            "distance_km"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "stations": {
      -        "items": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "code": {
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "context": {
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "distance_km": {
      -              "type": "number"
      -            },
      -            "kind": {
      -              "type": "string"
      -            },
      -            "lat": {
      -              "type": "number"
      -            },
      -            "lng": {
      -              "type": "number"
      -            },
      -            "name": {
      -              "type": "string"
      -            },
      -            "source": {
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "kind",
      -            "name",
      -            "code",
      -            "context",
      -            "lat",
      -            "lng",
      -            "source",
      -            "distance_km"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      }
      -    },
      -    "required": [
      -      "stations",
      -      "airports",
      -      "bus_stations"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "airports": {
      +        "description": "Up to 2 nearest airports with IATA codes within 60 km.",
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "code": {
      +              "description": "Railway station code or airport IATA code (null when the place has none).",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "context": {
      +              "description": "Extra detail, e.g. the airport's city, the bus operator, a halt marker or the geocoder's locality.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "distance_km": {
      +              "description": "Straight-line distance from the given lat/lng, km.",
      +              "type": "number"
      +            },
      +            "kind": {
      +              "description": "Kind of place: station, airport, bus_station, landmark, locality or point (raw coordinates).",
      +              "type": "string"
      +            },
      +            "lat": {
      +              "description": "Latitude.",
      +              "type": "number"
      +            },
      +            "lng": {
      +              "description": "Longitude.",
      +              "type": "number"
      +            },
      +            "name": {
      +              "description": "Place name.",
      +              "type": "string"
      +            },
      +            "source": {
      +              "description": "Dataset or geocoder the place came from, e.g. openstreetmap, ourairports, or input for given coordinates.",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "kind",
      +            "name",
      +            "code",
      +            "context",
      +            "lat",
      +            "lng",
      +            "source",
      +            "distance_km"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "bus_stations": {
      +        "description": "Up to 2 nearest bus stations within 5 km.",
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "code": {
      +              "description": "Railway station code or airport IATA code (null when the place has none).",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "context": {
      +              "description": "Extra detail, e.g. the airport's city, the bus operator, a halt marker or the geocoder's locality.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "distance_km": {
      +              "description": "Straight-line distance from the given lat/lng, km.",
      +              "type": "number"
      +            },
      +            "kind": {
      +              "description": "Kind of place: station, airport, bus_station, landmark, locality or point (raw coordinates).",
      +              "type": "string"
      +            },
      +            "lat": {
      +              "description": "Latitude.",
      +              "type": "number"
      +            },
      +            "lng": {
      +              "description": "Longitude.",
      +              "type": "number"
      +            },
      +            "name": {
      +              "description": "Place name.",
      +              "type": "string"
      +            },
      +            "source": {
      +              "description": "Dataset or geocoder the place came from, e.g. openstreetmap, ourairports, or input for given coordinates.",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "kind",
      +            "name",
      +            "code",
      +            "context",
      +            "lat",
      +            "lng",
      +            "source",
      +            "distance_km"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "stations": {
      +        "description": "Up to 3 nearest railway stations within 10 km.",
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "code": {
      +              "description": "Railway station code or airport IATA code (null when the place has none).",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "context": {
      +              "description": "Extra detail, e.g. the airport's city, the bus operator, a halt marker or the geocoder's locality.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "distance_km": {
      +              "description": "Straight-line distance from the given lat/lng, km.",
      +              "type": "number"
      +            },
      +            "kind": {
      +              "description": "Kind of place: station, airport, bus_station, landmark, locality or point (raw coordinates).",
      +              "type": "string"
      +            },
      +            "lat": {
      +              "description": "Latitude.",
      +              "type": "number"
      +            },
      +            "lng": {
      +              "description": "Longitude.",
      +              "type": "number"
      +            },
      +            "name": {
      +              "description": "Place name.",
      +              "type": "string"
      +            },
      +            "source": {
      +              "description": "Dataset or geocoder the place came from, e.g. openstreetmap, ourairports, or input for given coordinates.",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "kind",
      +            "name",
      +            "code",
      +            "context",
      +            "lat",
      +            "lng",
      +            "source",
      +            "distance_km"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      }
      +    },
      +    "required": [
      +      "stations",
      +      "airports",
      +      "bus_stations"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / nearby / description
      Added value: +"Transport points near the given lat/lng, nearest first (null when query was given)."
    • addedOutput schema / properties / notes / description
      Added value: +"Caveats, unavailable geocoders and attribution."
  2. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior. Beyond that, the description adds concrete behavioral details: ranked matches with kind/code/lat/lng, radius limits of 10 km for stations, 60 km for airports, 5 km for bus stations, straight-line distances, and the explicit exclusion of hotels.

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 front-loaded, dense, and free of filler. It covers the dual-mode behavior and the key exclusion in three efficient sentences.

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 five-parameter, dual-mode geospatial resolution tool with annotations and an output schema already present, the description provides enough context to call the tool correctly. It explains both input modes, the kinds of results, distance limits, and a notable exclusion.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/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 description adds meaningful semantics by explaining what `query` matches (railway station codes and names, airport IATA codes and names, bus stations, landmarks/localities via OpenStreetMap) and what lat/lng returns, going beyond the schema's brief parameter descriptions.

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 gives a specific verb+resource and clearly describes the two operating modes: name/code into coordinates, or coordinates into nearby transport points. It also explicitly distinguishes itself from hotel search with 'Does not search hotels,' which helps against siblings like search_hotels.

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?

It clearly states when to use each mode: `query` for station/airport/bus/landmark lookup and lat/lng for nearby transport discovery, with specific distance thresholds. It does not name a specific sibling alternative for non-hotel place resolution, but the mode selection guidance is explicit and useful.

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