DaedalMap Geography Tools (loc_id)
Server Details
Resolve coordinates and geographic identifiers to loc_id, crosswalks, boundaries, and exports.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- xyver/daedal-map
- GitHub Stars
- 2
- Server Listing
- daedal-map
Available Tools
20 toolscheck_geometryCheck loc_id Geometry AvailabilityARead-onlyInspect
Fast shape-only preflight for one loc_id or a bounded loc_id list. Reports whether each exact identity has reusable geometry and its geometry vintage. Historical geometry remains the primary result; an evidenced current successor is only an explicit follow-up choice. It does not resolve points or explain other identity relationships. Use before get_geometry or an export. No payment required.
| Name | Required | Description | Default |
|---|---|---|---|
| loc_id | No | DaedalMap loc_id to check for available geometry. | |
| loc_ids | No | DaedalMap loc_ids to check for available geometry. Default public cap is deployment-configurable. | |
| batch_id | No | Optional caller-supplied batch id for tracing. | |
| request_id | No | Optional caller-supplied request id for tracing. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes safety, and the description adds meaningful behavioral nuance: historical geometry is the primary result, a current successor is only an explicit follow-up, and the call is a fast shape-only preflight. It also notes no payment is required, which is useful beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five short sentences, each earning its place: what it does, what it reports, primary-result behavior, exclusions, and when to use it. The most decision-relevant information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only preflight with two documented parameters and no output schema, the description is complete. It tells the agent what is returned, what is not returned, when to call it, and what constraints apply to the input.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters clearly. The tool description adds the 'bounded' qualifier and reinforces the single-vs-list choice, which helps an agent select the correct argument shape without opening the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ('shape-only preflight'), a specific resource ('geometry availability'), and the exact unit of work ('one loc_id or a bounded loc_id list'). It also distinguishes itself from sibling tools by explicitly saying it does not resolve points or explain other identity relationships.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear usage context: 'Use before get_geometry or an export.' It also signals when not to use it by excluding point resolution and identity-relationship explanation. It does not explicitly name the alternative tools for those excluded behaviors, so it stops just short of fully explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_geographiesCompare Geographic IdentitiesARead-onlyInspect
Detailed relationship tool for two geographic identities. Returns temporal validity, N-way successor context, topology, geodesic intersection area, and directional overlap shares when approved geometry exists. Use this after a compact point lookup when the caller asks whether two tiers/releases really contain or overlap one another. A point-chain seam is not proof of strict parentage. Use resolve_reference first for names or outside identifiers. No payment required.
| Name | Required | Description | Default |
|---|---|---|---|
| as_of | No | ISO date or year applied to both identities. | |
| items | No | Bounded geography pairs to compare in one call. | |
| batch_id | No | Optional caller-supplied batch id for tracing. | |
| left_as_of | No | Optional ISO date or year for the left identity; overrides as_of. | |
| request_id | No | Optional caller-supplied request id for tracing. | |
| left_loc_id | No | First DaedalMap loc_id. | |
| right_as_of | No | Optional ISO date or year for the right identity; overrides as_of. | |
| right_loc_id | No | Second DaedalMap loc_id. | |
| include_successors | No | Include direct successors and present-day descendants for maintained historical identities. Default true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds meaningful behavioral context beyond that: it mentions conditional execution ('when approved geometry exists'), the nature of results (temporal validity, N-way successor context, topology, etc.), and 'No payment required' as an operational note. It does not contradict annotations and provides useful transparency about output semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is five sentences, each earning its place: purpose, return content, usage context, caveat, alternative, and payment status. It is front-loaded with the primary purpose and uses clear, direct language without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 params, anyOf input patterns, no output schema), the description adequately summarizes the return categories and usage nuances. It does not describe batch behavior via 'items', but the schema covers that. Slight room remains to mention asynchronous or batch limitations, but overall it is complete enough for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter description coverage, so the schema already documents all parameters. The tool description itself does not detail individual parameters but instead gives high-level context about the tool's purpose. This meets the baseline for a schema-heavy tool, though it adds no extra parameter-level meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Detailed relationship tool for two geographic identities' which clearly states the verb (compare/relate) and resource (two geographic identities). It further distinguishes from siblings by explicitly positioning it 'after a compact point lookup when the caller asks whether two tiers/releases really contain or overlap one another' and directs users to resolve_reference for name resolution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance ('Use this after a compact point lookup...'), an alternative ('Use resolve_reference first for names or outside identifiers'), and a key caveat ('A point-chain seam is not proof of strict parentage'). This fully covers usage context and distinguishes when to select this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_referenceConvert Geographic ReferenceARead-onlyInspect
Free geography utility. Converts one reference, or a bounded list of references, from one geographic reference system into another by resolving through DaedalMap loc_id: X -> loc_id -> Y. Use this for workflows like ZIP/ZCTA to NWS fire zones, NWS zone to counties, county to overlapping ZCTAs, or any future catalog-backed crosswalk. No payment required.
| Name | Required | Description | Default |
|---|---|---|---|
| iso3 | No | Country hint for crosswalk artifacts. Default USA. | |
| items | No | Reference conversions to run in one call. Default public cap is deployment-configurable. | |
| limit | No | Maximum ranked output references to return. Default 10. | |
| value | No | Identifier or name in the input system. | |
| batch_id | No | Optional caller-supplied batch id for tracing. | |
| min_share | No | Optional minimum overlap share threshold. | |
| to_system | No | Output reference system, such as loc_id, zcta, nws_fire, overlay_nws_public_zone, overlay_tribal, admin_local, or admin_geometry. | |
| request_id | No | Optional caller-supplied request id for tracing. | |
| from_system | No | Input reference system, such as zip, overlay_zcta, nws_fire, tribal, admin_boundary, or loc_id. | |
| target_admin_level | No | Admin level used as the intermediate crosswalk target. Default admin_2. | |
| relationship_vintage | No | Optional source relationship vintage to require. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description adds behavioral context beyond that: it is 'Free geography utility' with 'No payment required,' and it explains the internal resolution path (X -> loc_id -> Y). This gives the agent useful insight into how the conversion works without contradicting the read-only hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose. The only redundancy is 'No payment required,' which repeats the earlier 'Free geography utility' assertion, but overall every other sentence earns its place and the examples are scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (11 parameters, no output schema, many siblings), the description covers high-level purpose and use cases but leaves gaps around output/ranking behavior, the role of target_admin_level or relationship_vintage, and how results are ordered or scored. The schema documents parameters well, but the description does not fully bridge the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 value by providing concrete examples of valid from_system/to_system values (ZIP, ZCTA, NWS fire zones, counties) and by explaining the single vs. bounded-list mode ('one reference, or a bounded list of references'), which clarifies the two top-level invocation styles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the verb (converts), the resource (geographic reference), and the mechanism (resolving through DaedalMap loc_id: X -> loc_id -> Y). It also lists concrete use cases (ZIP/ZCTA to NWS fire zones, NWS zone to counties) that clearly distinguish it from sibling tools like identify_reference_system or resolve_reference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: 'Use this for workflows like ZIP/ZCTA to NWS fire zones, NWS zone to counties, county to overlapping ZCTAs, or any future catalog-backed crosswalk.' However, it does not explicitly state when not to use it or name alternative sibling tools, so it misses the highest bar for exclusions/alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_conversion_jobCreate loc_id Conversion JobBInspect
Creates a synchronous v0 user-data conversion job with preserved scalar fields and JSON rows, CSV, JSON Lines, or Parquet output. Hosted service default: 7,500 rows, tuned around a 10-20 second response budget. A direct local-runtime loopback caller has no service item cap; local machine resources are the boundary. Identifier deduplication keeps repeated geography keys efficient.
| Name | Required | Description | Default |
|---|---|---|---|
| iso3 | No | ||
| items | Yes | Rows to convert; row-level fields may override top-level defaults. | |
| limit | No | ||
| quote_id | No | Quote id returned by estimate_conversion_job, when available. | |
| min_share | No | ||
| to_system | No | Optional output reference system. Omit to normalize to loc_id. | |
| request_id | No | Optional caller-supplied request id for tracing. | |
| from_system | No | ||
| output_name | No | ||
| output_format | No | ||
| geography_binding | No | ||
| target_admin_level | No | ||
| relationship_vintage | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavioral detail beyond the readOnlyHint=false annotation: synchronous execution, a hosted 7,500-row default, a 10-20 second response budget, local-loopback behavior with no service cap, and identifier deduplication. This gives the agent useful expectations about limits, performance, and execution semantics. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with the core action, resource, and output formats front-loaded. The second and third sentences add capacity, performance, and behavioral context without fluff. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 13 parameters, low schema coverage, and no output schema, the description omits critical information: no response/return structure, no explanation of the items array's role, and no mention of the from_system versus geography_binding choice. An agent would still need external schemas or help to invoke this correctly on non-trivial inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 31%, and the description does not explain the core conversion parameters such as from_system, geography_binding, to_system, iso3, limit, min_share, target_admin_level, or relationship_vintage. It adds useful context around output_format and overall item counts, but most of the 13 parameters remain underspecified. The description only partially compensates for the schema's low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and object: 'Creates a synchronous v0 user-data conversion job' and immediately specifies output formats. This goes beyond the title and helps distinguish it from estimate and geometry siblings, though it never explicitly names an alternative. It is clear but sibling differentiation is implicit rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus estimate_conversion_job, convert_reference, or resolve_reference. The 'synchronous' qualifier hints at immediate conversion use, but no prerequisites, exclusions, or alternative-selection conditions are given. The agent is left to infer routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_geometry_exportCreate Geometry ExportAInspect
Creates a synchronous v0 geometry export from exact loc_ids or one strict scope as real GeoJSON, gzipped GeoJSON, or zipped GeoJSON. Hosted service default: 250 selected loc_ids, sized around a 10-20 second response budget and configurable by deployment. A direct local-runtime loopback caller has no service item cap. Use estimate_geometry_package or get_tool_help for the effective access lane.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | ||
| format | No | ||
| loc_id | No | ||
| loc_ids | No | Selected loc_ids. The default synchronous limit is 250; larger calls return a typed operational-limit response. | |
| quote_id | No | Quote id returned by estimate_geometry_package, when available. | |
| request_id | No | Optional caller-supplied request id for tracing. | |
| output_name | No | ||
| include_polygon | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond readOnlyHint=false, description discloses synchronous behavior, response budget (10-20s), item cap (250) configurable by deployment, and no cap for local loopback. Lacks explicit side-effect or auth details, but annotations already signal mutation; these operational details add value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four dense sentences, each adding distinct operational context; no filler, front-loaded with primary purpose and followed by constraints and guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, a nested scope, and no output schema, the description is insufficiently complete. It omits what the tool returns (e.g., download URL vs inline data), how scope fields combine, and the meaning of output_name/include_polygon. The access-lane guidance is helpful but does not cover the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 38%, and description does not compensate. It mentions loc_ids/scope/format but leaves output_name, include_polygon, quote_id usage/unexplained, and nested scope properties unelaborated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Creates a synchronous v0 geometry export' from loc_ids or scope, with explicit formats (GeoJSON, gzipped, zipped). Distinguishes from siblings like estimate_geometry_package (estimation) and get_geometry (retrieval) by emphasizing creation and format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides conditional usage context: mentions hosted service default limits vs local-runtime loopback no cap, and explicitly directs user to estimate_geometry_package or get_tool_help for effective access lane, which serves as an alternative/exclusion instruction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_conversion_jobEstimate loc_id Conversion JobARead-onlyInspect
Free dry-run quote for uploaded or pasted user data conversion. Estimates rows, sample resolvability, output bytes, errors, and charge units before execution.
| Name | Required | Description | Default |
|---|---|---|---|
| iso3 | No | ||
| items | No | Sample or full rows; row-level fields may override top-level defaults. | |
| limit | No | ||
| min_share | No | ||
| row_count | No | Expected total row count when only a sample or artifact pointer is provided. | |
| to_system | No | Optional output reference system. Omit to normalize to loc_id. | |
| request_id | No | Optional caller-supplied request id for tracing. | |
| from_system | No | Input reference system for rows. | |
| output_name | No | Optional safe base filename. | |
| output_format | No | Enriched-row output format. CSV is spreadsheet-friendly; Parquet is compact and typed; JSON Lines is stream-friendly. | |
| geography_binding | No | Known dataset-geography declaration. The estimate verifies it against distinct identifiers and avoids point containment. | |
| target_admin_level | No | ||
| relationship_vintage | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description reinforces this by stating 'dry-run' and 'before execution', indicating no side effects. It adds that the quote is 'free' and estimates charge units, which is useful context. However, it does not discuss authentication, rate limits, or what happens on error, but given the read-only nature, the description is adequate and consistent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with 'Free dry-run quote', and conveys the core value without extraneous words. It is concise and well-structured, though it could have added one clarifying sentence about input modes without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 13 parameters, nested anyOf schemas, and no output schema, the description is insufficient. It does not explain how to provide input (items vs row_count), the role of geography_binding, or how output_format affects the estimate. An agent would need to dig into the schema to understand request formation, which is a significant gap for this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 62%, and some parameters already have descriptions (e.g., data reserved columns, to_system, output_format). The description mentions 'uploaded or pasted user data' which hints at the items or row_count modes but does not explain the anyOf structure or how to choose between them. It also does not clarify geography_binding semantics beyond what is in the schema. It provides partial value but does not fully compensate for unpresented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a 'free dry-run quote' for 'user data conversion' and lists specific estimates (rows, sample resolvability, output bytes, errors, charge units). This distinguishes it from sibling tools like create_conversion_job, which actually performs conversions, and estimate_geometry_package, which focuses on geometry packages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies it is for pre-execution estimation ('before execution') and is a dry-run, but it does not explicitly state when to use this instead of alternatives like create_conversion_job or how it differs from other estimate tools. No exclusions or alternative routing is mentioned; the intent is inferred from 'dry-run quote'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_geometry_packageEstimate Geometry PackageARead-onlyInspect
Dry-run estimate for a selected geometry export: exact loc_id count, shape/vintage availability, bytes, delivery mode, citation requirements, and charge units. This estimates an export artifact, not a canonical DaedalMap geometry release bundle.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | ||
| format | No | Implemented delivery format. Unsupported format names are rejected rather than silently returning another representation. | |
| loc_id | No | Single loc_id to package. | |
| loc_ids | No | Explicit loc_ids to package. | |
| request_id | No | Optional caller-supplied request id for tracing. | |
| output_name | No | Optional safe base filename for the export. | |
| include_polygon | No | Estimate full shapes when true; metadata-only when false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description reinforces this with 'Dry-run' and 'estimates an export artifact'. It adds valuable context by disclosing exactly what the estimate covers (loc_id count, shape/vintage availability, bytes, delivery mode, citation requirements, charge units) and explicitly excludes canonical release bundles. No contradictions or hidden side effects are indicated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose ('Dry-run estimate for a selected geometry export') and followed by a clarifying exclusion. Every word adds value—no filler or redundancy. It is highly concise and effectively structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with a rich schema and no output schema, the description adequately covers the purpose, output contents, and scope exclusions. It does not explicitly explain the input selection methods (e.g., loc_id vs. scope) but the schema covers that. Given the tool's moderate complexity and high schema coverage, the description is complete enough, though it could benefit from a direct pointer to sibling tools like create_geometry_export for contextual flow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high (86%), so the parameters are mostly self-explanatory from the schema. The description does not add additional parameter-level semantics beyond what the schema provides; it focuses on the output of the estimate rather than input parameter details. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Dry-run estimate for a selected geometry export' and specifies the exact outputs (loc_id count, shape/vintage availability, bytes, delivery mode, citation requirements, charge units). It also differentiates from a 'canonical DaedalMap geometry release bundle', distinguishing this estimation tool from other geometry-related tools in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description effectively implies when to use this tool: when a dry-run estimate is needed before a geometry export. It provides context by naming specific estimate dimensions and clarifying it is not a canonical release bundle, but it does not explicitly name alternative tools or state 'use this instead of X'. The guidance is clear though not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_catalogGet CatalogARead-onlyInspect
Free discovery. Returns the list of live agent-ready data packs available on DaedalMap.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true. The description adds context about the data (live, agent-ready) but does not disclose any additional behavioral traits like caching, rate limits, or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences (13 words) with no wasted text. It is front-loaded with 'Free discovery' and immediately defines the output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, the description is mostly complete. It could mention if the list is ordered or if there are any limitations, but overall it suffices.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema coverage is 100%. According to guidelines, baseline is 4. No additional parameter information needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a list of live agent-ready data packs available on DaedalMap, using a specific verb and resource. It distinguishes from siblings like get_pack, which likely retrieves a single pack.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Free discovery' implies when to use this tool (for initial exploration), but it does not explicitly compare with alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_geometryGet loc_id GeometryARead-onlyInspect
Shape retrieval for exact loc_ids, including loc_ids from any level of a resolve_point chain. Returns the requested geometry metadata, vintage, centroid, bounding box, and optional GeoJSON polygon. Historical geometry is returned first; an evidenced successor appears only as a separate question and is never substituted or fetched automatically. It does not explain hierarchy or crosswalks; use loc_id_info for those details. Prefer bbox/centroid unless exact rendering or clipping requires the polygon. No payment required.
| Name | Required | Description | Default |
|---|---|---|---|
| loc_id | No | DaedalMap loc_id, such as USA-CA-037, USA-Z-00601, USA-NWSFZ-AKZ317, EEZ-USA, or IHO1953-240001002. | |
| loc_ids | No | DaedalMap loc_ids to fetch in one call. Default public cap is deployment-configurable and lower when include_polygon is true. | |
| batch_id | No | Optional caller-supplied batch id for tracing. | |
| request_id | No | Optional caller-supplied request id for tracing. | |
| include_polygon | No | When true, include the full GeoJSON geometry. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint:true, and the description adds significant behavioral detail beyond that: historical geometry is returned first, an evidenced successor is never substituted or fetched automatically, and no payment is required. This discloses behaviors an agent could not infer from annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and remains efficient. Every sentence adds value: scope, return contents, historical behavior, sibling routing, polygon guidance, and payment status. No word is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully lists the returned components and key behavior. It does not describe response envelope, error cases, or whether loc_id and loc_ids can be combined, but for a read-only geometry retrieval tool this is a minor gap given the schema already documents parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 extra meaning by clarifying that loc_ids can come from any level of a resolve_point chain and by advising when to request the polygon versus bbox/centroid. This goes beyond what the schema properties state.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Shape retrieval for exact loc_ids,' and states exactly what is returned (metadata, vintage, centroid, bounding box, optional GeoJSON polygon). It also differentiates from siblings by noting that hierarchy and crosswalk details belong to loc_id_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit routing guidance: use loc_id_info for hierarchy/crosswalks, and prefer bbox/centroid unless exact rendering or clipping requires the polygon. This provides clear when-to-use and when-not-to-use context relative to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_job_statusGet Geometry Job StatusARead-onlyInspect
Retrieves a completed bounded v0 geometry export or conversion job by job_id. The current public contract creates completed inline jobs only; durable queued jobs and downloadable artifact links remain a future Custom Data Builder capability.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job id returned by create_geometry_export or create_conversion_job. | |
| request_id | No | Optional caller-supplied request id for tracing. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description reinforces this with 'Retrieves'. It adds context about the job state (completed) and explicitly disclaims future capabilities (durable queued jobs, downloadable links). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first fronts the core purpose and the second adds a relevant limitation. No filler, every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with 2 parameters, the description covers the primary use, input source, and contract limitations. Although there is no output schema and the return format is not described, this is not critical for a by-ID lookup, and the input schema is fully self-explanatory.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both job_id and request_id documented directly in the schema. The description adds only that job_id is returned by create_geometry_export or create_conversion_job, which slightly enriches the schema but does not add significant new meaning given the schema already explains the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Retrieves a completed bounded v0 geometry export or conversion job by job_id' – a specific verb, resource, and identifier. It distinguishes itself from sibling creation tools like create_geometry_export and create_conversion_job by focusing on retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains that the current contract only supports completed inline jobs, and that durable queued jobs and downloadable artifact links are future capabilities. This implicitly tells users when not to expect those features, and the job_id reference ties it to the creation workflow. It doesn't explicitly name alternatives, but the boundary is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_packGet PackARead-onlyInspect
Free discovery. Returns detailed metadata, coverage, freshness, preferred canonical tool guidance, and first-query examples for one pack. Call this before querying a new pack so you can see time shape, coverage limits, and the paste-ready first query.
| Name | Required | Description | Default |
|---|---|---|---|
| pack_id | Yes | Pack identifier from get_catalog. Newly catalog-admitted packs require no MCP schema change. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation is set, and the description's 'Free discovery' framing aligns with a non-destructive read. The description adds value beyond the annotation by disclosing the nature of what is fetched (time shape, coverage limits, canonical tool guidance, paste-ready examples), which is useful behavioral context for a metadata tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two focused sentences with the core purpose front-loaded before the usage guidance. No wasted words, though the opening 'Free discovery.' is a stylistic flourish that adds little informational value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one required parameter, full schema coverage, a readOnlyHint annotation, and no output schema, the description adequately conveys the return contents (metadata, coverage, freshness, guidance, examples) so an agent knows what to expect. Nothing critical is missing for a single-identifier read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already documents pack_id as 'Pack identifier from get_catalog.' The description adds no parameter-specific detail, but at high coverage the baseline of 3 applies; the schema carries the semantic load and does so adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb+resource: it returns detailed metadata, coverage, freshness, canonical tool guidance, and first-query examples for one pack. The phrase 'one pack' distinguishes it from the sibling get_catalog, which enumerates packs. It opens with a vague marketing phrase ('Free discovery'), but the substantive purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs when to call: 'Call this before querying a new pack so you can see time shape, coverage limits, and the paste-ready first query.' This gives a clear temporal trigger. However, it does not name the specific alternative (get_catalog) for discovering pack IDs or state when not to use it, leaving some routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tool_helpGet Tool HelpARead-onlyInspect
Free blind-caller guidance for one tool visible on this MCP facade. Returns when to use it, what it refuses, a working example, effective access limits, important outputs, provenance fields, recommended next calls, and the shared natural-language-to-strict-JSON interaction contract. Use tools/list to discover names, then call this before an unfamiliar tool.
| Name | Required | Description | Default |
|---|---|---|---|
| tool_name | Yes | Exact tool name from tools/list. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses the types of information returned (e.g., refusals, access limits, provenance fields, interaction contract), adding useful behavioral context without contradicting the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first presents the core purpose with a detailed list of outputs, the second gives the precise usage sequence. No redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully explains what to expect from the tool—its purpose, outputs, how to discover the tool name, and when to invoke it—making it self-sufficient despite the lack of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully covers the single 'tool_name' parameter, describing it as the exact name from tools/list. The description reinforces this by referencing tools/list but does not add new semantic details about the parameter format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies this as a help tool that returns guidance for a single tool, enumerating the specific output categories. It distinguishes itself from sibling domain tools like check_geometry and convert_reference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to use tools/list to discover names and then call this before an unfamiliar tool, providing a clear workflow and context of use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
how_geometry_worksHow Geometry MCP WorksARead-onlyInspect
Free starting guide for the DaedalMap geography/geometry MCP. Call this first to learn the durable loc_id, administrative-spine, reference-family, discovery, point-lookup, and bounded-shape concepts. Then read the live geometry catalog for country-specific depths, families, and query guidance, and use get_tool_help for one exact tool. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| question | No | Optional natural-language question about how to use the geometry tool family. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds helpful behavioral context: this is a free guide, it should be invoked first, and it explains automatic deeper administrative tiers where available. It does not describe the response format, but that is less critical for a help/guide tool. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the key instruction to call this first. It then provides a logical flow to other tools and includes current catalog data. It is somewhat longer than strictly necessary, but the extra detail about country coverage and automatic depth behavior is relevant and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an onboarding/guide tool, the description covers the conceptual scope, the recommended sequence, and the current catalog breadth across countries and admin levels. It does not state what the response looks like or the exact phrasing of the optional question parameter, but given the tool's purpose and the fully documented schema, this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage of the single optional parameter with a clear description ('Optional natural-language question about how to use the geometry tool family'). The tool description does not add additional parameter-level guidance, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies this as a starting guide, specifies the actionable directive to call it first, and enumerates the concepts it teaches (loc_id, administrative-spine, reference-family, discovery, point-lookup, bounded-shape). It explicitly differentiates itself from sibling tools like read_geometry_catalog and get_tool_help by describing their distinct roles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit workflow guidance: call this first to learn concepts, then read the live geometry catalog for country-specific guidance, and use get_tool_help for one exact tool. This directly tells the agent when to use this tool versus the alternatives, leaving no ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
identify_reference_systemIdentify Geographic Reference SystemARead-onlyInspect
Free geography utility. Checks a bounded sample of identifiers against maintained reference indexes and geometry banks. LLM clients must extract identifier values from the user's natural-language request and pass them as strings; do not put the prose question in the arguments, and preserve leading zeros. Use it when a caller has geography keys but is unsure which system, level, or bank they belong to, or wants to verify a declaration such as 2020 US Census tract GEOIDs. Returns ranked candidates, deterministic warnings, machine-readable clarification questions when evidence is incomplete or ambiguous, exact match and shape-availability counts, and a recommended geography_binding for estimate_conversion_job. It does not convert the full dataset or return polygons. No payment required.
| Name | Required | Description | Default |
|---|---|---|---|
| expected | No | ||
| identifier | No | One geography identifier to inspect. | |
| request_id | No | Optional caller-supplied request id for tracing. | |
| identifiers | No | A bounded representative identifier sample. Duplicate values are checked once. Values must be strings so leading zeros are preserved. | |
| country_scope | No | Optional ISO3 country hint used to narrow candidate banks. | |
| validation_scope | No | Describes whether the supplied identifiers are a sample or the complete distinct-key set. The tool validates every supplied identifier. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the readOnlyHint annotation by detailing return behavior (ranked candidates, deterministic warnings, clarification questions, counts, recommended binding), the bounded-sample limitation, and the fact that it is free. It also explicitly states non-goals, providing thorough behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Each of the six sentences adds distinct value: purpose, input formatting instruction, use case, output contents, exclusions, and cost. There is no redundancy or filler, and the structure front-loads the core function before details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Since there is no output schema, the description carries the burden of explaining return values, and it does so thoroughly by listing ranked candidates, warnings, clarification questions, counts, and recommended geography_binding. It also covers scope and limitations, making it complete for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 83% schema coverage, the schema already describes parameters well. The description adds valuable LLM-specific guidance (extract identifiers, pass as strings, do not include prose, preserve leading zeros) which is not fully captured in the schema, especially for the singular identifier parameter. This pushes it above the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('checks') and resource ('identifiers against maintained reference indexes and geometry banks'), clearly stating the tool's purpose. It also explicitly states what it does not do ('does not convert the full dataset or return polygons'), distinguishing it from sibling tools like convert_reference and get_geometry.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use context: 'Use it when a caller has geography keys but is unsure which system, level, or bank they belong to, or wants to verify a declaration...'. It also gives a when-not by stating it does not convert or return polygons, but does not explicitly name a sibling tool as the alternative, so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_reference_systemsList Geographic Reference SystemsARead-onlyInspect
Free geography utility. Reads the canonical crosswalk registry and lists published, callable geographic reference systems, direct crosswalk artifacts, row counts, vintages, target levels, and source license metadata. Pass country_scope whenever the country is known. Call this first to learn whether ZIP/ZCTA, postal, census, electoral, watershed, health, tribal, marine, or other identifiers can be exchanged through loc_id. Public calls never expose WIP or relationship-only records. No payment required.
| Name | Required | Description | Default |
|---|---|---|---|
| read_wip | No | Local loopback MCP only. Include staged or non-callable preprocessing records for operator review. Default false. | |
| request_id | No | Optional caller-supplied request id for tracing. | |
| country_scope | No | Optional ISO3 country filter. Use this for a focused country capability answer. | |
| include_crosswalks | No | Include actionable source-to-target crosswalk records. Default true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true, so the description adds meaningful behavioral context: it reads a canonical registry, never exposes WIP or relationship-only records on public calls, and requires no payment. These details go beyond the safety hint and help the agent anticipate response boundaries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core listing purpose, and each sentence carries useful guidance. Minor redundancy exists between 'Free geography utility' and 'No payment required,' but the overall structure remains efficient and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating key return fields (row counts, vintages, target levels, source license metadata) and stating what is not exposed. It also gives clear first-step guidance. It could elaborate on pagination or response shape, but for a list/discovery tool with zero required parameters, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds practical guidance beyond the schema by saying 'Pass country_scope whenever the country is known' and clarifying that public calls never expose WIP. This gives the agent extra decision-making context for parameter use.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('lists') and a concrete resource ('published, callable geographic reference systems' from the 'canonical crosswalk registry'), and names the exact metadata fields returned. It also frames the tool as the discovery entry point for loc_id exchange capabilities, which separates it from sibling resolve/convert tools without needing to inspect their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent to 'Call this first' when learning whether identifiers can be exchanged, and instructs to 'Pass country_scope whenever the country is known.' It does not name alternative tools or state when not to use the tool, so it stops short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loc_id_infoGet loc_id / Chain DetailsARead-onlyInspect
The drill-down tool for loc_ids returned by resolve_point and other geography calls. Pass one loc_id, or pass the point result's stack loc_ids together, to retrieve metadata, strict stored parentage, shape status, vintage/lifecycle fields, and child counts. Historical records are returned as requested; when an evidenced successor exists, supersession separately asks whether the caller wants it and never substitutes or fetches it automatically. Set include_hierarchy for the strict same-release ancestor chain and include_references for external or side-chain crosswalks. This is where detailed chain explanation belongs; resolve_point intentionally stays compact. For exact polygons use get_geometry, and for overlap or successor analysis use compare_geographies. No payment required.
| Name | Required | Description | Default |
|---|---|---|---|
| iso3 | No | Optional country hint for crosswalk artifacts. Defaults to the loc_id country when possible. | |
| loc_id | No | DaedalMap loc_id, e.g. 'USA-CA'. | |
| loc_ids | No | DaedalMap loc_ids to inspect together, including every loc_id from a resolve_point stack. Default public cap is deployment-configurable. | |
| systems | No | Optional reference systems to include when include_references is true, such as zcta, nws_fire, overlay_tribal, or overlay_nws_public_zone. | |
| batch_id | No | Optional caller-supplied batch id for tracing. | |
| min_share | No | Optional minimum target-area share for reverse overlap references. | |
| request_id | No | Optional caller-supplied request id for tracing. | |
| limit_per_system | No | Maximum overlap references to return per bridge/system. Default 10. | |
| include_hierarchy | No | When true, include strict stored parent and ancestor data. This never invents a parent edge across mixed releases. Default false. | |
| include_references | No | When true, include known external or side-chain references attached to each loc_id. Default false. | |
| target_admin_level | No | Admin level for crosswalk-backed reverse reference lookup. Inferred when omitted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses important behavioral traits: historical records are returned only as requested, an evidenced successor is never substituted or fetched automatically, and the caller is separately asked whether supersession is wanted. It also clarifies that hierarchy is 'strict same-release ancestor chain' and does not invent parent edges across mixed releases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the tool's purpose and remains compact despite covering usage, alternatives, key flags, and behavioral caveats. Every sentence earns its place, and the alternative routing is stated efficiently without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter tool with no output schema, the description covers the essential context: what the tool returns, how loc_ids should be passed, how historical/supersession behavior works, which flags control hierarchy/references, and which sibling tools handle other cases. Combined with the 100%-covered parameter schema, an agent has enough information to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description adds meaningful semantic nuance: loc_ids can be passed as 'the point result's stack loc_ids together,' include_hierarchy means the 'strict same-release ancestor chain,' and include_references covers 'external or side-chain crosswalks.' This goes beyond the baseline without needing to re-document every parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource and action: it is 'the drill-down tool for loc_ids returned by resolve_point and other geography calls' and lists exactly what it retrieves: metadata, parentage, shape status, vintage/lifecycle fields, and child counts. It also differentiates itself from siblings by saying 'This is where detailed chain explanation belongs; resolve_point intentionally stays compact.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage context and alternative routing: use this tool for loc_id drill-downs and chain explanation, use get_geometry for exact polygons, and use compare_geographies for overlap or successor analysis. It also tells the caller to set include_hierarchy and include_references for specific needs, making the when-to-use decision clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_geometry_catalogRead Geometry CatalogARead-onlyInspect
Free geography discovery. Reads the published DaedalMap geometry catalog projection by default, excluding staged and candidate work. Use view='capabilities' first for the global baseline and enhanced countries; use focused inventory views for families, banks, crosswalk products, and named objects. A local loopback MCP may set read_wip=true for internal review. No payment required. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | Catalog view to return. Use capabilities for the concise first-user coverage model. Default summary for compatibility. | |
| limit | No | Maximum named reference objects to return. Default 50. | |
| read_wip | No | Local loopback MCP only. When true, reads the internal geometry catalog projection, including staged and in-progress records. Hosted/public MCP requests are denied. Default false. | |
| request_id | No | Optional caller-supplied request id for tracing. | |
| country_scope | No | Optional ISO3 country code for view='capabilities'. Returns the selected country's baseline, active depth, families, and query guidance. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description reinforces a read-only profile. It adds meaningful behavior beyond the annotation: default excludes staged/candidate work, read_wip is only for local loopback MCP, and the catalog delivers deeper administrative tiers where country releases exist. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core operational guidance is front-loaded in the first three sentences, which is good. However, 'Free geography discovery.' and 'No payment required.' add little for tool invocation, and the 'Current catalog:' paragraph is lengthy informational context rather than concise operational guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers default scope, view selection, read_wip restrictions, and geographical availability. But with no output schema, it does not describe the return shape or pagination behavior, and it leaves sibling differentiation (notably vs. get_catalog) unaddressed, so the agent must infer some aspects from tool name and schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters. The description goes a step further by advising view='capabilities' first and by explaining that read_wip=true is for local loopback MCP internal review only, which adds selection context over the raw enum and boolean definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource and operation: 'Reads the published DaedalMap geometry catalog projection by default.' This distinguishes it from generic read operations, but it does not explicitly distinguish it from the sibling tool 'get_catalog', and the opening 'Free geography discovery' is vague marketing rather than useful purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives actionable internal guidance: 'Use view=\'capabilities\' first for the global baseline and enhanced countries; use focused inventory views for families, banks, crosswalk products, and named objects.' It also clarifies the default behavior and the local-loopback-only read_wip path. However, it does not explicitly contrast this tool with alternatives like get_catalog or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_loc_id_scopeResolve loc_id ScopeARead-onlyInspect
Strict hierarchy traversal. Given one stored parent loc_id and target admin level, returns descendants from that coherent parent chain. This is not the mixed-vintage latest-per-depth point resolver and must not bridge release seams. Use it before shape exports such as every county in a selected parent scope. No natural-language decoding is performed.
| Name | Required | Description | Default |
|---|---|---|---|
| bbox | No | Optional minLon,minLat,maxLon,maxLat filter. | |
| limit | No | Maximum rows to return inline. Counts are returned even when rows are truncated. | |
| scope | No | ||
| offset | No | Offset for preview paging. | |
| count_only | No | When true, return counts without loc_id rows. | |
| request_id | No | Optional caller-supplied request id for tracing. | |
| admin_level | No | Target level, such as admin_2, 2, county, or state. | |
| parent_loc_id | No | Parent DaedalMap loc_id, such as USA or CAN-BC. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given the readOnlyHint annotation, the description adds substantial behavioral context beyond it: strict hierarchy traversal, coherent parent chain, the restriction on bridging release seams, and the absence of natural-language decoding. These traits describe how the tool behaves, not just that it is read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, each earning its place. It opens with the core behavior, adds a contrast, gives a concrete use case, and closes with a limitation. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a moderate-complexity tool with 8 parameters and no output schema, the description covers the essential conceptual model and usage. It does not explain optional parameters like bbox/limit/count_only, but the schema descriptions handle those. The core semantics and constraints are well-covered, though a bit more detail on return shape would push it to 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is high (88%), so the baseline is 3. The description adds meaning by highlighting the key inputs 'parent_loc_id' and 'target admin level,' and clarifying that no natural-language decoding is performed, which gives extra semantic nuance to the admin_level parameter beyond the schema's examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb and resource: 'Strict hierarchy traversal... returns descendants from that coherent parent chain.' It distinguishes itself from the sibling resolver by explicitly contrasting with the 'mixed-vintage latest-per-depth point resolver,' making its unique purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage guidance is explicit: 'Use it before shape exports such as every county in a selected parent scope.' It also provides exclusions: 'must not bridge release seams' and 'No natural-language decoding is performed,' clarifying when not to use it and differentiating from natural-language tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_pointResolve Point to loc_idARead-onlyInspect
Compact reverse geocoding. Converts one WGS84 point, or a bounded point list, into the latest-available administrative loc_id chain. Each chain row is intentionally small: loc_id, name, admin level, and vintage when available. This tool does not return polygons, hierarchy analysis, references, overlap percentages, lifecycle, provenance, or release-conversion detail. Pass the returned stack loc_ids to loc_id_info for details; use get_geometry for shapes and compare_geographies for relationships. Small exploratory calls may omit scope and resolve through the deepest served tier. Batches above the 25-point preview must declare exactly one country_scope and one target_admin_level; split multi-country input into one call per country. Cross-country admin-0/admin-1 batches may instead use bulk_preset. Anonymous callers pay above 25, while verified accounts receive included bulk throughput through 10,000 points. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Latitude in WGS84 decimal degrees. | |
| lon | No | Longitude in WGS84 decimal degrees. | |
| points | No | Points to resolve. Up to 25 may be exploratory. Above 25, country_scope and target_admin_level are required. Anonymous callers receive a payment challenge; verified accounts have included throughput through 10,000 points. | |
| batch_id | No | Optional caller-supplied batch id echoed in the result. | |
| request_id | No | Optional caller-supplied request id for tracing. | |
| bulk_preset | No | Cross-country fast path that fixes the result level to admin_0 or admin_1. Use instead of country_scope; target_admin_level may be omitted. | |
| country_hint | No | Alias for country_scope for clients that already use hint terminology. | |
| country_scope | No | ISO3/admin_0 loc_id scope such as USA or CAN. Optional for up to 100 exploratory points and required for larger batches; every point must belong to this one country. | |
| target_admin_level | No | Stopping level such as admin_0 through admin_5. Optional for up to 100 exploratory points and required for larger batches. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=true already covering the safety profile, the description adds substantial behavioral context: output rows are intentionally small, the tool does not return polygons or hierarchy analysis, and results reflect the latest available administrative chain. It also discloses throughput and payment behavior for anonymous vs verified callers, and explains how country catalog depth affects results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and exclusions, then moves through usage constraints, billing, and catalog depth in a logical order. It is longer than strictly necessary, especially the current-catalog country list, but every major section adds decision-relevant context for a 9-parameter tool with no output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description tells the agent exactly what each chain row contains: loc_id, name, admin level, and vintage. It covers exclusions, sibling routing, parameter requirements, billing thresholds, and geographic coverage, leaving no critical gap for an agent deciding whether and how to call this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so individual parameter definitions are already handled. The description adds value by clarifying conditional parameter behavior: 'exactly one' country_scope and target_admin_level above 25 points, the need to split multi-country input, and bulk_preset as a substitute for cross-country batches. Some billing and threshold details duplicate schema text, but the added constraints are useful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise verb and resource: 'Converts one WGS84 point, or a bounded point list, into the latest-available administrative loc_id chain.' It also differentiates itself by explicitly listing what it does not return and names the sibling tools that should be used instead, so an agent can distinguish this from get_geometry, compare_geographies, and loc_id_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage rules are explicit: small exploratory calls may omit scope, batches above 25 must declare exactly one country_scope and target_admin_level, multi-country input must be split, and bulk_preset is the recommended path for cross-country admin-0/admin-1 batches. The description also tells the agent when to route to loc_id_info, get_geometry, and compare_geographies, which is strong alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_referenceResolve Reference to loc_idARead-onlyInspect
Free geography utility. Converts one value, or a bounded list of values, from an external or adjacent geographic reference system into the DaedalMap loc_id universe. Examples: from_system='zip' value='00601'; from_system='nws_fire' value='AKZ317'; from_system='admin_boundary' value='Fairfax County'. Returns ranked loc_id matches with bridge vintage, overlap weights, and provenance where applicable. Historical references are returned as requested; an evidenced successor is a separate optional question and is never substituted automatically. No payment required.
| Name | Required | Description | Default |
|---|---|---|---|
| iso3 | No | Country hint for system-specific crosswalks. Default USA. | |
| as_of | No | ISO date or year used to select a time-bounded identity assertion, especially for historical names and codes. | |
| items | No | Reference values to resolve in one call. Default public cap is deployment-configurable. | |
| limit | No | Maximum ranked matches to return. Default 10. | |
| value | No | Identifier or name in the input system. Examples: 00601, USA-Z-00601, AKZ317, USA-NWSFZ-AKZ317, Fairfax County, Mediterranean Sea. | |
| batch_id | No | Optional caller-supplied batch id for tracing. | |
| min_share | No | Optional minimum area-share threshold for overlap matches. | |
| request_id | No | Optional caller-supplied request id for tracing. | |
| from_system | No | Input reference system, such as loc_id, census_geoid/us_census_geoid, admin_boundary, zip, zcta, overlay_zcta, nws_zone, nws_fire, overlay_nws_fire_weather_zone, tribal, water_body, marine_eez, nuts, historical_country/iso3166_3, or a catalog family id. | |
| country_hint | No | Optional country hint for admin/name resolution. | |
| admin_level_hint | No | Optional admin-level hint for admin/name resolution. | |
| target_admin_level | No | Admin target level for crosswalk-backed resolution. Default admin_2. Accepts admin_0..admin_5, 0..5, or names such as country, state, county, tract, block_group, or block. | |
| relationship_vintage | No | Optional relationship vintage to require, such as usa_geometry_current or census_2020_relationship_files. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses useful behavioral traits: it is free, returns ranked matches with bridge vintage, overlap weights, and provenance, and never automatically substitutes an evidenced successor. It also clarifies that historical references are returned as requested, adding meaningful context beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core purpose, and uses examples effectively. The historical-behavior and no-payment statements are useful but make the description slightly denser than strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only utility with no output schema, the description explains the main return fields and important behavioral caveats such as no automatic successor substitution. It is mostly complete, though it could strengthen agent decision-making by addressing how it differs from convert_reference and when batch input is preferred.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters well. The description adds examples for from_system/value pairs and mentions bounded lists, but it does not materially explain parameter semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: converting external or adjacent geographic reference values into DaedalMap loc_id values, and it names the output as ranked matches. It is specific about the resource and outcome, but it does not explicitly distinguish itself from the sibling convert_reference tool, so it falls short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool—when you have an external reference value and need loc_id matches—and gives concrete examples. However, it does not explicitly state when not to use it or mention alternatives such as convert_reference, identify_reference_system, or resolve_point.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
8 tool updates
- Changed
convert_reference6 fields changed- removed
Input schema / properties / bridge_vintageRemoved value: -{ - "description": "Optional source bridge vintage to require.", - "type": "string" -} - changed
Input schema / properties / iso3 / descriptionPrevious value: -"Country hint for bridge artifacts. Default USA."New value: +"Country hint for crosswalk artifacts. Default USA." - removed
Input schema / properties / items / items / properties / bridge_vintageRemoved value: -{ - "description": "Optional bridge vintage for this row.", - "type": "string" -} - added
Input schema / properties / items / items / properties / relationship_vintageAdded value: +{ + "description": "Optional relationship vintage for this row.", + "type": "string" +} - added
Input schema / properties / relationship_vintageAdded value: +{ + "description": "Optional source relationship vintage to require.", + "type": "string" +} - changed
Input schema / properties / target_admin_level / descriptionPrevious 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."
- Changed
create_conversion_job4 fields changed- removed
Input schema / properties / bridge_vintageRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / items / items / properties / bridge_vintageRemoved value: -{ - "type": "string" -} - added
Input schema / properties / items / items / properties / relationship_vintageAdded value: +{ + "type": "string" +} - added
Input schema / properties / relationship_vintageAdded value: +{ + "type": "string" +}
- Changed
estimate_conversion_job4 fields changed- removed
Input schema / properties / bridge_vintageRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / items / items / properties / bridge_vintageRemoved value: -{ - "type": "string" -} - added
Input schema / properties / items / items / properties / relationship_vintageAdded value: +{ + "type": "string" +} - added
Input schema / properties / relationship_vintageAdded value: +{ + "type": "string" +}
- Changed
list_reference_systems3 fields changed- added
Input schema / properties / country_scopeAdded value: +{ + "description": "Optional ISO3 country filter. Use this for a focused country capability answer.", + "type": "string" +} - added
Input schema / properties / include_crosswalksAdded value: +{ + "description": "Include actionable source-to-target crosswalk records. Default true.", + "type": "boolean" +} - added
Input schema / properties / read_wipAdded value: +{ + "description": "Local loopback MCP only. Include staged or non-callable preprocessing records for operator review. Default false.", + "type": "boolean" +}
- Changed
loc_id_info2 fields changed- changed
Input schema / properties / iso3 / descriptionPrevious value: -"Optional country hint for bridge artifacts. Defaults to the loc_id country when possible."New value: +"Optional country hint for crosswalk artifacts. Defaults to the loc_id country when possible." - changed
Input schema / properties / target_admin_level / descriptionPrevious value: -"Admin level for bridge-backed reverse reference lookup. Inferred when omitted."New value: +"Admin level for crosswalk-backed reverse reference lookup. Inferred when omitted."
- Changed
read_geometry_catalog1 field changed- changed
Input schema / properties / view / enumPrevious value: -[ - "capabilities", - "summary", - "countries", - "admin_coverage", - "bridges", - "products", - "named_reference_objects", - "full" -]New value: +[ + "capabilities", + "summary", + "countries", + "admin_coverage", + "crosswalk_artifacts", + "crosswalks", + "products", + "named_reference_objects", + "full" +]
- Changed
resolve_point2 fields changed- changed
Input schema / properties / country_scope / descriptionPrevious value: -"ISO3/admin_0 loc_id scope such as USA or CAN. Optional for up to 25 exploratory points and required for larger batches; every point must belong to this one country."New value: +"ISO3/admin_0 loc_id scope such as USA or CAN. Optional for up to 100 exploratory points and required for larger batches; every point must belong to this one country." - changed
Input schema / properties / target_admin_level / descriptionPrevious value: -"Stopping level such as admin_0 through admin_5. Optional for up to 25 exploratory points and required for larger batches."New value: +"Stopping level such as admin_0 through admin_5. Optional for up to 100 exploratory points and required for larger batches."
- Changed
resolve_reference6 fields changed- removed
Input schema / properties / bridge_vintageRemoved value: -{ - "description": "Optional bridge vintage to require, such as usa_geometry_current or census_2020_relationship_files.", - "type": "string" -} - changed
Input schema / properties / iso3 / descriptionPrevious value: -"Country hint for system-specific bridges. Default USA."New value: +"Country hint for system-specific crosswalks. Default USA." - removed
Input schema / properties / items / items / properties / bridge_vintageRemoved value: -{ - "description": "Optional bridge vintage for this row.", - "type": "string" -} - added
Input schema / properties / items / items / properties / relationship_vintageAdded value: +{ + "description": "Optional relationship vintage for this row.", + "type": "string" +} - added
Input schema / properties / relationship_vintageAdded value: +{ + "description": "Optional relationship vintage to require, such as usa_geometry_current or census_2020_relationship_files.", + "type": "string" +} - changed
Input schema / properties / target_admin_level / descriptionPrevious value: -"Admin target level for bridge-backed resolution. Default admin_2. Accepts admin_0..admin_5, 0..5, or names such as country, state, county, tract, block_group, or block."New value: +"Admin target level for crosswalk-backed resolution. Default admin_2. Accepts admin_0..admin_5, 0..5, or names such as country, state, county, tract, block_group, or block."
2 tool updates
- Changed
get_pack1 field changed- changed
Input schema / properties / pack_id / descriptionPrevious value: -"Pack identifier such as 'currency', 'earthquakes', 'floods', 'hurricanes', 'tornadoes', 'tsunamis', 'un_sdg', 'volcanoes', 'world_factbook', or 'worldpop'."New value: +"Pack identifier from get_catalog. Newly catalog-admitted packs require no MCP schema change."
- Changed
read_geometry_catalog3 fields changed- added
Input schema / properties / country_scopeAdded value: +{ + "description": "Optional ISO3 country code for view='capabilities'. Returns the selected country's baseline, active depth, families, and query guidance.", + "type": "string" +} - added
Input schema / properties / read_wipAdded value: +{ + "description": "Local loopback MCP only. When true, reads the internal geometry catalog projection, including staged and in-progress records. Hosted/public MCP requests are denied. Default false.", + "type": "boolean" +} - changed
Input schema / properties / view / enumPrevious value: -[ - "capabilities", - "summary", - "admin_coverage", - "bridges", - "products", - "named_reference_objects", - "full" -]New value: +[ + "capabilities", + "summary", + "countries", + "admin_coverage", + "bridges", + "products", + "named_reference_objects", + "full" +]
1 tool update
- Changed
read_geometry_catalog2 fields changed- changed
Input schema / properties / view / descriptionPrevious value: -"Catalog view to return. Default summary."New value: +"Catalog view to return. Use capabilities for the concise first-user coverage model. Default summary for compatibility." - changed
Input schema / properties / view / enumPrevious value: -[ - "summary", - "admin_coverage", - "bridges", - "products", - "named_reference_objects", - "full" -]New value: +[ + "capabilities", + "summary", + "admin_coverage", + "bridges", + "products", + "named_reference_objects", + "full" +]
7 tool updates
- Changed
create_conversion_job14 fields changed- changed
Input schema / additionalPropertiesPrevious value: -trueNew value: +false - added
Input schema / anyOfAdded value: +[ + { + "required": [ + "from_system" + ] + }, + { + "required": [ + "geography_binding" + ] + } +] - added
Input schema / properties / bridge_vintageAdded value: +{ + "type": "string" +} - added
Input schema / properties / geography_bindingAdded value: +{ + "additionalProperties": false, + "properties": { + "country_scope": { + "type": "string" + }, + "geo_level": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + }, + "id_column": { + "type": "string" + }, + "mode": { + "enum": [ + "reference", + "loc_id" + ], + "type": "string" + }, + "system": { + "type": "string" + }, + "vintage": { + "type": "string" + } + }, + "required": [ + "system" + ], + "type": "object" +} - added
Input schema / properties / iso3Added value: +{ + "type": "string" +} - changed
Input schema / properties / items / descriptionPrevious value: -"Rows to convert; each row needs value and may include row_index."New value: +"Rows to convert; row-level fields may override top-level defaults." - added
Input schema / properties / items / items / additionalPropertiesAdded value: +false - added
Input schema / properties / items / items / propertiesAdded value: +{ + "bridge_vintage": { + "type": "string" + }, + "data": { + "additionalProperties": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "integer" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "description": "Original spreadsheet columns to preserve. Column names beginning daedalmap_ are reserved for generated output fields.", + "maxProperties": 200, + "type": "object" + }, + "from_system": { + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ] + }, + "iso3": { + "type": "string" + }, + "limit": { + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "min_share": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "row_index": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ] + }, + "target_admin_level": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + }, + "to_system": { + "type": "string" + }, + "value": { + "description": "Identifier value; keep as a string to preserve leading zeros.", + "type": "string" + } +} - added
Input schema / properties / items / items / requiredAdded value: +[ + "value" +] - added
Input schema / properties / limitAdded value: +{ + "maximum": 100, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / min_shareAdded value: +{ + "maximum": 1, + "minimum": 0, + "type": "number" +} - added
Input schema / properties / output_formatAdded value: +{ + "enum": [ + "json_rows", + "csv", + "jsonl", + "parquet" + ], + "type": "string" +} - added
Input schema / properties / output_nameAdded value: +{ + "maxLength": 80, + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "from_system", - "items" -]New value: +[ + "items" +]
- Changed
create_geometry_export3 fields changed- added
Input schema / properties / format / enumAdded value: +[ + "geojson", + "geojson_gzip", + "zip" +] - added
Input schema / properties / loc_ids / descriptionAdded value: +"Selected loc_ids. The default synchronous limit is 250; larger calls return a typed operational-limit response." - added
Input schema / properties / output_nameAdded value: +{ + "maxLength": 80, + "type": "string" +}
- Changed
estimate_conversion_job13 fields changed- changed
Input schema / additionalPropertiesPrevious value: -trueNew value: +false - changed
Input schema / anyOfPrevious value: -[ - { - "required": [ - "from_system", - "items" - ] - }, - { - "required": [ - "from_system", - "row_count" - ] - } -]New value: +[ + { + "required": [ + "from_system", + "items" + ] + }, + { + "required": [ + "from_system", + "row_count" + ] + }, + { + "required": [ + "geography_binding", + "items" + ] + }, + { + "required": [ + "geography_binding", + "row_count" + ] + } +] - added
Input schema / properties / bridge_vintageAdded value: +{ + "type": "string" +} - added
Input schema / properties / geography_bindingAdded value: +{ + "additionalProperties": false, + "description": "Known dataset-geography declaration. The estimate verifies it against distinct identifiers and avoids point containment.", + "properties": { + "country_scope": { + "type": "string" + }, + "geo_level": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + }, + "id_column": { + "description": "Identifier-column name for future artifact inputs; inline items continue to use value.", + "type": "string" + }, + "mode": { + "enum": [ + "reference", + "loc_id" + ], + "type": "string" + }, + "system": { + "description": "Declared identifier system. Used when from_system is omitted.", + "type": "string" + }, + "vintage": { + "type": "string" + } + }, + "required": [ + "system" + ], + "type": "object" +} - added
Input schema / properties / iso3Added value: +{ + "type": "string" +} - changed
Input schema / properties / items / descriptionPrevious value: -"Sample or full rows with at least value; row-level systems may override top-level systems."New value: +"Sample or full rows; row-level fields may override top-level defaults." - added
Input schema / properties / items / items / additionalPropertiesAdded value: +false - added
Input schema / properties / items / items / propertiesAdded value: +{ + "bridge_vintage": { + "type": "string" + }, + "data": { + "additionalProperties": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "integer" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "description": "Original spreadsheet columns to preserve. Column names beginning daedalmap_ are reserved for generated output fields.", + "maxProperties": 200, + "type": "object" + }, + "from_system": { + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ] + }, + "iso3": { + "type": "string" + }, + "limit": { + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "min_share": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "row_index": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ] + }, + "target_admin_level": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + }, + "to_system": { + "type": "string" + }, + "value": { + "description": "Identifier value; keep as a string to preserve leading zeros.", + "type": "string" + } +} - added
Input schema / properties / items / items / requiredAdded value: +[ + "value" +] - added
Input schema / properties / limitAdded value: +{ + "maximum": 100, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / min_shareAdded value: +{ + "maximum": 1, + "minimum": 0, + "type": "number" +} - added
Input schema / properties / output_formatAdded value: +{ + "description": "Enriched-row output format. CSV is spreadsheet-friendly; Parquet is compact and typed; JSON Lines is stream-friendly.", + "enum": [ + "json_rows", + "csv", + "jsonl", + "parquet" + ], + "type": "string" +} - added
Input schema / properties / output_nameAdded value: +{ + "description": "Optional safe base filename.", + "maxLength": 80, + "type": "string" +}
- Changed
estimate_geometry_package3 fields changed- changed
Input schema / properties / format / descriptionPrevious value: -"Requested delivery format: geojson, geojson_gzip, zip, geoparquet, flatgeobuf, or pmtiles."New value: +"Implemented delivery format. Unsupported format names are rejected rather than silently returning another representation." - added
Input schema / properties / format / enumAdded value: +[ + "geojson", + "geojson_gzip", + "zip" +] - added
Input schema / properties / output_nameAdded value: +{ + "description": "Optional safe base filename for the export.", + "maxLength": 80, + "type": "string" +}
- Added
how_geometry_works - Added
identify_reference_system - Changed
resolve_reference1 field changed- changed
Input schema / properties / from_system / descriptionPrevious value: -"Input reference system, such as loc_id, admin_boundary, zip, zcta, overlay_zcta, nws_zone, nws_fire, overlay_nws_fire_weather_zone, tribal, water_body, marine_eez, nuts, historical_country/iso3166_3, or a catalog family id."New value: +"Input reference system, such as loc_id, census_geoid/us_census_geoid, admin_boundary, zip, zcta, overlay_zcta, nws_zone, nws_fire, overlay_nws_fire_weather_zone, tribal, water_body, marine_eez, nuts, historical_country/iso3166_3, or a catalog family id."
1 tool update
- Changed
resolve_point4 fields changed- added
Input schema / properties / bulk_presetAdded value: +{ + "description": "Cross-country fast path that fixes the result level to admin_0 or admin_1. Use instead of country_scope; target_admin_level may be omitted.", + "enum": [ + "global_admin_0", + "global_admin_1" + ], + "type": "string" +} - changed
Input schema / properties / country_scope / descriptionPrevious value: -"Optional ISO3/admin_0 loc_id scope such as USA or CAN. Use only when every point in the request should be resolved inside that one country; this lets the runtime skip global country detection and use one country geometry bank."New value: +"ISO3/admin_0 loc_id scope such as USA or CAN. Optional for up to 25 exploratory points and required for larger batches; every point must belong to this one country." - changed
Input schema / properties / points / descriptionPrevious value: -"Points to resolve. Hosted default free preview is 25 points; larger valid batches return a payment-required quote instead of executing for free."New value: +"Points to resolve. Up to 25 may be exploratory. Above 25, country_scope and target_admin_level are required. Anonymous callers receive a payment challenge; verified accounts have included throughput through 10,000 points." - changed
Input schema / properties / target_admin_level / descriptionPrevious value: -"Optional stopping level such as admin_0 through admin_5. Omit for the normal complete chain through the deepest currently served tier."New value: +"Stopping level such as admin_0 through admin_5. Optional for up to 25 exploratory points and required for larger batches."
1 tool update
- Added
get_tool_help
6 tool updates
- Added
compare_geographies - Changed
get_geometry1 field changed- removed
Input schema / properties / include_infoRemoved value: -{ - "description": "When true for loc_ids batch mode, include heavier loc_id_info enrichment for each result. Default false for lean bulk geometry responses.", - "type": "boolean" -}
- Changed
loc_id_info2 fields changed- changed
Input schema / properties / include_hierarchy / descriptionPrevious value: -"When true, include parent and full ancestor chain. Default false."New value: +"When true, include strict stored parent and ancestor data. This never invents a parent edge across mixed releases. Default false." - changed
Input schema / properties / loc_ids / descriptionPrevious value: -"DaedalMap loc_ids to inspect in one call. Default public cap is deployment-configurable."New value: +"DaedalMap loc_ids to inspect together, including every loc_id from a resolve_point stack. Default public cap is deployment-configurable."
- Changed
read_geometry_catalog2 fields changed- changed
Input schema / properties / limit / descriptionPrevious value: -"Maximum named geometries to return when view='named_geometries'. Default 50."New value: +"Maximum named reference objects to return. Default 50." - changed
Input schema / properties / view / enumPrevious value: -[ - "summary", - "admin_coverage", - "bridges", - "packages", - "named_geometries", - "full" -]New value: +[ + "summary", + "admin_coverage", + "bridges", + "products", + "named_reference_objects", + "full" +]
- Changed
resolve_point2 fields changed- removed
Input schema / properties / include_geometryRemoved value: -{ - "description": "When true, include geometry in resolver internals where available. Default false to keep responses small.", - "type": "boolean" -} - changed
Input schema / properties / target_admin_level / descriptionPrevious value: -"Requested administrative level such as admin_0, admin_1, admin_2, admin_3, admin_4, or admin_5. Default admin_2. Use deepest/all only when the caller explicitly needs the deepest supported local geometry."New value: +"Optional stopping level such as admin_0 through admin_5. Omit for the normal complete chain through the deepest currently served tier."
- Changed
resolve_reference3 fields changed- added
Input schema / properties / as_ofAdded value: +{ + "description": "ISO date or year used to select a time-bounded identity assertion, especially for historical names and codes.", + "type": "string" +} - changed
Input schema / properties / from_system / descriptionPrevious value: -"Input reference system, such as loc_id, admin_boundary, zip, zcta, overlay_zcta, nws_zone, nws_fire, overlay_nws_fire_weather_zone, tribal, water_body, marine_eez, nuts, or a catalog family id."New value: +"Input reference system, such as loc_id, admin_boundary, zip, zcta, overlay_zcta, nws_zone, nws_fire, overlay_nws_fire_weather_zone, tribal, water_body, marine_eez, nuts, historical_country/iso3166_3, or a catalog family id." - added
Input schema / properties / items / items / properties / as_ofAdded value: +{ + "description": "ISO date or year used to select a time-bounded identity assertion.", + "type": "string" +}
2 tool updates
- Changed
get_geometry1 field changed- added
Input schema / properties / include_infoAdded value: +{ + "description": "When true for loc_ids batch mode, include heavier loc_id_info enrichment for each result. Default false for lean bulk geometry responses.", + "type": "boolean" +}
- Added
read_geometry_catalog
1 tool update
- Changed
resolve_point5 fields changed- removed
Input schema / properties / countryRemoved value: -{ - "description": "Alias for parent_loc_id/country_scope when the scope is an ISO3 country code.", - "type": "string" -} - changed
Input schema / properties / country_hint / descriptionPrevious value: -"Alias for parent_loc_id/iso3. Use one country per paid/trusted bulk batch."New value: +"Alias for country_scope for clients that already use hint terminology." - changed
Input schema / properties / country_scope / descriptionPrevious value: -"Alias for parent_loc_id when the scope is an admin_0/country loc_id."New value: +"Optional ISO3/admin_0 loc_id scope such as USA or CAN. Use only when every point in the request should be resolved inside that one country; this lets the runtime skip global country detection and use one country geometry bank." - removed
Input schema / properties / iso3Removed value: -{ - "description": "Alias for parent_loc_id/country_scope when the scope is an ISO3 country code.", - "type": "string" -} - removed
Input schema / properties / parent_loc_idRemoved value: -{ - "description": "Optional country scope such as USA, CAN, or IND. Required for paid/trusted bulk point batches over the free preview limit. Bulk should use one country and one target_admin_level per call.", - "type": "string" -}
1 tool update
- Changed
resolve_point5 fields changed- added
Input schema / properties / countryAdded value: +{ + "description": "Alias for parent_loc_id/country_scope when the scope is an ISO3 country code.", + "type": "string" +} - added
Input schema / properties / country_hintAdded value: +{ + "description": "Alias for parent_loc_id/iso3. Use one country per paid/trusted bulk batch.", + "type": "string" +} - added
Input schema / properties / country_scopeAdded value: +{ + "description": "Alias for parent_loc_id when the scope is an admin_0/country loc_id.", + "type": "string" +} - added
Input schema / properties / iso3Added value: +{ + "description": "Alias for parent_loc_id/country_scope when the scope is an ISO3 country code.", + "type": "string" +} - added
Input schema / properties / parent_loc_idAdded value: +{ + "description": "Optional country scope such as USA, CAN, or IND. Required for paid/trusted bulk point batches over the free preview limit. Bulk should use one country and one target_admin_level per call.", + "type": "string" +}
1 tool update
- Changed
resolve_point2 fields changed- changed
Input schema / properties / points / descriptionPrevious value: -"Points to resolve. Hosted default maximum is 25 points per call."New value: +"Points to resolve. Hosted default free preview is 25 points; larger valid batches return a payment-required quote instead of executing for free." - added
Input schema / properties / target_admin_levelAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ], + "description": "Requested administrative level such as admin_0, admin_1, admin_2, admin_3, admin_4, or admin_5. Default admin_2. Use deepest/all only when the caller explicitly needs the deepest supported local geometry." +}
8 tool updates
- Changed
convert_reference4 fields changed- added
Input schema / anyOfAdded value: +[ + { + "required": [ + "from_system", + "value", + "to_system" + ] + }, + { + "required": [ + "items" + ] + } +] - added
Input schema / properties / batch_idAdded value: +{ + "description": "Optional caller-supplied batch id for tracing.", + "type": "string" +} - added
Input schema / properties / itemsAdded 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" +} - removed
Input schema / requiredRemoved value: -[ - "from_system", - "value", - "to_system" -]
- Added
create_conversion_job - Added
create_geometry_export - Added
estimate_conversion_job - Added
estimate_geometry_package - Added
get_job_status - Added
resolve_loc_id_scope - Changed
resolve_reference4 fields changed- added
Input schema / anyOfAdded value: +[ + { + "required": [ + "from_system", + "value" + ] + }, + { + "required": [ + "items" + ] + } +] - added
Input schema / properties / batch_idAdded value: +{ + "description": "Optional caller-supplied batch id for tracing.", + "type": "string" +} - added
Input schema / properties / itemsAdded value: +{ + "description": "Reference values to resolve in one call. Default public cap is deployment-configurable.", + "items": { + "additionalProperties": false, + "properties": { + "admin_level_hint": { + "description": "Optional admin-level hint for admin/name resolution.", + "maximum": 5, + "minimum": 0, + "type": "integer" + }, + "bridge_vintage": { + "description": "Optional bridge vintage for this row.", + "type": "string" + }, + "country_hint": { + "description": "Optional country hint for admin/name resolution.", + "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 matches for this row.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "min_share": { + "description": "Optional minimum area-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 admin target level for this row." + }, + "value": { + "description": "Identifier or name in the input system.", + "type": "string" + } + }, + "required": [ + "value" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +} - removed
Input schema / requiredRemoved value: -[ - "from_system", - "value" -]
9 tool updates
- Removed
admin_to_sidechain - Added
check_geometry - Removed
get_boundary - Changed
get_geometry4 fields changed- added
Input schema / anyOfAdded value: +[ + { + "required": [ + "loc_id" + ] + }, + { + "required": [ + "loc_ids" + ] + } +] - added
Input schema / properties / batch_idAdded value: +{ + "description": "Optional caller-supplied batch id for tracing.", + "type": "string" +} - added
Input schema / properties / loc_idsAdded value: +{ + "description": "DaedalMap loc_ids to fetch in one call. Default public cap is deployment-configurable and lower when include_polygon is true.", + "items": { + "type": "string" + }, + "type": "array" +} - removed
Input schema / requiredRemoved value: -[ - "loc_id" -]
- Removed
loc_id_hierarchy - Changed
loc_id_info11 fields changed- added
Input schema / anyOfAdded value: +[ + { + "required": [ + "loc_id" + ] + }, + { + "required": [ + "loc_ids" + ] + } +] - added
Input schema / properties / batch_idAdded value: +{ + "description": "Optional caller-supplied batch id for tracing.", + "type": "string" +} - added
Input schema / properties / include_hierarchyAdded value: +{ + "description": "When true, include parent and full ancestor chain. Default false.", + "type": "boolean" +} - added
Input schema / properties / include_referencesAdded value: +{ + "description": "When true, include known external or side-chain references attached to each loc_id. Default false.", + "type": "boolean" +} - added
Input schema / properties / iso3Added value: +{ + "description": "Optional country hint for bridge artifacts. Defaults to the loc_id country when possible.", + "type": "string" +} - added
Input schema / properties / limit_per_systemAdded value: +{ + "description": "Maximum overlap references to return per bridge/system. Default 10.", + "maximum": 100, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / loc_idsAdded value: +{ + "description": "DaedalMap loc_ids to inspect in one call. Default public cap is deployment-configurable.", + "items": { + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / min_shareAdded value: +{ + "description": "Optional minimum target-area share for reverse overlap references.", + "maximum": 1, + "minimum": 0, + "type": "number" +} - added
Input schema / properties / systemsAdded value: +{ + "description": "Optional reference systems to include when include_references is true, such as zcta, nws_fire, overlay_tribal, or overlay_nws_public_zone.", + "items": { + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / target_admin_levelAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ], + "description": "Admin level for bridge-backed reverse reference lookup. Inferred when omitted." +} - removed
Input schema / requiredRemoved value: -[ - "loc_id" -]
- Removed
loc_id_references - Changed
resolve_point5 fields changed- added
Input schema / anyOfAdded value: +[ + { + "required": [ + "lat", + "lon" + ] + }, + { + "required": [ + "points" + ] + } +] - added
Input schema / properties / batch_idAdded value: +{ + "description": "Optional caller-supplied batch id echoed in the result.", + "type": "string" +} - added
Input schema / properties / include_geometryAdded value: +{ + "description": "When true, include geometry in resolver internals where available. Default false to keep responses small.", + "type": "boolean" +} - added
Input schema / properties / pointsAdded value: +{ + "description": "Points to resolve. Hosted default maximum is 25 points per call.", + "items": { + "additionalProperties": false, + "properties": { + "id": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "description": "Optional caller point identifier echoed in the result." + }, + "lat": { + "description": "Latitude in WGS84 decimal degrees.", + "maximum": 90, + "minimum": -90, + "type": "number" + }, + "lon": { + "description": "Longitude in WGS84 decimal degrees.", + "maximum": 180, + "minimum": -180, + "type": "number" + }, + "row_index": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "description": "Optional caller row identifier echoed in the result." + } + }, + "required": [ + "lat", + "lon" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +} - removed
Input schema / requiredRemoved value: -[ - "lat", - "lon" -]
- Removed
sidechain_to_admin
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Convert WGS84 coordinates to the latest available administrative loc_id chain.
Retrieve loc_id boundary metadata, polygons, scopes, comparisons, and bounded exports.
Resolve coordinates against delivery and coverage polygons (geofences).
Geocode, reverse geocode, and run Overpass spatial queries on OpenStreetMap data.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides forward/reverse geocoding, bounding box extraction, nearby places discovery, batch geocoding, route waypoints, and administrative boundary lookup using OpenStreetMap data.10Apache 2.0
- AlicenseNot gradedqualityAmaintenanceGeocode, reverse geocode, and run Overpass spatial queries on OpenStreetMap data via MCP.4525Apache 2.0
- FlicenseNot gradedqualityDmaintenanceEnables access to US Census Bureau TIGERweb geographic boundary data, returning GeoJSON for states, counties, census tracts, places, ZCTAs, and congressional districts.1-
- AlicenseAqualityCmaintenanceProvides global geocoding capabilities to convert city names and addresses into latitude/longitude coordinates using the free OpenStreetMap Nominatim API.15MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each tool has a clearly distinct purpose: point resolution, reference conversion, hierarchy traversal, geometry retrieval, export creation, job estimation, catalog discovery, and relationship comparison are all separated. The descriptions explicitly state what each tool does and what it does not do, preventing misselection. Even closely related tools like get_geometry, get_geometry_export, and estimate_geometry_package are differentiated by their roles (single-shape retrieval vs. export artifact vs. dry-run estimate).
All 20 tool names follow a consistent verb_noun snake_case pattern (e.g., get_geometry, create_conversion_job, resolve_point, list_reference_systems). The verbs are action-oriented (get, create, estimate, resolve, compare, list, read) and each noun clearly indicates the subject. While a few like 'loc_id_info' and 'how_geometry_works' deviate slightly from the strict verb_noun structure, they still fit the overall style and are easy to predict.
The 20 tools are slightly above the typical 3-15 range but still well-scoped for a comprehensive geocoding and geography service. The extra tools reflect the breadth of operations offered (discovery, conversion, estimation, export, resolution, relationship analysis), each earning its place. The count feels reasonable given the domain, though it approaches the upper boundary of what an agent might easily navigate.
The tool surface covers the full lifecycle of geocoding workflows: discovery (get_catalog, get_pack, read_geometry_catalog), point resolution (resolve_point), reference resolution (resolve_reference), identifier identification (identify_reference_system), hierarchy traversal (resolve_loc_id_scope, loc_id_info), geometry retrieval (get_geometry), relationship analysis (compare_geographies), conversion (convert_reference, create_conversion_job), export (create_geometry_export), and estimation (estimate_geometry_package, estimate_conversion_job). The inclusion of help tools (get_tool_help, how_geometry_works) and job status retrieval ensures no dead ends. The absence of destructive or update operations is consistent with a read-only geospatial data service, so the surface is appropriate.