Skip to main content
Glama

Resolve Point(s) (Shallow)

resolve_point
Read-onlyIdempotent

Reverse geocode one WGS84 coordinate or a bounded point array into administrative loc_id chains through Admin 3. Returns shallow loc_ids for deeper Admin 4-6 resolution.

Instructions

Compact first-pass reverse geocoding for one WGS84 coordinate or a bounded point array. Returns administrative loc_id chains through Admin 3 without opening deep partitions or side-family shape banks. Use a returned shallow loc_id with resolve_deep_point for Admin 4-6 or one explicit family. Single and bulk requests share this contract; access limits are based on point count.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
latNoLatitude in WGS84 decimal degrees.
lonNoLongitude in WGS84 decimal degrees.
pointsNoBounded WGS84 point array. Use top-level lat/lon instead for one point.
batch_idNoOptional caller-supplied batch id echoed for point arrays.
request_idNoOptional caller-supplied request id for tracing.
target_admin_levelNoOptional exact requested level from Admin 0-3. Omit it to return the deepest available shallow level.
include_marine_contextNoInclude parallel Marine overlaps for land matches. Defaults to true; set false for fast administrative loc_id previews. Offshore Marine fallback still applies.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okNo
errorNo
pointNo
stackNo
familyNo
reasonNo
matchedNo
resultsNo
batch_idNo
guidanceNo
warningsNo
join_keysNo
next_stepNo
request_idNo
point_countNo
clarificationNo
family_resultNo
meter_receiptNo
resolved_countNo
shallow_loc_idNo
deeper_availableNo
overlap_familiesNo
unresolved_countNo
settlement_receiptNo
deepest_resolved_familyNo
deepest_resolved_loc_idNo
deepest_resolved_admin_levelNo
available_deeper_admin_levelsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.0.1
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": true,
      +  "anyOf": [
      +    {
      +      "required": [
      +        "point",
      +        "stack"
      +      ]
      +    },
      +    {
      +      "required": [
      +        "point",
      +        "family",
      +        "family_result"
      +      ]
      +    },
      +    {
      +      "required": [
      +        "point_count",
      +        "results"
      +      ]
      +    },
      +    {
      +      "required": [
      +        "error"
      +      ]
      +    }
      +  ],
      +  "properties": {
      +    "available_deeper_admin_levels": {
      +      "type": "array"
      +    },
      +    "batch_id": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "clarification": {
      +      "type": "object"
      +    },
      +    "deeper_available": {
      +      "type": "boolean"
      +    },
      +    "deepest_resolved_admin_level": {
      +      "type": [
      +        "string",
      +        "integer",
      +        "null"
      +      ]
      +    },
      +    "deepest_resolved_family": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "deepest_resolved_loc_id": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "error": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "code": {
      +          "type": "string"
      +        },
      +        "details": {
      +          "type": "object"
      +        },
      +        "message": {
      +          "type": "string"
      +        },
      +        "retry_hint": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "code",
      +        "message"
      +      ],
      +      "type": "object"
      +    },
      +    "family": {
      +      "type": "string"
      +    },
      +    "family_result": {
      +      "type": "object"
      +    },
      +    "guidance": {
      +      "type": "object"
      +    },
      +    "join_keys": {
      +      "type": "object"
      +    },
      +    "matched": {
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "meter_receipt": {
      +      "type": "object"
      +    },
      +    "next_step": {
      +      "additionalProperties": true,
      +      "anyOf": [
      +        {
      +          "required": [
      +            "action"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "tool"
      +          ]
      +        }
      +      ],
      +      "properties": {
      +        "action": {
      +          "type": "string"
      +        },
      +        "arguments": {
      +          "type": "object"
      +        },
      +        "tool": {
      +          "type": "string"
      +        },
      +        "url": {
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "ok": {
      +      "type": "boolean"
      +    },
      +    "overlap_families": {
      +      "items": {
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "point": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": true,
      +          "properties": {
      +            "lat": {
      +              "type": "number"
      +            },
      +            "lon": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "lat",
      +            "lon"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "point_count": {
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "reason": {
      +      "type": "string"
      +    },
      +    "request_id": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "resolved_count": {
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "results": {
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "error": {
      +            "additionalProperties": true,
      +            "properties": {
      +              "code": {
      +                "type": "string"
      +              },
      +              "details": {
      +                "type": "object"
      +              },
      +              "message": {
      +                "type": "string"
      +              },
      +              "retry_hint": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "code",
      +              "message"
      +            ],
      +            "type": "object"
      +          },
      +          "id": {
      +            "type": [
      +              "string",
      +              "integer",
      +              "null"
      +            ]
      +          },
      +          "ok": {
      +            "type": "boolean"
      +          },
      +          "row_index": {
      +            "type": [
      +              "string",
      +              "integer",
      +              "null"
      +            ]
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "settlement_receipt": {
      +      "type": "object"
      +    },
      +    "shallow_loc_id": {
      +      "type": "string"
      +    },
      +    "stack": {
      +      "items": {
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "unresolved_count": {
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "warnings": {
      +      "items": {
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
  2. Added

TDQS

A4.5/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context: performance characteristics (does not open deep partitions or side-family shape banks), access limits tied to point count, and details about marine context fallback. No contradiction with annotations.

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 sentences with no redundant phrasing. The core purpose is front-loaded, the alternative tool is mentioned early, and the contract details are kept brief. Every sentence adds essential information.

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?

The tool has a multi-modal contract (single vs bulk) and 7 parameters, but the description covers the fundamental usage pattern, naming the exact sibling for deeper resolution, and the access-limit rationale. With an output schema present, no return format explanation is needed. All critical information for correct invocation is present.

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% for all 7 parameters, so the schema already explains each parameter. The description adds minimal extra meaning: it clarifies the dual mode (single vs bulk) and the purpose of target_admin_level and include_marine_context, but these are also described in the schema. Baseline 3 is appropriate since the description adds limited value over the structured schema.

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?

States a specific verb ('reverse geocoding') and resource ('one WGS84 coordinate or a bounded point array'), and clearly scopes the output ('administrative loc_id chains through Admin 3'). Explicitly contrasts with the sibling resolve_deep_point by naming the data partitions it avoids, making the tool easily distinguishable.

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

Usage Guidelines5/5

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

Provides explicit when-to-use guidance: 'first-pass reverse geocoding' and 'without opening deep partitions' indicates the shallow use case, and directly instructs to 'Use a returned shallow loc_id with resolve_deep_point for Admin 4-6 or one explicit family.' Also notes that single and bulk requests share a contract, clarifying invocation patterns.

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