Skip to main content
Glama

DaedalMap Geography Tools (loc_id)

Convert Geographic Reference

convert_reference
Read-onlyIdempotent

The single geographic reference converter. Converts one reference, or a bounded list, through DaedalMap loc_id: X -> loc_id -> Y. Omit to_system to enter the loc_id universe; provide it for any-to-any conversion. Use get_pack first when the family or country-specific system is unknown. The tools/list access metadata states the current free, account, and paid item allowances; exceeding an included allowance requires payment and exceeding the paid ceiling returns a typed cap error.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
iso3NoCountry hint for crosswalk artifacts. Default USA.
as_ofNoISO date or year used for time-bounded identities.
itemsNoReference conversions to run in one call. Default public cap is deployment-configurable.
limitNoMaximum ranked output references to return. Default 10.
valueNoIdentifier or name in the input system.
batch_idNoOptional caller-supplied batch id for tracing.
min_shareNoOptional minimum overlap share threshold.
to_systemNoOptional output reference system. Defaults to DaedalMap loc_id; provide zcta, nws_fire, overlay_nws_public_zone, overlay_tribal, admin_local, or another catalog system for any-to-any conversion.daedalmap.loc_id
request_idNoOptional caller-supplied request id for tracing.
from_systemNoInput reference system, such as zip, overlay_zcta, nws_fire, tribal, admin_boundary, or loc_id.
country_hintNoOptional country hint for admin/name resolution.
admin_level_hintNoOptional admin-level hint for admin/name resolution.
target_admin_levelNoAdmin level used as the intermediate crosswalk target. Default admin_2.
relationship_vintageNoOptional source relationship vintage to require.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okNo
fromNo
errorNo
loc_idNo
reasonNo
resultsNo
batch_idNo
guidanceNo
warningsNo
next_stepNo
to_systemNo
item_countNo
request_idNo
from_systemNo
clarificationNo
meter_receiptNo
converted_countNo
unconverted_countNo
settlement_receiptNo

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": [
      +        "ok",
      +        "results"
      +      ]
      +    },
      +    {
      +      "required": [
      +        "item_count",
      +        "results"
      +      ]
      +    },
      +    {
      +      "required": [
      +        "error"
      +      ]
      +    }
      +  ],
      +  "properties": {
      +    "batch_id": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "clarification": {
      +      "type": "object"
      +    },
      +    "converted_count": {
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "error": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "code": {
      +          "type": "string"
      +        },
      +        "details": {
      +          "type": "object"
      +        },
      +        "message": {
      +          "type": "string"
      +        },
      +        "retry_hint": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "code",
      +        "message"
      +      ],
      +      "type": "object"
      +    },
      +    "from": {
      +      "type": "object"
      +    },
      +    "from_system": {
      +      "type": "string"
      +    },
      +    "guidance": {
      +      "type": "object"
      +    },
      +    "item_count": {
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "loc_id": {
      +      "type": [
      +        "string",
      +        "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"
      +    },
      +    "reason": {
      +      "type": "string"
      +    },
      +    "request_id": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "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"
      +    },
      +    "to_system": {
      +      "type": "string"
      +    },
      +    "unconverted_count": {
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "warnings": {
      +      "items": {
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
  2. Changed9 schema fields changed
    • changedInput schema / anyOf
      Previous value: -[
      -  {
      -    "required": [
      -      "from_system",
      -      "value",
      -      "to_system"
      -    ]
      -  },
      -  {
      -    "required": [
      -      "items"
      -    ]
      -  }
      -]New value: +[
      +  {
      +    "required": [
      +      "from_system",
      +      "value"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "items"
      +    ]
      +  }
      +]
    • addedInput schema / properties / admin_level_hint
      Added value: +{
      +  "description": "Optional admin-level hint for admin/name resolution.",
      +  "maximum": 6,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / as_of
      Added value: +{
      +  "description": "ISO date or year used for time-bounded identities.",
      +  "type": "string"
      +}
    • addedInput schema / properties / country_hint
      Added value: +{
      +  "description": "Optional country hint for admin/name resolution.",
      +  "type": "string"
      +}
    • addedInput schema / properties / items / items / properties / admin_level_hint
      Added value: +{
      +  "description": "Optional admin-level hint for admin/name resolution.",
      +  "maximum": 6,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / items / items / properties / as_of
      Added value: +{
      +  "description": "ISO date or year used for time-bounded identities.",
      +  "type": "string"
      +}
    • addedInput schema / properties / items / items / properties / country_hint
      Added value: +{
      +  "description": "Optional country hint for admin/name resolution.",
      +  "type": "string"
      +}
    • addedInput schema / properties / to_system / default
      Added value: +"daedalmap.loc_id"
    • changedInput schema / properties / to_system / description
      Previous value: -"Output reference system, such as loc_id, zcta, nws_fire, overlay_nws_public_zone, overlay_tribal, admin_local, or admin_geometry."New value: +"Optional output reference system. Defaults to DaedalMap loc_id; provide zcta, nws_fire, overlay_nws_public_zone, overlay_tribal, admin_local, or another catalog system for any-to-any conversion."
  3. Changed6 schema fields changed
    • removedInput schema / properties / bridge_vintage
      Removed value: -{
      -  "description": "Optional source bridge vintage to require.",
      -  "type": "string"
      -}
    • changedInput schema / properties / iso3 / description
      Previous value: -"Country hint for bridge artifacts. Default USA."New value: +"Country hint for crosswalk artifacts. Default USA."
    • removedInput schema / properties / items / items / properties / bridge_vintage
      Removed value: -{
      -  "description": "Optional bridge vintage for this row.",
      -  "type": "string"
      -}
    • addedInput schema / properties / items / items / properties / relationship_vintage
      Added value: +{
      +  "description": "Optional relationship vintage for this row.",
      +  "type": "string"
      +}
    • addedInput schema / properties / relationship_vintage
      Added value: +{
      +  "description": "Optional source relationship vintage to require.",
      +  "type": "string"
      +}
    • changedInput schema / properties / target_admin_level / description
      Previous value: -"Admin level used as the intermediate bridge target. Default admin_2."New value: +"Admin level used as the intermediate crosswalk target. Default admin_2."
  4. Changed4 schema fields changed
    • addedInput schema / anyOf
      Added value: +[
      +  {
      +    "required": [
      +      "from_system",
      +      "value",
      +      "to_system"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "items"
      +    ]
      +  }
      +]
    • addedInput schema / properties / batch_id
      Added value: +{
      +  "description": "Optional caller-supplied batch id for tracing.",
      +  "type": "string"
      +}
    • addedInput schema / properties / items
      Added value: +{
      +  "description": "Reference conversions to run in one call. Default public cap is deployment-configurable.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "bridge_vintage": {
      +        "description": "Optional bridge vintage for this row.",
      +        "type": "string"
      +      },
      +      "from_system": {
      +        "description": "Input reference system for this row. Defaults to top-level from_system when omitted.",
      +        "type": "string"
      +      },
      +      "id": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "string"
      +          }
      +        ],
      +        "description": "Optional caller identifier echoed in the result."
      +      },
      +      "iso3": {
      +        "description": "Optional country hint for this row.",
      +        "type": "string"
      +      },
      +      "limit": {
      +        "description": "Maximum ranked output references for this row.",
      +        "maximum": 100,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "min_share": {
      +        "description": "Optional minimum overlap share threshold for this row.",
      +        "maximum": 1,
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "row_index": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "string"
      +          }
      +        ],
      +        "description": "Optional caller row identifier echoed in the result."
      +      },
      +      "target_admin_level": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "integer"
      +          }
      +        ],
      +        "description": "Optional intermediate admin target level for this row."
      +      },
      +      "to_system": {
      +        "description": "Output reference system for this row. Defaults to top-level to_system when omitted.",
      +        "type": "string"
      +      },
      +      "value": {
      +        "description": "Identifier or name in the input system.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "value"
      +    ],
      +    "type": "object"
      +  },
      +  "minItems": 1,
      +  "type": "array"
      +}
    • removedInput schema / required
      Removed value: -[
      -  "from_system",
      -  "value",
      -  "to_system"
      -]
  5. Added

TDQS

A4.6/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 description's added value is the allowance/payment/cap-error model. It discloses that exceeding included allowances requires payment and that exceeding the paid ceiling returns a typed cap error, which is useful operational context beyond the annotations. It does not directly state how to discover current allowances, only points to tools/list metadata.

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?

The description is front-loaded with the purpose and then packs usage, prerequisite, and cost behavior into a few sentences. It is dense but not padded; the DaedalMap notation and meta reference to tools/list access metadata keep it from being maximally crisp.

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?

With a rich schema (100% description coverage) and an output schema, the description focuses on the non-schema gaps: conversion modes, get_pack prerequisite, and cap/payment behavior. Given the annotations and output schema, this is complete enough for an agent to call the tool correctly.

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 coverage is 100%, so the baseline is 3. The description adds semantic context for the to_system parameter, explaining omission versus provision, and distinguishes single-reference from bounded-list input modes, going beyond the schema's field-level documentation. Most per-parameter details remain in the schema, so it is not a 5.

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 'The single geographic reference converter' and describes conversion through DaedalMap loc_id, making the verb and resource clear. It also differentiates from the sibling get_pack by naming when to use that tool first. Jargon like 'X -> loc_id -> Y' is dense but does not obscure the core purpose.

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?

Gives explicit conditional usage: omit to_system to enter the loc_id universe, provide it for any-to-any conversion, and use get_pack first when the family or country-specific system is unknown. These are concrete when-to-use and prerequisite rules rather than implied guidance.

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.