Skip to main content
Glama

DaedalMap Reverse Geocoding (coordinates to loc_id)

Resolve Point(s) (Deep)

resolve_deep_point
Read-onlyIdempotent

Second-pass containment only after resolve_point. Supply the original WGS84 coordinate or a bounded point array, one shared shallow_loc_id returned by resolve_point, and one canonical family from get_catalog(catalog='geometry'). family defaults to administrative; shape-backed families use direct bbox-to-exact-shape lookup without crosswalks. Single and bulk requests share this scoped contract. Current catalog: The same geography tools work worldwide across a cataloged baseline of 252 geographic entities, reaching up to Admin 2. Where additional country releases are available, the same calls automatically return deeper administrative tiers or maintained reference families. Additional detail is currently available for Australia, Brazil, Canada, France, Germany, Mexico, United Kingdom, United States.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
latNoLatitude in WGS84 decimal degrees.
lonNoLongitude in WGS84 decimal degrees.
familyNoOne family selector. Defaults to administrative; use marine for the direct Marine resolver, or a canonical country family such as postal_area, watershed, or land_management_region.administrative
pointsNoPoints already known to fall within the supplied shallow_loc_id scope.
batch_idNoOptional caller-supplied batch id echoed for point arrays.
request_idNoOptional caller-supplied request id for tracing.
shallow_loc_idYesThe deepest canonical Admin 1-3 loc_id returned by resolve_point, such as USA-NY-061-009903.
target_admin_levelNoOptional exact Admin 4-6 level. Omit for the deepest available match.

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 changed
    • 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. Changed4 schema fields changed
    • addedInput schema / oneOf
      Added value: +[
      +  {
      +    "not": {
      +      "required": [
      +        "points"
      +      ]
      +    },
      +    "required": [
      +      "lat",
      +      "lon"
      +    ]
      +  },
      +  {
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "lat"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "lon"
      +          ]
      +        }
      +      ]
      +    },
      +    "required": [
      +      "points"
      +    ]
      +  }
      +]
    • addedInput schema / properties / batch_id
      Added value: +{
      +  "description": "Optional caller-supplied batch id echoed for point arrays.",
      +  "type": "string"
      +}
    • addedInput schema / properties / points
      Added value: +{
      +  "description": "Points already known to fall within the supplied shallow_loc_id scope.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "id": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "string"
      +          }
      +        ]
      +      },
      +      "lat": {
      +        "maximum": 90,
      +        "minimum": -90,
      +        "type": "number"
      +      },
      +      "lon": {
      +        "maximum": 180,
      +        "minimum": -180,
      +        "type": "number"
      +      },
      +      "row_index": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "string"
      +          }
      +        ]
      +      }
      +    },
      +    "required": [
      +      "lat",
      +      "lon"
      +    ],
      +    "type": "object"
      +  },
      +  "minItems": 1,
      +  "type": "array"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "lat",
      -  "lon",
      -  "shallow_loc_id"
      -]New value: +[
      +  "shallow_loc_id"
      +]
  3. Changed5 schema fields changed
    • removedInput schema / properties / admin_1_loc_id
      Removed value: -{
      -  "description": "Exactly one Admin 1 loc_id from resolve_point, such as USA-CA.",
      -  "minLength": 5,
      -  "type": "string"
      -}
    • addedInput schema / properties / family
      Added value: +{
      +  "default": "administrative",
      +  "description": "One family selector. Defaults to administrative; use marine for the direct Marine resolver, or a canonical country family such as postal_area, watershed, or land_management_region.",
      +  "pattern": "^[a-z0-9_]+$",
      +  "type": "string"
      +}
    • removedInput schema / properties / include_marine_context
      Removed value: -{
      -  "description": "Include parallel Marine overlaps. Defaults to true.",
      -  "type": "boolean"
      -}
    • addedInput schema / properties / shallow_loc_id
      Added value: +{
      +  "description": "The deepest canonical Admin 1-3 loc_id returned by resolve_point, such as USA-NY-061-009903.",
      +  "minLength": 5,
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "lat",
      -  "lon",
      -  "admin_1_loc_id"
      -]New value: +[
      +  "lat",
      +  "lon",
      +  "shallow_loc_id"
      +]
  4. Added

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior, so the safety profile is covered. The description adds real behavioral context: the single/bulk requests share the same scoped contract, family defaults to administrative, and shape-backed families bypass crosswalks for a direct bbox-to-exact-shape lookup.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The critical precondition is front-loaded in the first sentence, which is good. However, the trailing "Current catalog" paragraph about 252 entities and country releases is long shared boilerplate that does not help an agent invoke this tool correctly and dilutes the signal.

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

Completeness4/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 annotations cover the safety profile. The description supplies the upstream dependency, family default, and bulk contract, leaving little an agent needs that is missing.

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, but the description adds meaning beyond the schema: the shallow_loc_id must be one shared value returned by resolve_point, family defaults to administrative, and the points array must already fall within the shallow scope. Only target_admin_level is left to the 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 action (second-pass containment resolution) and its required inputs, and explicitly distinguishes itself from the sibling resolve_point by positioning as the follow-up pass. An agent can tell what this does and how it differs from the shallow pass without opening either schema.

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?

"Second-pass containment only after resolve_point" is an explicit precondition and names the required upstream call, and it points to get_catalog(catalog='geometry') for valid family values. It does not spell out negative cases (e.g., when to skip a deep pass), so it falls just short of full when/when-not coverage.

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.