Skip to main content
Glama

DaedalMap Disaster and Geospatial Data

Server Details

Geospatial MCP server for earthquake, tsunami, volcano, disaster, and FX data queries.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
xyver/daedal-map
GitHub Stars
2
Server Listing
daedal-map

Available Tools

30 tools
check_geometryCheck loc_id Geometry AvailabilityA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
loc_idNoDaedalMap loc_id to check for available geometry.
loc_idsNoDaedalMap loc_ids to check for available geometry. Default public cap is deployment-configurable.
batch_idNoOptional caller-supplied batch id for tracing.
request_idNoOptional caller-supplied request id for tracing.

TDQS

A4.6/5.0
Behavior5/5

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

The readOnlyHint annotation already signals a safe read, and the description adds substantive behavioral detail beyond that: it is fast, shape-only, reports vintage, treats historical geometry as primary, treats successor geometry as an explicit follow-up, and requires no payment. This is rich, non-obvious context that helps an agent understand side effects and expectations.

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

Conciseness5/5

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

The description is compact, front-loaded with the core purpose, and every sentence adds distinct value: scope, output type, historical vs successor behavior, exclusions, usage timing, and payment. There is no filler or repetition.

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

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only preflight tool with no output schema, the description covers what an agent needs to select and invoke it: what it reports, when to call it, what it intentionally does not do, and cost implications. It does not specify the exact output structure, but the semantic output is clear enough for a tool of this simplicity.

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

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage for its parameters, so the schema already documents loc_id, loc_ids, batch_id, and request_id. The description adds a useful 'bounded loc_id list' constraint and clarifies 'exact identity,' but it does not meaningfully expand parameter meaning beyond the schema baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action ('check') on a specific resource ('geometry availability for loc_id(s)') and immediately distinguishes itself from siblings: it is a shape-only preflight that does not resolve points or explain identity relationships. The title and description align, so an agent can reliably tell this from get_geometry and resolve_point.

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

Usage Guidelines5/5

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

The description explicitly says to use this before get_geometry or an export, giving concrete timing guidance. It also states exclusions ('does not resolve points or explain other identity relationships'), which prevents misuse when resolving points or tracing identity is the goal.

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

compare_geographiesCompare Geographic IdentitiesA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
as_ofNoISO date or year applied to both identities.
itemsNoBounded geography pairs to compare in one call.
batch_idNoOptional caller-supplied batch id for tracing.
left_as_ofNoOptional ISO date or year for the left identity; overrides as_of.
request_idNoOptional caller-supplied request id for tracing.
left_loc_idNoFirst DaedalMap loc_id.
right_as_ofNoOptional ISO date or year for the right identity; overrides as_of.
right_loc_idNoSecond DaedalMap loc_id.
include_successorsNoInclude direct successors and present-day descendants for maintained historical identities. Default true.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations include readOnlyHint=true, and the description adds conditional behavior ('when approved geometry exists') and the caveat about point-chain seams. It does not contradict annotations and provides useful context beyond 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.

Conciseness4/5

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

Four sentences, front-loaded with the core purpose. The inclusion of 'No payment required' is slightly extraneous but does not significantly harm clarity.

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

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 9 parameters and no output schema, the description covers key return values and usage context. It lacks explicit mention of batch usage via the 'items' parameter, but the schema covers that. It is otherwise quite complete.

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

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds no additional parameter-level detail; baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Detailed relationship tool for two geographic identities' and lists specific outputs (temporal validity, successor context, topology, geodesic intersection area, overlap shares). This distinguishes it from sibling tools like get_geometry or resolve_point.

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

Usage Guidelines5/5

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

Provides explicit usage context: 'Use this after a compact point lookup' and directs to 'Use resolve_reference first for names or outside identifiers.' Also gives a critical caveat: 'A point-chain seam is not proof of strict parentage.'

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

convert_referenceConvert Geographic ReferenceA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
iso3NoCountry hint for crosswalk artifacts. Default USA.
itemsNoReference conversions to run in one call. Default public cap is deployment-configurable.
limitNoMaximum ranked output references to return. Default 10.
valueNoIdentifier or name in the input system.
batch_idNoOptional caller-supplied batch id for tracing.
min_shareNoOptional minimum overlap share threshold.
to_systemNoOutput reference system, such as loc_id, zcta, nws_fire, overlay_nws_public_zone, overlay_tribal, admin_local, or admin_geometry.
request_idNoOptional caller-supplied request id for tracing.
from_systemNoInput reference system, such as zip, overlay_zcta, nws_fire, tribal, admin_boundary, or loc_id.
target_admin_levelNoAdmin level used as the intermediate crosswalk target. Default admin_2.
relationship_vintageNoOptional source relationship vintage to require.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds useful behavioral context: it is a 'Free geography utility' with 'No payment required', and it handles a 'bounded list' of references, implying rate/volume limits. It also explains the internal resolution chain (loc_id). This adds value beyond the annotation, though it does not disclose error handling, pagination, or exact output format, which are not required given the annotation coverage.

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

Conciseness5/5

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

The description is two sentences with no wasted words. The core action is front-loaded, followed by mechanisms and examples. The final sentence about payment is a brief differentiator. It is tight, informative, and well-structured.

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

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (11 parameters, batch mode) and lack of an output schema, the description is reasonably complete. It explains the purpose and typical workflows, which is enough for an agent to invoke it correctly. However, it does not specify return format or error/edge-case behavior, but the extensive schema descriptions cover parameter semantics. Given that the tool is read-only and the schema is detailed, the description suffices.

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

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds meaning by clarifying the single vs. batch modes ('one reference, or a bounded list of references') and giving examples of valid from/to systems within workflows. It also implies the 'limit' and 'min_share' parameters refer to ranked output, aligning with the schema. This is modest extra context that complements the thorough schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Converts'), a clear resource ('geographic reference system'), and the scope (one reference or a bounded list). It explicitly explains the mechanism (resolving through DaedalMap loc_id: X -> loc_id -> Y) and provides concrete workflow examples (ZIP/ZCTA to NWS fire zones, NWS zone to counties, county to overlapping ZCTAs). This clearly distinguishes it from sibling tools like resolve_reference, which likely handles single-reference resolution.

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

Usage Guidelines4/5

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

The description gives explicit use cases: '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.' This tells an agent when to apply the tool. However, it does not explicitly say when not to use it or name alternative tools, relying on the workflow context to implicitly separate it from siblings. So it is clear but lacks explicit exclusions.

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 JobCInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
iso3No
itemsYesRows to convert; row-level fields may override top-level defaults.
limitNo
quote_idNoQuote id returned by estimate_conversion_job, when available.
min_shareNo
to_systemNoOptional output reference system. Omit to normalize to loc_id.
request_idNoOptional caller-supplied request id for tracing.
from_systemNo
output_nameNo
output_formatNo
geography_bindingNo
target_admin_levelNo
relationship_vintageNo

TDQS

C2.9/5.0
Behavior3/5

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

With only readOnlyHint=false in annotations, the description carries most of the behavioral burden. It usefully discloses synchronous execution, a 7,500-row hosted default, a 10–20 second response budget, and identifier deduplication. However, it does not describe output shape, failure behavior, side effects, or any permissions requirements, leaving the picture incomplete.

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

Conciseness4/5

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

The description is compact: three sentences with the core operation front-loaded and the scaling constraints after. There is minimal filler, though jargon like 'v0' and 'loopback' slightly reduces accessibility.

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

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 13 parameters, nested objects, an anyOf requirement, and no output schema, the description is far from complete. It does not explain the required items structure, the from_system versus geography_binding choice, row-level overrides, or what the synchronous job returns. An agent would still need substantial schema inference and sibling exploration to call it correctly.

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

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 31%, so the description must compensate, but it names no parameters directly. It alludes to output formats and the row cap, and 'preserved scalar fields' hints at the data parameter, but from_system, geography_binding, to_system, target_admin_level, min_share, quote_id, and others remain unexplained. The description adds little beyond what the schema already exposes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Creates a synchronous v0 user-data conversion job' and enumerates supported output formats, so the operation is identifiable. It is clear but does not explicitly differentiate itself from siblings like estimate_conversion_job or convert_reference; the 'user-data' and 'synchronous' qualifiers only imply a distinction.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool versus alternatives such as estimate_conversion_job or convert_reference. The hosted/local loopback contrast is behavioral scaling context, not a use-case selector. Prerequisites, sequencing, or exclusion conditions are absent.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNo
formatNo
loc_idNo
loc_idsNoSelected loc_ids. The default synchronous limit is 250; larger calls return a typed operational-limit response.
quote_idNoQuote id returned by estimate_geometry_package, when available.
request_idNoOptional caller-supplied request id for tracing.
output_nameNo
include_polygonNo

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only provide readOnlyHint=false, leaving the description to carry the burden. It discloses synchrony, response budget, service-item caps, and environment-dependent behavior (hosted vs local loopback). This is substantial behavioral context beyond what annotations offer.

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

Conciseness5/5

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

Two sentences, front-loaded with the core action, then scaling limits and redirection. Every sentence contributes value without repetition or filler.

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

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a create/export tool with no output schema, it covers purpose, limits, access lane, and formats. The only notable omission is the return value or response structure, which is a minor gap given the tool's nature.

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

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 38% (3 of 8 params described). The description compensates by clarifying that loc_ids are an exact list with a default cap of 250, scope must be a single strict scope, format maps directly to the enum, and quote_id originates from estimate_geometry_package. Some optional params like include_polygon and output_name remain unexplained, but the core selection params gain meaningful context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it 'Creates a synchronous v0 geometry export' from 'exact loc_ids or one strict scope', with explicit format options (GeoJSON, gzipped GeoJSON, zipped GeoJSON). This specific verb-resource pair distinguishes it from sibling tools like get_geometry (retrieval) and create_conversion_job (asynchronous conversion).

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

Usage Guidelines4/5

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

Provides clear operational guidance: hosted service default of 250 loc_ids, 10-20 second response budget, and direct local-loopback exception. It explicitly directs users to estimate_geometry_package or get_tool_help for the effective access lane. However, it doesn't explicitly contrast with async alternatives like create_conversion_job, so not a full 5.

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 JobA
Read-only
Inspect

Free dry-run quote for uploaded or pasted user data conversion. Estimates rows, sample resolvability, output bytes, errors, and charge units before execution.

ParametersJSON Schema
NameRequiredDescriptionDefault
iso3No
itemsNoSample or full rows; row-level fields may override top-level defaults.
limitNo
min_shareNo
row_countNoExpected total row count when only a sample or artifact pointer is provided.
to_systemNoOptional output reference system. Omit to normalize to loc_id.
request_idNoOptional caller-supplied request id for tracing.
from_systemNoInput reference system for rows.
output_nameNoOptional safe base filename.
output_formatNoEnriched-row output format. CSV is spreadsheet-friendly; Parquet is compact and typed; JSON Lines is stream-friendly.
geography_bindingNoKnown dataset-geography declaration. The estimate verifies it against distinct identifiers and avoids point containment.
target_admin_levelNo
relationship_vintageNo

TDQS

A4.1/5.0
Behavior4/5

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

The readOnlyHint annotation already signals a safe, non-mutating operation. The description adds meaningful behavioral context by stating this is a free dry-run that estimates rows, sample resolvability, output bytes, errors, and charge units without executing the conversion. No contradiction with annotations.

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

Conciseness5/5

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

A single, dense sentence that front-loads the core value proposition ('Free dry-run quote') and then lists the estimated outputs. Every word earns its place; there is no fluff or redundant restating of the tool name.

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

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only estimation tool, the description covers the essential inputs (uploaded or pasted data) and outputs (rows, resolvability, bytes, errors, charge units). Given the absence of an output schema, this is helpful. The complex schema still carries most parameter-level context, but the description is complete enough for tool selection and initial invocation.

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

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 13 parameters and only 62% schema description coverage, the description needed to compensate, but it adds little parameter-specific meaning. It references 'uploaded or pasted user data' and 'sample resolvability,' but does not clarify the anyOf input modes, geography_binding, or from_system semantics. Most parameter understanding must come from the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Estimates') and resource ('conversion job'), and clearly frames it as a free dry-run quote rather than actual conversion. The phrase 'before execution' distinguishes it from create_conversion_job, and the listed estimate outputs clarify what the tool produces.

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

Usage Guidelines4/5

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

The description communicates the key usage context: use this tool to get a pre-execution estimate for uploaded or pasted user data conversion. It implies this is the preview step before create_conversion_job, though it does not explicitly name alternative tools 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.

estimate_geometry_packageEstimate Geometry PackageA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNo
formatNoImplemented delivery format. Unsupported format names are rejected rather than silently returning another representation.
loc_idNoSingle loc_id to package.
loc_idsNoExplicit loc_ids to package.
request_idNoOptional caller-supplied request id for tracing.
output_nameNoOptional safe base filename for the export.
include_polygonNoEstimate full shapes when true; metadata-only when false.

TDQS

A4.2/5.0
Behavior4/5

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

The readOnlyHint annotation already establishes this as a safe read operation. The description adds meaningful context by specifying what the estimate covers and clarifying that it is not a canonical release bundle, which helps the agent understand the tool's non-destructive estimation behavior.

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

Conciseness5/5

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

The description is two sentences, immediately states the tool's purpose, and wastes no words. It is front-loaded with the key action and outcome, then a short clarifying distinction.

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

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complex schema and no output schema, the description compensates by listing the key return elements (count, availability, bytes, etc.). It does not explicitly state the requirement to provide loc_id, loc_ids, or scope, but the schema's anyOf enforces that, and the description is otherwise complete for an estimate tool.

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

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 86%, so the schema already handles most parameter meaning. The description does not add significant parameter-level details beyond saying 'selected geometry export,' but the high schema coverage justifies the baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with 'Dry-run estimate for a selected geometry export,' using a specific verb and resource. It enumerates the exact output dimensions (loc_id count, shape/vintage availability, bytes, delivery mode, citation requirements, charge units) and explicitly differentiates from a canonical release bundle, making the purpose unmistakable.

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

Usage Guidelines4/5

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

The description clearly frames the tool as an estimator for export artifacts and excludes canonical bundles, implying use before or instead of actual export creation. However, it does not explicitly reference sibling tools like create_geometry_export or state 'use this before creating an export,' so the guidance is clear but 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 CatalogA
Read-only
Inspect

Free discovery. Returns the list of live agent-ready data packs available on DaedalMap.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, so the description does not need to repeat that. The description adds 'live agent-ready data packs' which provides additional behavioral context about the nature of the data, but it does not disclose any other traits (e.g., rate limits, freshness of data).

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

Conciseness5/5

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

Two sentences with no wasted words. The essential information is front-loaded. Every word earns its place.

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

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters, no output schema, and readOnlyHint annotation, the description provides enough context for an agent to understand what the tool returns. It could mention that it is a safe, read-only operation, but annotations already cover that. The description is complete for the simplicity of this tool.

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

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, and schema description coverage is 100%. The description does not need to explain parameters, and it adds no extraneous information. Baseline for zero parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool returns 'the list of live agent-ready data packs available on DaedalMap', which is a specific resource. The phrase 'Free discovery' adds some ambiguity but the core purpose is clear. It distinguishes from sibling tools like 'get_pack' by focusing on the catalog rather than individual packs.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives such as 'get_pack' or other data retrieval tools. There is no mention of when not to use it or any context about prerequisites or limitations.

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

get_earthquake_eventsGet Earthquake EventsA
Read-only
Inspect

Paid x402 canonical tool. Queries the published earthquakes_events lane. Use this first for earthquake questions because it is the enriched DaedalMap history lane with stable loc_id geography, not the preliminary upstream wrapper. Call without payment first - the server returns HTTP 402 with the exact USDC price before any charge. Small queries stay cheap; broad scans cost more or need narrower filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoOptional sort instructions for row-returning queries.
limitNoMaximum number of rows to return. For top-N requests, include a narrow time range or region_ids before sorting.
outputNoOptional output controls such as response format hints.
filtersYesStructured filters including time ranges, region_ids, and compare clauses.
metricsYesMetric ids to return, such as 'event_count' or event attributes like 'magnitude'.
request_idNoOptional caller-supplied request id for tracing and idempotency.

TDQS

A4.3/5.0
Behavior5/5

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

Discloses paid nature with HTTP 402 behavior and pricing sensitivity, which goes beyond the readOnlyHint annotation, adding crucial 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.

Conciseness4/5

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

Concise four-sentence paragraph with front-loaded purpose and no fluff, though it could benefit from structural separation of usage and payment details.

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

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Provides adequate context for a moderately complex tool with 6 params and no output schema, covering payment flow and lane distinction, but lacks hints about response structure.

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

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so description adds minimal parameter detail beyond existing schema. It mentions query breadth cost implications but does not explain parameter formats or relationships.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it queries earthquake events from the enriched DaedalMap history lane, distinguishing it from the preliminary upstream wrapper and sibling tools like get_live_earthquake_events.

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

Usage Guidelines4/5

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

Explicitly advises to use this first for earthquake questions and describes the 402 payment flow and filter optimization, though it does not explicitly state when not to use it or name alternatives.

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

get_fx_ratesGet FX RatesA
Read-only
Inspect

Free tool. Queries the currency pack using filters.region_ids plus filters.time.granularity to return daily, weekly, or monthly FX data.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoOptional sort instructions for row-returning queries.
limitNoMaximum number of rows to return for the requested granularity and time span.
outputNoOptional output controls such as response format hints.
filtersYesStructured filters including region_ids with loc_id country codes, time range, and granularity.
metricsNoOptional metric ids. Defaults to 'local_per_usd' for FX rate queries.
request_idNoOptional caller-supplied request id for tracing and idempotency.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description adds value by explaining query mechanics (region_ids, time granularity) and output granularity (daily/weekly/monthly). There is no contradiction, and the description enriches 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.

Conciseness5/5

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

Two sentences efficiently deliver purpose and key usage details. 'Free tool' is front-loaded, and the second sentence packs essential information without superfluous text.

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

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 params, nested objects, no output schema) and annotations, the description adequately covers the core query behavior and granularity options. It does not explain sort, limit, or output, but the schema covers those, making the description sufficiently complete.

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

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds meaning by specifying that 'filters.region_ids plus filters.time.granularity' determine daily/weekly/monthly returns. This goes beyond the schema's generic description, providing actionable parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Queries the currency pack using filters.region_ids plus filters.time.granularity to return daily, weekly, or monthly FX data.' It specifies the resource (currency pack), action (queries), key parameters, and output granularity, distinguishing it from sibling tools like 'query_dataset' or 'get_pack'.

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

Usage Guidelines3/5

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

The description opens with 'Free tool,' hinting at no cost, but does not explicitly state when to use this tool versus alternatives like 'query_dataset' or 'get_catalog.' Usage is implied for FX rate queries only, with no guidance on exclusions or prerequisites.

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 GeometryA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
loc_idNoDaedalMap loc_id, such as USA-CA-037, USA-Z-00601, USA-NWSFZ-AKZ317, EEZ-USA, or IHO1953-240001002.
loc_idsNoDaedalMap loc_ids to fetch in one call. Default public cap is deployment-configurable and lower when include_polygon is true.
batch_idNoOptional caller-supplied batch id for tracing.
request_idNoOptional caller-supplied request id for tracing.
include_polygonNoWhen true, include the full GeoJSON geometry. Default false.

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=true, and the description adds meaningful behavioral context: historical geometry is returned first, an evidenced successor appears only as a separate question and is never fetched automatically, and the response includes metadata, vintage, centroid, bounding box, and optional GeoJSON polygon. This goes well beyond the annotation and describes the tool's actual behavior.

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

Conciseness5/5

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

The description is concise and front-loaded: it states the core purpose first, then return content, then behavior, then alternatives, then usage preference. Every sentence earns its place, and there is no redundant restatement of the tool name or title.

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

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even without an output schema, the description explains the return values (metadata, vintage, centroid, bounding box, optional polygon), key behavioral edge cases (historical first, no successor substitution), exclusions (hierarchy/crosswalks), and usage preference (bbox/centroid over polygon). With a fully documented input schema, this is complete enough for an agent to invoke the tool correctly.

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

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the parameters. The description adds useful semantic context by explaining that loc_ids can come from any level of a resolve_point chain and that the polygon is optional, reinforcing the include_polygon parameter's role. It does not deeply elaborate every parameter, but it meaningfully supplements the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: "Shape retrieval for exact loc_ids," including loc_ids from any level of a resolve_point chain. It also distinguishes itself from loc_id_info by explicitly stating what it does not explain, so an agent can tell it apart from nearby siblings.

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

Usage Guidelines5/5

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

The description gives explicit guidance on when to use it: prefer bbox/centroid unless exact rendering or clipping requires the polygon, and use loc_id_info for hierarchy or crosswalk details. It also clarifies that successors are never substituted automatically, which prevents incorrect invocation assumptions.

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 StatusA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesJob id returned by create_geometry_export or create_conversion_job.
request_idNoOptional caller-supplied request id for tracing.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, and the description adds useful behavioral context by specifying that only completed inline jobs are retrievable under the current public contract, while durable queued jobs and downloadable artifacts remain unsupported. This enriches the annotation without contradicting it.

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

Conciseness5/5

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

The description is two sentences: the first states the core action with precision, the second provides a clear contract limitation. No unnecessary words or redundancy.

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

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only status tool with full schema coverage and a read-only annotation, the description is largely sufficient. It covers purpose and contract limitations, but the lack of an output schema means a brief note on return value would be useful, and the term 'bounded v0' is somewhat cryptic.

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

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, setting a baseline of 3, but the description adds meaning by requiring job_id to be a completed 'bounded v0' job, which goes beyond the schema's simple origin reference and clarifies expected job state. request_id is already well-documented in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Retrieves' and clearly identifies the resource as 'completed bounded v0 geometry export or conversion job' accessed 'by job_id'. This distinguishes it from sibling creation/estimation tools such as create_geometry_export and create_conversion_job.

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

Usage Guidelines4/5

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

The description implies usage for retrieving completed inline jobs and explicitly notes that durable queued jobs and artifact links are future capabilities, which sets expectations. The schema also references create_geometry_export and create_conversion_job as job_id origin points, but the description itself does not explicitly state when to use or avoid this tool 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_live_earthquake_eventsGet Live Earthquake EventsA
Read-only
Inspect

Free live wrapper. Calls the USGS FDSN API for recent preliminary earthquake events normalized to DaedalMap event fields. Use this only when the caller explicitly wants live/preliminary upstream results or needs a very recent window not yet present in the published canonical earthquake lane. This is not the enriched canonical history lane.

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNoRecent lookback window in hours. Ignored when start_time is provided.
limitNoMaximum live rows to return.
orderbyNoUSGS result ordering.
end_timeNoOptional exclusive-ish ISO-8601 end datetime. Defaults to now.
request_idNoOptional caller-supplied request id for tracing.
start_timeNoOptional inclusive ISO-8601 start datetime.
max_latitudeNoOptional bounding box maximum latitude.
min_latitudeNoOptional bounding box minimum latitude.
max_longitudeNoOptional bounding box maximum longitude.
min_longitudeNoOptional bounding box minimum longitude.
min_magnitudeNoMinimum earthquake magnitude. Defaults to 2.5.

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true. The description adds that it calls the USGS API and normalizes to DaedalMap event fields. This is useful context but does not significantly expand beyond what the annotation already conveys. No contradictions.

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

Conciseness5/5

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

The description is three sentences, front-loaded with the main purpose, and every sentence serves a clear role. It is concise and well-structured.

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

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description, combined with the schema and annotations, provides sufficient context for a read-only tool with 11 well-described parameters. It explains the source and normalization, and the usage guidance is clear. Lacks details on output format, but that may be covered by the DaedalMap event field standard.

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

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add any additional parameter information beyond what is already in the schema; it relies on the schema's descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that this tool retrieves live/preliminary earthquake events from the USGS FDSN API and normalizes them. It explicitly distinguishes itself from the canonical earthquake lane, making the purpose specific and unambiguous.

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

Usage Guidelines4/5

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

The description explicitly tells when to use this tool (when live/preliminary results are needed or for a very recent window) and what it is not (the enriched canonical history lane). Although it does not name the alternative, the sibling tool get_earthquake_events is implied as the canonical one.

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

get_live_volcano_eventsGet Live Volcano EventsA
Read-only
Inspect

Free live wrapper. Calls the Smithsonian/GVP WFS for recent preliminary volcanic eruption updates normalized to DaedalMap event fields. This is not the enriched canonical history lane.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoRecent lookback window in days. Ignored when start_time is provided.
limitNoMaximum live rows to return.
min_veiNoOptional minimum Volcanic Explosivity Index.
orderbyNoResult ordering.
end_timeNoOptional inclusive ISO-8601 end datetime or date. Defaults to now.
request_idNoOptional caller-supplied request id for tracing.
start_timeNoOptional inclusive ISO-8601 start datetime or date.
ongoing_onlyNoWhen true, only return eruptions marked continuing by GVP.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description adds that it calls an external WFS service, returns preliminary data, and is not canonical. This provides extra behavioral context beyond annotations.

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

Conciseness5/5

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

The description is two sentences: the first explains the action and source, the second clarifies its scope. It is front-loaded with the core purpose and uses no unnecessary words.

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

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the data source and nature (live, preliminary) but does not describe the returned fields or structure. With no output schema and 8 optional parameters, more detail on the response would improve completeness.

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

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage with clear parameter descriptions. The tool description does not add additional meaning beyond what the schema provides, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a live wrapper for volcanic eruption updates from the Smithsonian/GVP WFS, specified to be preliminary and not the enriched canonical history lane. This effectively distinguishes it from sibling tools like get_volcanic_activity.

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

Usage Guidelines3/5

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

The description implies this is for live, preliminary data by stating it's a 'free live wrapper' and 'not the enriched canonical history lane,' but it does not explicitly name alternatives or provide when-not-to-use guidance.

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

get_packGet PackA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pack_idYesPack identifier from get_catalog. Newly catalog-admitted packs require no MCP schema change.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so safety is covered. The description adds meaningful behavioral context by enumerating what the tool exposes (metadata, coverage, freshness, canonical tool guidance, first-query examples) and the practical benefit ('time shape, coverage limits, and the paste-ready first query'). This explains the output's role without contradicting the read-only annotation.

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

Conciseness5/5

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

Two sentences with zero redundancy. The first sentence front-loads the purpose and output contents; the second delivers actionable usage guidance. Every word earns its place.

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

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only discovery tool with no output schema, the description fully specifies what the agent receives (the enumerated output elements) and when to call it. Nothing an agent needs to invoke it correctly is missing.

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

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents pack_id completely with 100% coverage, including its source (get_catalog) and a note about catalog-admitted packs. The description does not add any additional meaning about the parameter itself, so per the baseline for high schema coverage, a score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Returns detailed metadata, coverage, freshness, preferred canonical tool guidance, and first-query examples') targeting a distinct resource ('one pack'). It explicitly frames this as 'Free discovery,' which clearly distinguishes it from sibling tools like query_dataset or get_catalog by its discovery-oriented purpose.

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

Usage Guidelines4/5

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

The description provides an explicit when-to-use instruction: 'Call this before querying a new pack.' This is a clear situational trigger. It does not mention when not to use it or name specific alternatives, but the guidance is unambiguous and actionable for an agent.

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 HelpA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tool_nameYesExact tool name from tools/list.

TDQS

A4.4/5.0
Behavior4/5

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

The readOnlyHint annotation already indicates a safe read operation. The description adds useful behavioral context by stating it returns guidance content and references a shared interaction contract, 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.

Conciseness4/5

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

The description is concise and mostly front-loaded, but contains some dense jargon like 'blind-caller' and 'natural-language-to-strict-JSON interaction contract.' It earns its place with practical guidance and a clear call-to-action.

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

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description thoroughly covers what the tool returns, including usage context, example, access limits, outputs, provenance fields, recommended next calls, and the interaction contract. It also provides a clear invocation workflow.

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

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear parameter description ('Exact tool name from tools/list'). The description reinforces the need to use tools/list but does not add substantial semantic meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that this tool provides guidance for another tool on the MCP facade, listing the specific types of information returned. It distinguishes itself from the many domain-specific sibling tools by being a meta-tool for unfamiliar-tool assistance.

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

Usage Guidelines5/5

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

The description gives explicit guidance: use tools/list to discover names, then call this before an unfamiliar tool. This clearly states when to use the tool and implies it is not needed for familiar tools.

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

get_tsunami_eventsGet Tsunami EventsA
Read-only
Inspect

Paid x402 canonical tool. Queries tsunamis_events for historical tsunami records and water-height/runup metrics. Best for event counts, max water height thresholds, and top-event lookups. Region filters may use ISO3 country ids or reviewed named-water loc_ids such as IHO1953-240001002 for the Mediterranean Sea; XOO is deprecated. Call without payment first - the server returns HTTP 402 with the exact USDC price before any charge.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoOptional sort instructions for row-returning queries.
limitNoMaximum number of rows to return. For largest-wave or latest-event requests, include a narrow time range or region_ids before sorting.
outputNoOptional output controls such as response format hints.
filtersYesStructured filters including time ranges, region_ids, and compare clauses. Tsunami queries commonly use year-style windows and may use geometry-backed ocean/sea ids such as XSM.
metricsYesMetric ids to return, such as 'event_count', 'max_water_height_m', or event attributes.
request_idNoOptional caller-supplied request id for tracing and idempotency.

TDQS

A4.6/5.0
Behavior5/5

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

Disclosure of payment mechanism (HTTP 402 with price before charge), region filter specifics (ISO3, water loc_ids, deprecated XOO), and guidance on limit usage. All beyond readOnlyHint annotation.

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

Conciseness4/5

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

Three sentences cover purpose, usage, and important details. Efficient but slightly dense; could be more structured. Still concise.

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

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers payment, filter usage, limit advice, and metric examples. No output schema, but description implies return values. Adequate for correct invocation.

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

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Adds valuable context to parameters: region filters with examples, limit usage with sorting advice, and metric examples. Schema coverage is 100%, so baseline is 3, but description significantly enhances understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it queries tsunami events for historical records and water-height/runup metrics. Specifies use cases: event counts, max water height thresholds, top-event lookups. Distinguishes itself from sibling tools by focusing on tsunamis.

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

Usage Guidelines4/5

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

Provides explicit when-to-use scenarios and mentions payment requirement. Does not explicitly state when not to use or list alternatives, but context is clear given sibling tool names.

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

get_volcanic_activityGet Volcanic ActivityB
Read-only
Inspect

Free canonical tool. Queries volcanoes_events for historical eruption records and volcanic activity metrics. Best for eruption counts, VEI thresholds, and top-event lookups. Volcano queries normally use year-style time filters rather than ISO date strings.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoOptional sort instructions for row-returning queries.
limitNoMaximum number of rows to return. For top-N VEI or latest-eruption requests, include a narrow year range or region_ids before sorting.
outputNoOptional output controls such as response format hints.
filtersYesStructured filters including year-based time ranges, region_ids, and compare clauses. For most volcano queries, pass numeric years or time.value.
metricsYesMetric ids to return, such as 'event_count', 'VEI', or eruption attributes.
request_idNoOptional caller-supplied request id for tracing and idempotency.

TDQS

B3.4/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true. The description adds 'Free canonical tool' and 'Queries' but does not disclose any behavioral traits beyond what the annotations provide (e.g., no mention of rate limits, data freshness, or pagination). Minimal added value.

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

Conciseness5/5

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

Four short sentences, each contributing unique information: tool classification, resource queried, use cases, and filter hint. No redundancy or wordiness. Front-loaded with key purpose.

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

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite good purpose and usage guidance, the description lacks information about return format or output structure, which is critical given no output schema. Also does not mention pagination, data limits, or error conditions for a tool with nested objects and required parameters.

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

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so baseline is 3. The description adds a usage hint about year-style time filters, but this aligns with the schema parameter descriptions (which already mention year-based time ranges). No significant added meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it queries historical eruption records and volcanic activity metrics, with specific use cases like eruption counts and VEI thresholds. However, it does not explicitly distinguish itself from the sibling 'get_live_volcano_events', missing a clear differentiator.

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

Usage Guidelines4/5

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

Provides guidance on when to use (best for eruption counts, VEI thresholds, top-event lookups) and a specific filter hint (year-style time filters). Lacks explicit exclusion of live events or alternatives, but the guidance is useful.

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 WorksA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
questionNoOptional natural-language question about how to use the geometry tool family.

TDQS

A4.4/5.0
Behavior4/5

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

The readOnlyHint annotation already establishes that this is a safe, non-mutating operation. The description adds useful context beyond that: it reveals the tool teaches durable concepts, provides current catalog coverage, and explains how behavior scales across countries. 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.

Conciseness4/5

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

The description is rich but not bloated; it front-loads the tool's purpose and sequencing, then provides concrete catalog data that helps an agent decide whether to call it. It earns its length by communicating scope, coverage, and next steps efficiently.

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

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that this tool has only one optional parameter, no output schema, and read-only annotations, the description is complete for selection and invocation. It explains what concepts will be learned, which countries have extra depth, and what to do after calling this tool. Nothing essential for an agent is missing.

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

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, since the optional 'question' parameter is fully described in the schema as a natural-language question about the geometry tool family. The tool description adds no additional parameter-level detail, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as a starting guide for the geography/geometry MCP and explicitly instructs the agent to call it first. It distinguishes itself from sibling tools by positioning itself as the conceptual entry point before read_geometry_catalog or get_tool_help.

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

Usage Guidelines5/5

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

The description gives explicit sequencing: call this first, then read the live geometry catalog for country-specific details, then use get_tool_help for one exact tool. This provides clear usage context and names alternatives, leaving little ambiguity about when this tool should be invoked.

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 SystemA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
expectedNo
identifierNoOne geography identifier to inspect.
request_idNoOptional caller-supplied request id for tracing.
identifiersNoA bounded representative identifier sample. Duplicate values are checked once. Values must be strings so leading zeros are preserved.
country_scopeNoOptional ISO3 country hint used to narrow candidate banks.
validation_scopeNoDescribes whether the supplied identifiers are a sample or the complete distinct-key set. The tool validates every supplied identifier.

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, it discloses input-handling requirements (preserve leading zeros, no prose in arguments), bounded sample behavior, and the full set of outputs including ranked candidates, deterministic warnings, clarification questions, and recommended geography_binding. It also notes cost ('Free... No payment required') and limitations.

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

Conciseness4/5

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

The description is well-structured and front-loaded, but contains a minor redundancy: 'Free geography utility' and 'No payment required' say the same thing. All other sentences earn their place, covering purpose, usage, output, and exclusions.

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

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description thoroughly covers return behavior (ranked candidates, warnings, clarification questions, counts, recommended binding), scope limits, and cost. It is complete for a complex identification tool with 6 parameters and nested objects.

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

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is high (83%), so baseline is 3; the description adds actionable parameter guidance not in the schema: LLM clients must extract identifiers from natural-language and pass them as strings, preserve leading zeros, and not put prose in arguments. This complements the schema's existing field descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it 'Checks a bounded sample of identifiers against maintained reference indexes and geometry banks,' with a specific use case ('unsure which system, level, or bank they belong to') and explicit exclusions ('does not convert the full dataset or return polygons'), distinguishing it from conversion and geometry tools.

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

Usage Guidelines5/5

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

Gives explicit when-to-use guidance ('Use it when a caller has geography keys but is unsure...') and when-not ('It does not convert the full dataset or return polygons'). It also provides concrete LLM client instructions for extracting identifier strings, which is valuable operational guidance.

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 SystemsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
read_wipNoLocal loopback MCP only. Include staged or non-callable preprocessing records for operator review. Default false.
request_idNoOptional caller-supplied request id for tracing.
country_scopeNoOptional ISO3 country filter. Use this for a focused country capability answer.
include_crosswalksNoInclude actionable source-to-target crosswalk records. Default true.

TDQS

A4.4/5.0
Behavior3/5

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

Annotations provide readOnlyHint=true, so the description doesn't need to emphasize read-only. The description adds behavioral context: it mentions 'Free geography utility' (no payment), 'Public calls never expose WIP or relationship-only records' (privacy/filtering), and that read_wip is for operator review. This adds non-obvious details beyond the annotations, such as the concept of WIP records and the loopback-only restriction. However, it doesn't specify pagination or response structure, which could be useful but the annotation covers safety.

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

Conciseness4/5

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

The description is three sentences, information-dense, and front-loads the core purpose. It lists many specific data attributes (row counts, vintages, target levels) which adds length but is relevant. It could be slightly more concise by trimming some enumerations, but it remains efficient and readable.

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

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool is a read-only listing/directory function with annotations covering safety, the description provides a complete picture: what it returns, what filters to use, what it excludes, and when to call it. There is no output schema, so the description must convey the return concept, which it does by listing the kinds of artifacts. The description covers the essential guidance an agent needs to invoke correctly.

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

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter is described in the schema. The description adds practical guidance: 'Pass country_scope whenever the country is known' and explains read_wip is for operator review. It doesn't heavily elaborate on parameters but provides context that helps the agent decide how to use them, such as country_scope for focused answers and include_crosswalks default. Since the schema already covers semantics, the extra guidance pushes it above baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads a 'canonical crosswalk registry' and lists published, callable geographic reference systems, crosswalk artifacts, row counts, vintages, etc. It explicitly mentions the types of identifiers (ZIP/ZCTA, postal, census, etc.) and states its purpose: to learn whether identifiers can be exchanged through loc_id. This is specific and distinct from siblings like identify_reference_system or 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.

Usage Guidelines5/5

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

The description explicitly says 'Pass country_scope whenever the country is known' and 'Call this first to learn whether...' providing clear when-to-use guidance. It also notes public calls never expose WIP or relationship-only records, which implies usage restrictions. It does not name specific sibling alternatives but provides enough context to distinguish this as an initial discovery tool.

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 DetailsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
iso3NoOptional country hint for crosswalk artifacts. Defaults to the loc_id country when possible.
loc_idNoDaedalMap loc_id, e.g. 'USA-CA'.
loc_idsNoDaedalMap loc_ids to inspect together, including every loc_id from a resolve_point stack. Default public cap is deployment-configurable.
systemsNoOptional reference systems to include when include_references is true, such as zcta, nws_fire, overlay_tribal, or overlay_nws_public_zone.
batch_idNoOptional caller-supplied batch id for tracing.
min_shareNoOptional minimum target-area share for reverse overlap references.
request_idNoOptional caller-supplied request id for tracing.
limit_per_systemNoMaximum overlap references to return per bridge/system. Default 10.
include_hierarchyNoWhen true, include strict stored parent and ancestor data. This never invents a parent edge across mixed releases. Default false.
include_referencesNoWhen true, include known external or side-chain references attached to each loc_id. Default false.
target_admin_levelNoAdmin level for crosswalk-backed reverse reference lookup. Inferred when omitted.

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only provide readOnlyHint=true, but the description enriches the behavioral picture considerably: supersession is never automatically substituted, historical records are only returned as requested, and parent edges are never invented across mixed releases. It also discloses the 'No payment required' policy, which is useful operational 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.

Conciseness5/5

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

The description is dense yet well-structured: it opens with the tool's role, then input modes, then output contents, then flag semantics, then sibling differentiation and alternatives. Every sentence contributes distinct information, and the text stays readable despite covering a complex 11-parameter tool.

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

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 11 parameters and no output schema, the description covers the essential context: how to supply inputs, what the key flags do, what output categories to expect, and when to use sibling tools. The behavioral constraints around supersession and mixed releases are also included. Nothing critical for a correct first call appears to be missing.

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

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds semantic depth beyond individual property docs. It explains the relationship between loc_id and loc_ids, clarifies that include_hierarchy returns the 'strict same-release ancestor chain', and ties include_references to external crosswalks. This helps an agent understand parameter intent, not just types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: a 'drill-down tool for loc_ids' that retrieves metadata, parentage, shape status, vintage/lifecycle fields, and child counts. It further distinguishes itself from siblings by noting 'resolve_point intentionally stays compact' and naming get_geometry and compare_geographies as alternatives. The purpose is unambiguous and clearly differentiated.

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

Usage Guidelines5/5

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

It explicitly states when to use the tool: pass one loc_id or the stack loc_ids from resolve_point, and enables hierarchy/references via flags. It also gives clear exclusion guidance: 'For exact polygons use get_geometry, and for overlap or successor analysis use compare_geographies.' This leaves no ambiguity about when to select this tool versus alternatives.

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

query_datasetQuery DatasetA
Read-only
Inspect

Generic structured query for direct source_id or pack_id access using the same contract as POST /api/v1/query/dataset. Free packs: currency, distributed_manufacturing, floods, nri, owid, un_sdg, un_wpp, volcanoes, world_bank_wdi. Paid packs: earthquakes, hurricanes, tornadoes, tsunamis, wildfires, world_factbook, worldpop (x402 Base USDC).

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoOptional sort instructions for row-returning queries.
limitNoMaximum number of rows to return for the requested source or pack.
outputNoOptional output controls such as response format hints.
filtersNoStructured filters including time, region_ids, and compare clauses.
metricsNoMetric ids to return. Use event_count for aggregate counts when supported.
pack_idNoPack identifier from get_catalog. Newly catalog-admitted packs require no MCP schema change.
source_idNoConcrete source id such as 'earthquakes_events', 'volcanoes_events', 'hurricanes_events', or 'un_sdg/01'.
request_idNoOptional caller-supplied request id for tracing and idempotency.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already mark the operation as read-only (readOnlyHint: true), and the description aligns by calling it a 'query'. It adds useful context beyond annotations by distinguishing free versus paid packs and mentioning the payment token (x402 Base USDC), which is a behavioral nuance about access costs, not just read-only safety.

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

Conciseness4/5

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

The description is relatively long due to the enumerated pack list, but every sentence carries useful information: the purpose, the API contract, and the available free/paid packs. The main purpose is front-loaded, and the pack list serves as a quick reference, making the length justified.

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

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters and no output schema, the description provides valuable context by listing all pack identifiers, which is essential for using pack_id. However, it does not describe the response format or any constraints of the 'same contract' beyond the mention, leaving the agent to infer return behavior. This is a notable gap given no output schema.

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

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters with descriptions. The description adds minor context by emphasizing the source_id/pack_id dichotomy, but it does not deepen parameter meaning beyond what's in the schema, so a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool is a 'generic structured query' for 'direct source_id or pack_id access', which is a specific verb and resource. It distinguishes itself from the many specific sibling tools (e.g., get_earthquake_events) by being the generic query pathway, and even references the API contract for precision.

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

Usage Guidelines3/5

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

The description implies usage when you have a source_id or pack_id, and provides a list of valid packs, which gives context. However, it does not explicitly state when to prefer this over sibling tools or when not to use it, leaving some inference to the agent.

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 CatalogA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNoCatalog view to return. Use capabilities for the concise first-user coverage model. Default summary for compatibility.
limitNoMaximum named reference objects to return. Default 50.
read_wipNoLocal 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_idNoOptional caller-supplied request id for tracing.
country_scopeNoOptional ISO3 country code for view='capabilities'. Returns the selected country's baseline, active depth, families, and query guidance.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, and the description aligns with that, adding that it is read-only and free. It discloses the default behavior (excluding staged/candidate work) and the read_wip restriction (denied for hosted/public). This is useful context beyond the annotation, though it doesn't describe error behavior or response structure.

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

Conciseness3/5

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

The description is moderately long, with a clear opening sentence and useful guidance. However, the 'Current catalog' paragraph includes promotional details (e.g., 'The same geography tools work worldwide...') that are not essential for invocation and could be trimmed. The information is front-loaded reasonably well.

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

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool is read-only and has no output schema, the description provides sufficient context for an agent to invoke it correctly: it explains the default scope, available view categories, the read_wip limitation, and examples of enhanced country coverage. It doesn't specify exact output format, but for a catalog listing that may be acceptable. The limit parameter is mentioned in schema, and the description gives enough to call it.

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

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the parameter semantics baseline is 3. The description adds value by explaining the intended order of views (capabilities first), the purpose of read_wip, and implicitly linking country_scope to the capabilities view. It does not redefine parameter types, but it gives usage guidance that the schema does not fully convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads the published DaedalMap geometry catalog projection by default, excluding staged and candidate work. It distinguishes from geometry-specific operations by emphasizing 'discovery' and 'catalog', though it does not explicitly name sibling alternatives like get_geometry or get_catalog. The purpose is specific and actionable.

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

Usage Guidelines4/5

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

The description provides explicit usage strategy: '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 gives a constraint (read_wip only for local loopback MCP) and notes no payment required. It does not explicitly mention when to choose this over siblings, but the intended selection criteria are clear.

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 ScopeA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
bboxNoOptional minLon,minLat,maxLon,maxLat filter.
limitNoMaximum rows to return inline. Counts are returned even when rows are truncated.
scopeNo
offsetNoOffset for preview paging.
count_onlyNoWhen true, return counts without loc_id rows.
request_idNoOptional caller-supplied request id for tracing.
admin_levelNoTarget level, such as admin_2, 2, county, or state.
parent_loc_idNoParent DaedalMap loc_id, such as USA or CAN-BC.

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, the description adds behavioral constraints: 'strict hierarchy traversal', 'coherent parent chain', and 'must not bridge release seams.' It also clarifies that 'No natural-language decoding is performed,' which is valuable context for callers. These details significantly enrich the safety and usage profile.

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

Conciseness5/5

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

Four sentences, each earning its place: function, non-goals, use case, and a behavioral caveat. No redundant or promotional language. The description is front-loaded with the core purpose and immediately gives actionable context.

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

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has nested scope objects and 8 parameters, but the schema already documents them well. The description explains the core use case and exclusion behavior. It could optionally mention output structure, but the schema's mention of 'rows', 'counts', and 'limit' covers that. Slightly more could be said about when the scope object is preferred, but overall sufficient.

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

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is high (88%) with informative descriptions for parent_loc_id, admin_level, limit, count_only, etc. The description reinforces the key parameters by naming them ('parent loc_id and target admin level') and adds the no-NL note, which clarifies that admin_level expects structured values. This is a slight value-add over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'returns descendants from that coherent parent chain' given a parent loc_id and target admin level. It distinguishes itself from the 'mixed-vintage latest-per-depth point resolver' (likely resolve_point), making its purpose unique among siblings.

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

Usage Guidelines5/5

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

Explicitly states when to use: 'Use it before shape exports such as every county in a selected parent scope.' Also states what it is not: 'not the mixed-vintage latest-per-depth point resolver' and 'must not bridge release seams.' This gives clear guidance on alternatives and placement in workflows.

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_idA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoLatitude in WGS84 decimal degrees.
lonNoLongitude in WGS84 decimal degrees.
pointsNoPoints 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_idNoOptional caller-supplied batch id echoed in the result.
request_idNoOptional caller-supplied request id for tracing.
bulk_presetNoCross-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_hintNoAlias for country_scope for clients that already use hint terminology.
country_scopeNoISO3/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_levelNoStopping level such as admin_0 through admin_5. Optional for up to 100 exploratory points and required for larger batches.

TDQS

A4.2/5.0
Behavior4/5

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

Despite readOnlyHint=true already covering safety, the description adds meaningful behavior: row contents, exclusions, small-vs-bulk limits, anonymous vs verified throughput, and automatic depth by catalog coverage. I deduct a point because the stated 25-point cutoff conflicts with the schema's 100-point exploratory allowance, weakening trust in the behavioral contract.

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

Conciseness4/5

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

Front-loaded with the core action and output, then organized into exclusions, sibling routing, batching rules, and catalog context. Long, but each block earns its place and the catalog paragraph gives necessary context for expected admin depth.

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

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a complex 9-parameter tool with no output schema, and the description explains return-row fields as loc_id, name, admin level, and vintage. However, it omits the exact response structure/ordering and contains the 25-vs-100 inconsistency, so an agent does not yet have everything needed to invoke it with certainty.

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

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description does add practical context around country_scope/target_admin_level and bulk_preset, but its threshold rule conflicts with the schema ('above 25' vs 'up to 100 exploratory points'), so it does not reliably clarify parameter behavior beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with 'Compact reverse geocoding' and states it converts one WGS84 point or a bounded point list into a latest-available administrative loc_id chain. It differentiates itself by explicitly listing what it does not return (polygons, hierarchy analysis, references, etc.) and pointing to sibling tools that cover those needs.

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

Usage Guidelines5/5

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

Gives explicit routing: pass stack loc_ids to loc_id_info, use get_geometry for shapes, compare_geographies for relationships, and bulk_preset for cross-country admin-0/admin-1 batches. It also states the batching rule and the need to split multi-country input per country.

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_idA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
iso3NoCountry hint for system-specific crosswalks. Default USA.
as_ofNoISO date or year used to select a time-bounded identity assertion, especially for historical names and codes.
itemsNoReference values to resolve in one call. Default public cap is deployment-configurable.
limitNoMaximum ranked matches to return. Default 10.
valueNoIdentifier or name in the input system. Examples: 00601, USA-Z-00601, AKZ317, USA-NWSFZ-AKZ317, Fairfax County, Mediterranean Sea.
batch_idNoOptional caller-supplied batch id for tracing.
min_shareNoOptional minimum area-share threshold for overlap matches.
request_idNoOptional caller-supplied request id for tracing.
from_systemNoInput 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_hintNoOptional country hint for admin/name resolution.
admin_level_hintNoOptional admin-level hint for admin/name resolution.
target_admin_levelNoAdmin 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_vintageNoOptional relationship vintage to require, such as usa_geometry_current or census_2020_relationship_files.

TDQS

A4.1/5.0
Behavior4/5

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

The readOnlyHint annotation already indicates a safe read operation, so the bar is lower. The description adds useful behavior: output includes ranked loc_id matches with bridge vintage, overlap weights, and provenance, and historical values are not automatically replaced by successors. This goes beyond what annotations provide.

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

Conciseness4/5

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

The core purpose is front-loaded and the examples are compact and useful. There is minor redundancy: 'Free geography utility' and 'No payment required' convey nearly the same information, and the historical-reference sentence could be tighter, but overall the description is well structured.

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

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the readOnlyHint annotation and a 100%-covered schema with 13 parameters, the description covers the essential behavioral context: it explains the conversion, gives examples, and describes the return fields (ranked matches, bridge vintage, overlap weights, provenance). It does not describe pagination or response structure, but the schema and annotation carry much of the needed load.

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

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The examples in the description (from_system='zip' value='00601', from_system='nws_fire' value='AKZ317') largely repeat examples already present in the schema, so the description adds only minimal parameter-level meaning beyond the input schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action (converts one value or a bounded list into the DaedalMap loc_id universe) and names the exact resource and outcome. The concrete examples for zip, nws_fire, and admin_boundary clearly distinguish this from siblings like convert_reference or identify_reference_system.

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

Usage Guidelines4/5

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

The description gives clear context for when to use the tool: resolving external or adjacent geographic values into loc_id. It also notes that historical references are returned as requested and that an evidenced successor is never substituted automatically, which is an implicit when-not. However, it does not explicitly name sibling tools or state when to prefer them over this tool.

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.

  1. 8 tool updates
    • Changedconvert_reference6 fields changed
      • removedInput schema / properties / bridge_vintage
        Removed value: -{
        -  "description": "Optional source bridge vintage to require.",
        -  "type": "string"
        -}
      • changedInput schema / properties / iso3 / description
        Previous value: -"Country hint for bridge artifacts. Default USA."New value: +"Country hint for crosswalk artifacts. Default USA."
      • removedInput schema / properties / items / items / properties / bridge_vintage
        Removed value: -{
        -  "description": "Optional bridge vintage for this row.",
        -  "type": "string"
        -}
      • addedInput schema / properties / items / items / properties / relationship_vintage
        Added value: +{
        +  "description": "Optional relationship vintage for this row.",
        +  "type": "string"
        +}
      • addedInput schema / properties / relationship_vintage
        Added value: +{
        +  "description": "Optional source relationship vintage to require.",
        +  "type": "string"
        +}
      • changedInput schema / properties / target_admin_level / description
        Previous value: -"Admin level used as the intermediate bridge target. Default admin_2."New value: +"Admin level used as the intermediate crosswalk target. Default admin_2."
    • Changedcreate_conversion_job4 fields changed
      • removedInput schema / properties / bridge_vintage
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / items / items / properties / bridge_vintage
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / items / items / properties / relationship_vintage
        Added value: +{
        +  "type": "string"
        +}
      • addedInput schema / properties / relationship_vintage
        Added value: +{
        +  "type": "string"
        +}
    • Changedestimate_conversion_job4 fields changed
      • removedInput schema / properties / bridge_vintage
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / items / items / properties / bridge_vintage
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / items / items / properties / relationship_vintage
        Added value: +{
        +  "type": "string"
        +}
      • addedInput schema / properties / relationship_vintage
        Added value: +{
        +  "type": "string"
        +}
    • Changedlist_reference_systems3 fields changed
      • addedInput schema / properties / country_scope
        Added value: +{
        +  "description": "Optional ISO3 country filter. Use this for a focused country capability answer.",
        +  "type": "string"
        +}
      • addedInput schema / properties / include_crosswalks
        Added value: +{
        +  "description": "Include actionable source-to-target crosswalk records. Default true.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / read_wip
        Added value: +{
        +  "description": "Local loopback MCP only. Include staged or non-callable preprocessing records for operator review. Default false.",
        +  "type": "boolean"
        +}
    • Changedloc_id_info2 fields changed
      • changedInput schema / properties / iso3 / description
        Previous 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."
      • changedInput schema / properties / target_admin_level / description
        Previous 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."
    • Changedread_geometry_catalog1 field changed
      • changedInput schema / properties / view / enum
        Previous 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"
        +]
    • Changedresolve_point2 fields changed
      • changedInput schema / properties / country_scope / description
        Previous 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."
      • changedInput schema / properties / target_admin_level / description
        Previous 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."
    • Changedresolve_reference6 fields changed
      • removedInput schema / properties / bridge_vintage
        Removed value: -{
        -  "description": "Optional bridge vintage to require, such as usa_geometry_current or census_2020_relationship_files.",
        -  "type": "string"
        -}
      • changedInput schema / properties / iso3 / description
        Previous value: -"Country hint for system-specific bridges. Default USA."New value: +"Country hint for system-specific crosswalks. Default USA."
      • removedInput schema / properties / items / items / properties / bridge_vintage
        Removed value: -{
        -  "description": "Optional bridge vintage for this row.",
        -  "type": "string"
        -}
      • addedInput schema / properties / items / items / properties / relationship_vintage
        Added value: +{
        +  "description": "Optional relationship vintage for this row.",
        +  "type": "string"
        +}
      • addedInput schema / properties / relationship_vintage
        Added value: +{
        +  "description": "Optional relationship vintage to require, such as usa_geometry_current or census_2020_relationship_files.",
        +  "type": "string"
        +}
      • changedInput schema / properties / target_admin_level / description
        Previous 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. 3 tool updates
    • Changedget_pack1 field changed
      • changedInput schema / properties / pack_id / description
        Previous 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."
    • Changedquery_dataset1 field changed
      • changedInput schema / properties / pack_id / description
        Previous 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."
    • Changedread_geometry_catalog3 fields changed
      • addedInput schema / properties / country_scope
        Added value: +{
        +  "description": "Optional ISO3 country code for view='capabilities'. Returns the selected country's baseline, active depth, families, and query guidance.",
        +  "type": "string"
        +}
      • addedInput schema / properties / read_wip
        Added 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"
        +}
      • changedInput schema / properties / view / enum
        Previous value: -[
        -  "capabilities",
        -  "summary",
        -  "admin_coverage",
        -  "bridges",
        -  "products",
        -  "named_reference_objects",
        -  "full"
        -]New value: +[
        +  "capabilities",
        +  "summary",
        +  "countries",
        +  "admin_coverage",
        +  "bridges",
        +  "products",
        +  "named_reference_objects",
        +  "full"
        +]
  3. 1 tool update
    • Changedread_geometry_catalog2 fields changed
      • changedInput schema / properties / view / description
        Previous 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."
      • changedInput schema / properties / view / enum
        Previous value: -[
        -  "summary",
        -  "admin_coverage",
        -  "bridges",
        -  "products",
        -  "named_reference_objects",
        -  "full"
        -]New value: +[
        +  "capabilities",
        +  "summary",
        +  "admin_coverage",
        +  "bridges",
        +  "products",
        +  "named_reference_objects",
        +  "full"
        +]
  4. 7 tool updates
    • Changedcreate_conversion_job14 fields changed
      • changedInput schema / additionalProperties
        Previous value: -trueNew value: +false
      • addedInput schema / anyOf
        Added value: +[
        +  {
        +    "required": [
        +      "from_system"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "geography_binding"
        +    ]
        +  }
        +]
      • addedInput schema / properties / bridge_vintage
        Added value: +{
        +  "type": "string"
        +}
      • addedInput schema / properties / geography_binding
        Added 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"
        +}
      • addedInput schema / properties / iso3
        Added value: +{
        +  "type": "string"
        +}
      • changedInput schema / properties / items / description
        Previous 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."
      • addedInput schema / properties / items / items / additionalProperties
        Added value: +false
      • addedInput schema / properties / items / items / properties
        Added 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"
        +  }
        +}
      • addedInput schema / properties / items / items / required
        Added value: +[
        +  "value"
        +]
      • addedInput schema / properties / limit
        Added value: +{
        +  "maximum": 100,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / min_share
        Added value: +{
        +  "maximum": 1,
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / output_format
        Added value: +{
        +  "enum": [
        +    "json_rows",
        +    "csv",
        +    "jsonl",
        +    "parquet"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / output_name
        Added value: +{
        +  "maxLength": 80,
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "from_system",
        -  "items"
        -]New value: +[
        +  "items"
        +]
    • Changedcreate_geometry_export3 fields changed
      • addedInput schema / properties / format / enum
        Added value: +[
        +  "geojson",
        +  "geojson_gzip",
        +  "zip"
        +]
      • addedInput schema / properties / loc_ids / description
        Added value: +"Selected loc_ids. The default synchronous limit is 250; larger calls return a typed operational-limit response."
      • addedInput schema / properties / output_name
        Added value: +{
        +  "maxLength": 80,
        +  "type": "string"
        +}
    • Changedestimate_conversion_job13 fields changed
      • changedInput schema / additionalProperties
        Previous value: -trueNew value: +false
      • changedInput schema / anyOf
        Previous 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"
        +    ]
        +  }
        +]
      • addedInput schema / properties / bridge_vintage
        Added value: +{
        +  "type": "string"
        +}
      • addedInput schema / properties / geography_binding
        Added 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"
        +}
      • addedInput schema / properties / iso3
        Added value: +{
        +  "type": "string"
        +}
      • changedInput schema / properties / items / description
        Previous 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."
      • addedInput schema / properties / items / items / additionalProperties
        Added value: +false
      • addedInput schema / properties / items / items / properties
        Added 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"
        +  }
        +}
      • addedInput schema / properties / items / items / required
        Added value: +[
        +  "value"
        +]
      • addedInput schema / properties / limit
        Added value: +{
        +  "maximum": 100,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / min_share
        Added value: +{
        +  "maximum": 1,
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / output_format
        Added 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"
        +}
      • addedInput schema / properties / output_name
        Added value: +{
        +  "description": "Optional safe base filename.",
        +  "maxLength": 80,
        +  "type": "string"
        +}
    • Changedestimate_geometry_package3 fields changed
      • changedInput schema / properties / format / description
        Previous 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."
      • addedInput schema / properties / format / enum
        Added value: +[
        +  "geojson",
        +  "geojson_gzip",
        +  "zip"
        +]
      • addedInput schema / properties / output_name
        Added value: +{
        +  "description": "Optional safe base filename for the export.",
        +  "maxLength": 80,
        +  "type": "string"
        +}
    • Addedhow_geometry_works
    • Addedidentify_reference_system
    • Changedresolve_reference1 field changed
      • changedInput schema / properties / from_system / description
        Previous 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."
  5. 1 tool update
    • Changedresolve_point4 fields changed
      • addedInput schema / properties / bulk_preset
        Added 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"
        +}
      • changedInput schema / properties / country_scope / description
        Previous 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."
      • changedInput schema / properties / points / description
        Previous 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."
      • changedInput schema / properties / target_admin_level / description
        Previous 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."
  6. 1 tool update
    • Addedget_tool_help
  7. 6 tool updates
    • Addedcompare_geographies
    • Changedget_geometry1 field changed
      • removedInput schema / properties / include_info
        Removed 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"
        -}
    • Changedloc_id_info2 fields changed
      • changedInput schema / properties / include_hierarchy / description
        Previous 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."
      • changedInput schema / properties / loc_ids / description
        Previous 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."
    • Changedread_geometry_catalog2 fields changed
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum named geometries to return when view='named_geometries'. Default 50."New value: +"Maximum named reference objects to return. Default 50."
      • changedInput schema / properties / view / enum
        Previous value: -[
        -  "summary",
        -  "admin_coverage",
        -  "bridges",
        -  "packages",
        -  "named_geometries",
        -  "full"
        -]New value: +[
        +  "summary",
        +  "admin_coverage",
        +  "bridges",
        +  "products",
        +  "named_reference_objects",
        +  "full"
        +]
    • Changedresolve_point2 fields changed
      • removedInput schema / properties / include_geometry
        Removed value: -{
        -  "description": "When true, include geometry in resolver internals where available. Default false to keep responses small.",
        -  "type": "boolean"
        -}
      • changedInput schema / properties / target_admin_level / description
        Previous 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."
    • Changedresolve_reference3 fields changed
      • addedInput schema / properties / as_of
        Added value: +{
        +  "description": "ISO date or year used to select a time-bounded identity assertion, especially for historical names and codes.",
        +  "type": "string"
        +}
      • changedInput schema / properties / from_system / description
        Previous 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."
      • addedInput schema / properties / items / items / properties / as_of
        Added value: +{
        +  "description": "ISO date or year used to select a time-bounded identity assertion.",
        +  "type": "string"
        +}
  8. 2 tool updates
    • Changedget_geometry1 field changed
      • addedInput schema / properties / include_info
        Added 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"
        +}
    • Addedread_geometry_catalog
  9. 1 tool update
    • Changedresolve_point5 fields changed
      • removedInput schema / properties / country
        Removed value: -{
        -  "description": "Alias for parent_loc_id/country_scope when the scope is an ISO3 country code.",
        -  "type": "string"
        -}
      • changedInput schema / properties / country_hint / description
        Previous 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."
      • changedInput schema / properties / country_scope / description
        Previous 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."
      • removedInput schema / properties / iso3
        Removed value: -{
        -  "description": "Alias for parent_loc_id/country_scope when the scope is an ISO3 country code.",
        -  "type": "string"
        -}
      • removedInput schema / properties / parent_loc_id
        Removed 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"
        -}
  10. 1 tool update
    • Changedresolve_point5 fields changed
      • addedInput schema / properties / country
        Added value: +{
        +  "description": "Alias for parent_loc_id/country_scope when the scope is an ISO3 country code.",
        +  "type": "string"
        +}
      • addedInput schema / properties / country_hint
        Added value: +{
        +  "description": "Alias for parent_loc_id/iso3. Use one country per paid/trusted bulk batch.",
        +  "type": "string"
        +}
      • addedInput schema / properties / country_scope
        Added value: +{
        +  "description": "Alias for parent_loc_id when the scope is an admin_0/country loc_id.",
        +  "type": "string"
        +}
      • addedInput schema / properties / iso3
        Added value: +{
        +  "description": "Alias for parent_loc_id/country_scope when the scope is an ISO3 country code.",
        +  "type": "string"
        +}
      • addedInput schema / properties / parent_loc_id
        Added 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"
        +}
  11. 1 tool update
    • Changedresolve_point2 fields changed
      • changedInput schema / properties / points / description
        Previous 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."
      • addedInput schema / properties / target_admin_level
        Added 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."
        +}
  12. 8 tool updates
    • Changedconvert_reference4 fields changed
      • addedInput schema / anyOf
        Added value: +[
        +  {
        +    "required": [
        +      "from_system",
        +      "value",
        +      "to_system"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "items"
        +    ]
        +  }
        +]
      • addedInput schema / properties / batch_id
        Added value: +{
        +  "description": "Optional caller-supplied batch id for tracing.",
        +  "type": "string"
        +}
      • addedInput schema / properties / items
        Added value: +{
        +  "description": "Reference conversions to run in one call. Default public cap is deployment-configurable.",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "bridge_vintage": {
        +        "description": "Optional bridge vintage for this row.",
        +        "type": "string"
        +      },
        +      "from_system": {
        +        "description": "Input reference system for this row. Defaults to top-level from_system when omitted.",
        +        "type": "string"
        +      },
        +      "id": {
        +        "anyOf": [
        +          {
        +            "type": "integer"
        +          },
        +          {
        +            "type": "string"
        +          }
        +        ],
        +        "description": "Optional caller identifier echoed in the result."
        +      },
        +      "iso3": {
        +        "description": "Optional country hint for this row.",
        +        "type": "string"
        +      },
        +      "limit": {
        +        "description": "Maximum ranked output references for this row.",
        +        "maximum": 100,
        +        "minimum": 1,
        +        "type": "integer"
        +      },
        +      "min_share": {
        +        "description": "Optional minimum overlap share threshold for this row.",
        +        "maximum": 1,
        +        "minimum": 0,
        +        "type": "number"
        +      },
        +      "row_index": {
        +        "anyOf": [
        +          {
        +            "type": "integer"
        +          },
        +          {
        +            "type": "string"
        +          }
        +        ],
        +        "description": "Optional caller row identifier echoed in the result."
        +      },
        +      "target_admin_level": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "integer"
        +          }
        +        ],
        +        "description": "Optional intermediate admin target level for this row."
        +      },
        +      "to_system": {
        +        "description": "Output reference system for this row. Defaults to top-level to_system when omitted.",
        +        "type": "string"
        +      },
        +      "value": {
        +        "description": "Identifier or name in the input system.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "value"
        +    ],
        +    "type": "object"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "from_system",
        -  "value",
        -  "to_system"
        -]
    • Addedcreate_conversion_job
    • Addedcreate_geometry_export
    • Addedestimate_conversion_job
    • Addedestimate_geometry_package
    • Addedget_job_status
    • Addedresolve_loc_id_scope
    • Changedresolve_reference4 fields changed
      • addedInput schema / anyOf
        Added value: +[
        +  {
        +    "required": [
        +      "from_system",
        +      "value"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "items"
        +    ]
        +  }
        +]
      • addedInput schema / properties / batch_id
        Added value: +{
        +  "description": "Optional caller-supplied batch id for tracing.",
        +  "type": "string"
        +}
      • addedInput schema / properties / items
        Added value: +{
        +  "description": "Reference 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"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "from_system",
        -  "value"
        -]
  13. 9 tool updates
    • Removedadmin_to_sidechain
    • Addedcheck_geometry
    • Removedget_boundary
    • Changedget_geometry4 fields changed
      • addedInput schema / anyOf
        Added value: +[
        +  {
        +    "required": [
        +      "loc_id"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "loc_ids"
        +    ]
        +  }
        +]
      • addedInput schema / properties / batch_id
        Added value: +{
        +  "description": "Optional caller-supplied batch id for tracing.",
        +  "type": "string"
        +}
      • addedInput schema / properties / loc_ids
        Added 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"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "loc_id"
        -]
    • Removedloc_id_hierarchy
    • Changedloc_id_info11 fields changed
      • addedInput schema / anyOf
        Added value: +[
        +  {
        +    "required": [
        +      "loc_id"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "loc_ids"
        +    ]
        +  }
        +]
      • addedInput schema / properties / batch_id
        Added value: +{
        +  "description": "Optional caller-supplied batch id for tracing.",
        +  "type": "string"
        +}
      • addedInput schema / properties / include_hierarchy
        Added value: +{
        +  "description": "When true, include parent and full ancestor chain. Default false.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / include_references
        Added value: +{
        +  "description": "When true, include known external or side-chain references attached to each loc_id. Default false.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / iso3
        Added value: +{
        +  "description": "Optional country hint for bridge artifacts. Defaults to the loc_id country when possible.",
        +  "type": "string"
        +}
      • addedInput schema / properties / limit_per_system
        Added value: +{
        +  "description": "Maximum overlap references to return per bridge/system. Default 10.",
        +  "maximum": 100,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / loc_ids
        Added value: +{
        +  "description": "DaedalMap loc_ids to inspect in one call. Default public cap is deployment-configurable.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / min_share
        Added value: +{
        +  "description": "Optional minimum target-area share for reverse overlap references.",
        +  "maximum": 1,
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / systems
        Added 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"
        +}
      • addedInput schema / properties / target_admin_level
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "integer"
        +    }
        +  ],
        +  "description": "Admin level for bridge-backed reverse reference lookup. Inferred when omitted."
        +}
      • removedInput schema / required
        Removed value: -[
        -  "loc_id"
        -]
    • Removedloc_id_references
    • Changedresolve_point5 fields changed
      • addedInput schema / anyOf
        Added value: +[
        +  {
        +    "required": [
        +      "lat",
        +      "lon"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "points"
        +    ]
        +  }
        +]
      • addedInput schema / properties / batch_id
        Added value: +{
        +  "description": "Optional caller-supplied batch id echoed in the result.",
        +  "type": "string"
        +}
      • addedInput schema / properties / include_geometry
        Added value: +{
        +  "description": "When true, include geometry in resolver internals where available. Default false to keep responses small.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / points
        Added 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"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "lat",
        -  "lon"
        -]
    • Removedsidechain_to_admin
  14. 7 tool updates
    • Changedadmin_to_sidechain2 fields changed
      • changedInput schema / properties / source_family / description
        Previous value: -"Side-chain geometry family to return. Use overlay_zcta for Census ZCTAs and overlay_tribal for tribal areas."New value: +"Side-chain geometry family to return. Use overlay_zcta for Census ZCTAs, overlay_tribal for tribal areas, overlay_nws_public_zone for NWS public forecast zones, and overlay_nws_fire_weather_zone for NWS fire weather zones."
      • changedInput schema / properties / source_family / enum
        Previous value: -[
        -  "overlay_zcta",
        -  "overlay_tribal"
        -]New value: +[
        +  "overlay_zcta",
        +  "overlay_tribal",
        +  "overlay_nws_public_zone",
        +  "overlay_nws_fire_weather_zone"
        +]
    • Addedconvert_reference
    • Addedget_geometry
    • Addedlist_reference_systems
    • Addedloc_id_references
    • Addedresolve_reference
    • Changedsidechain_to_admin3 fields changed
      • changedInput schema / properties / source_family / description
        Previous value: -"Side-chain geometry family. Use overlay_zcta for Census ZCTAs and overlay_tribal for tribal areas."New value: +"Side-chain geometry family. Use overlay_zcta for Census ZCTAs, overlay_tribal for tribal areas, overlay_nws_public_zone for NWS public forecast zones, and overlay_nws_fire_weather_zone for NWS fire weather zones."
      • changedInput schema / properties / source_family / enum
        Previous value: -[
        -  "overlay_zcta",
        -  "overlay_tribal"
        -]New value: +[
        +  "overlay_zcta",
        +  "overlay_tribal",
        +  "overlay_nws_public_zone",
        +  "overlay_nws_fire_weather_zone"
        +]
      • changedInput schema / properties / source_loc_id / description
        Previous value: -"Side-chain loc_id. For ZCTAs, either canonical form such as 'USA-Z-10001' or a five-digit ZIP/ZCTA like '10001' is accepted."New value: +"Side-chain loc_id. For ZCTAs, either canonical form such as 'USA-Z-10001' or a five-digit ZIP/ZCTA like '10001' is accepted. For NWS public forecast zones use canonical form such as 'USA-NWSZ-TXZ001'."

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    An MCP server for querying the FDSN Web Service Event APIs of multiple seismological datacenters and retrieving earthquake information as JSON.
    6
    1
    AGPL 3.0
  • A
    license
    A
    quality
    C
    maintenance
    MCP server wrapping the USGS Earthquake Hazards API, enabling AI assistants to search the global earthquake catalog, look up event details, count quakes, find 'Did You Feel It' reports, and read realtime feeds.
    5
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that makes live Earth data usable by AI agents. Its initial data sources cover natural hazards: earthquakes from the USGS FDSN event catalog and volcanic activity from the Smithsonian Global Volcanism Program.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A powerful MCP server that connects AI assistants to authoritative natural hazard data sources, enabling monitoring of earthquakes, tsunamis, volcanoes, and solar events with configurable alerts and webhooks.
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.9/5.0
Disambiguation4/5

Most tools have clearly distinct scopes with detailed 'Use this' guidance, but a few pairs like get_disaster_link_chain and get_disaster_links_for_event, or query_dataset versus the specialized get_* event tools, could cause momentary confusion. Overall, descriptions mitigate overlap well.

Naming Consistency4/5

The majority follow a consistent verb_noun pattern (check_, compare_, convert_, create_, estimate_, get_, list_, resolve_). Minor exceptions like loc_id_info and query_dataset are acceptable but break the pattern slightly.

Tool Count3/5

28 tools exceed the preferred range, but the broad domain spanning disasters, geospatial geometry, reference conversion, and export jobs justifies many of them. Still, the count feels heavy and might overwhelm agents.

Completeness5/5

The tool surface is remarkably comprehensive: discovery (catalog, pack, geometry catalog), resolution (point, reference, scope), geometry (check, get, compare), conversion (quote, create, status), and disaster events for multiple types. No critical dead ends for the stated domain.