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 by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
96.9% over 77 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
xyver/daedal-map
GitHub Stars
2
Server Listing
daedal-map

TDQS

A3.9/5.0

Scored across 14 tools

Disambiguation4/5

Most tools target clearly distinct stages: catalog/pack metadata, data rows, events, shapes, point resolution, identifier conversion, and comparison. However, several adjacent geospatial tools such as resolve_point vs resolve_deep_point, get_geography vs get_shape, and get_catalog vs get_pack require careful workflow sequencing and could be misselected without reading descriptions closely.

Naming Consistency5/5

Tool names consistently use snake_case with a verb-first pattern: get_*, resolve_*, identify_*, compare_*, and convert_*. The convention is predictable throughout the set.

Tool Count5/5

The server has 14 tools, which fits the recommended 3-15 range for a complex geospatial/disaster data API. Each tool maps to a specific workflow stage, and none appears redundant.

Completeness4/5

The surface covers discovery, metadata inspection, data retrieval, event drill-down, geography lookup, point resolution, conversion, comparison, and shape access for a read-only data service. Minor gaps remain around direct spatial overlay/intersection and broader name-based search, but the core geospatial data lifecycle is well represented.

Available Tools

14 tools
compare_geographiesCompare Geographic IdentitiesA
Read-onlyIdempotent
Inspect

Compare two known loc_ids using selected reference-graph identity and direct relationship evidence. Verified Admin ancestry can prove containment; a typed graph edge can prove only the relation it declares. An explicit negative edge returns no_overlap; a missing edge returns unknown. This tool never reads polygons or computes shape intersections. Use an external identifier bridge before this call when the input is not a loc_id. No payment required.

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.

Output Schema

NameRequiredDescription
okNo
errorNo
reasonNo
resultsNo
batch_idNo
guidanceNo
warningsNo
next_stepNo
item_countNo
request_idNo
failed_countNo
clarificationNo
meter_receiptNo
compared_countNo
graph_evidenceNo
geometry_loadedNo
spatial_relationNo
temporal_relationNo
relationship_basisNo
settlement_receiptNo

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, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds genuine behavioral detail beyond that: an explicit negative edge yields no_overlap while a missing edge yields unknown, Admin ancestry can prove containment but a typed edge proves only its declared relation, and it never reads polygons. This meaningfully improves result interpretation.

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 the proof model, then covers edge outcomes, scope limits, and prerequisites in a compact sequence. It is dense but every sentence carries distinct information; minor tightening is possible.

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 an output schema and complete annotation coverage, so return values and safety need not be restated. The description supplies the interpretive rules (no_overlap vs unknown) and the identifier-bridge prerequisite, leaving little an agent needs to infer before calling it.

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 all nine parameters are already documented in the schema (including as_of overrides and include_successors default). The description adds no additional per-parameter syntax or format detail beyond that, so the baseline 3 is appropriate.

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?

States a specific verb (Compare) and resource (known loc_ids / geographic identities) with a precise scope: reference-graph identity plus direct relationship evidence. It also carves out what it is not – a polygon/geometry-intersection tool – which implicitly separates it from get_shape and get_geography. It stops short of naming a sibling by name, so it is clear but not fully differentiated.

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?

Gives a concrete prerequisite: 'Use an external identifier bridge before this call when the input is not a loc_id.' This tells the agent when the tool is applicable and what to do first. It does not, however, explicitly name an alternative tool or state a when-not condition for already-valid loc_ids.

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-onlyIdempotent
Inspect

Convert within one declared scope per call: iso3 is required and names one ISO3 country, GLOBAL, or MARINE. A batch uses one from_system, to_system, and crosswalk_id, with at most 25000 requested result rows. Convert X -> loc_id -> Y; omit to_system to enter the loc_id universe. For admin or city names use from_system admin_boundary with a country_hint inside the declared country. A published direct crosswalk uses one selected artifact; if the system pair has multiple artifacts, supply crosswalk_id from the typed ambiguity error. An exact miss ends on that artifact. Use get_geography when family or scope coverage is unknown. The tools/list access metadata states authored free, account, and paid item allowances; active operator policy may waive payment.

NameRequiredDescriptionDefault
iso3NoRequired scope pack for the entire call: one ISO3 country, GLOBAL, or MARINE. Every item must stay within this scope.
as_ofNoISO date or year used for time-bounded identities.
itemsNoReference conversions within one scope and one source/target/crosswalk route. Split mixed routes. Maximum requested item count times per-item limit is 25000.
limitNoMaximum ranked output references to return. Default 10.
valueNoIdentifier or name in the input system, for example 'Springfield, Illinois' with admin_boundary.
batch_idNoOptional caller-supplied batch id for tracing.
min_shareNoOptional minimum overlap share threshold.
to_systemNoOptional output reference system. Defaults to DaedalMap loc_id; provide zcta, nws_fire, overlay_nws_public_zone, overlay_tribal, admin_local, or another catalog system for any-to-any conversion.daedalmap.loc_id
request_idNoOptional caller-supplied request id for tracing.
from_systemNoInput reference system, such as admin_boundary (admin and city names; admin_text and place_name are accepted aliases), zip, overlay_zcta, nws_fire, tribal, or loc_id.
country_hintNoOptional country hint for admin/name resolution (USA), or a subdivision to search within (USA-OR). Names may also carry their parent: 'Washington County, Oregon'. Ambiguous names return candidates instead of a match.
crosswalk_idNoExact published crosswalk ID when the source/target system pair has multiple artifacts. A route ambiguity error lists valid IDs.
admin_level_hintNoOptional admin-level hint for admin/name resolution.
target_admin_levelNoAdmin level used as the intermediate crosswalk target. Default admin_2.
relationship_vintageNoOptional source relationship vintage to require.

Output Schema

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

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive, so the safety profile is covered. The description adds real behavioral context: the 25000-row cap, that one batch uses a single from/to/crosswalk route, that an exact miss ends on that artifact, that ambiguity surfaces a typed error listing valid crosswalk_ids, and that authored allowances/payment policy may apply. It stops short of describing result ranking or truncation behavior, keeping it at a strong 4 rather than 5.

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 scope constraint and required fields are front-loaded, and nearly every sentence carries routing or constraint information. It is dense and slightly jargon-heavy (loc_id universe, typed ambiguity error), which costs a point against a perfectly economical definition, but little is wasted.

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 15-parameter, batch-capable conversion tool with an output schema already documenting returns, the description covers scope, batching, routing, error behavior, and access policy well. The only soft spot is the external reference to 'tools/list access metadata' for allowances, which assumes knowledge the agent may not have in-context.

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 still adds meaning beyond the schema by explaining the call-level constraints tying parameters together (one from_system, one to_system, one crosswalk_id per batch; per-item limit multiplied by item count capped at 25000) and by clarifying crosswalk_id's origin in the ambiguity error.

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

Purpose5/5

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

States a specific verb (convert) and resource (geographic references) along with the scope unit (one ISO3/GLOBAL/MARINE per call) and the route (from_system -> loc_id -> to_system). It clearly differentiates itself from siblings by naming get_geography for family/scope discovery and by distinguishing itself from lookup tools via the crosswalk/batch framing.

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 rules: omit to_system to enter the loc_id universe, use from_system admin_boundary with country_hint for admin or city names, and use get_geography when family or scope coverage is unknown. It also names the alternative tool and the condition that selects it, which is exactly the when/when-not guidance missing from most definitions.

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

get_catalogList Published Packs or GeographiesA
Read-onlyIdempotent
Inspect

Choose data or geometry to list published pack IDs or family and scope IDs. The response includes a complete catalog download URL. Use get_pack for data or get_geography for geometry. 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.

NameRequiredDescriptionDefault
catalogYesRequired directory selector.

Output Schema

NameRequiredDescription
errorNo
packsNo
detailNo
reasonNo
scopesNo
catalogNo
familiesNo
guidanceNo
warningsNo
next_stepNo
pack_countNo
provenanceNo
request_idNo
download_urlNo
generated_atNo
clarificationNo
result_statusNo
tool_familiesNo
excluded_countNo
resolved_queryNo
catalog_versionNo
uncertain_countNo
uncertain_packsNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description's only behavioral addition is that the response carries a catalog download URL, which is already implied by the output schema; the long paragraph about worldwide coverage and per-country releases is scope marketing rather than behavioral disclosure.

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

Conciseness2/5

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

The actionable content (what it lists, the download URL, the get_pack/get_geography routing) is front-loaded, but it is then buried under a lengthy 'Current catalog' paragraph listing 252 entities and eight countries that does nothing for tool selection or invocation.

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?

With annotations covering safety and an output schema covering returns, the description only needs to explain the selector and routing, which it mostly does. However, the undefined 'scope IDs' terminology and the routing to a non-sibling tool leave small gaps for an agent deciding between catalog and pack calls.

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% and the enum values are self-explanatory, so the baseline is 3. The description goes beyond this by mapping each enum value to a distinct return shape ('data' yields pack IDs, 'geometry' yields family and scope IDs), which genuinely adds meaning over 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?

It names a specific verb ('list') and resource ('published pack IDs or family and scope IDs') and ties the output to the required catalog selector. It is distinguishable from the generic get_data/get_pack siblings, though the phrase 'family and scope IDs' is jargon that is never defined.

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?

It gives explicit routing: 'Use get_pack for data or get_geography for geometry,' which tells the agent when to pick this tool over an alternative. The weakness is that get_geography is not among the listed siblings, so the routing target is ambiguous for the agent.

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

get_dataGet DataA
Read-onlyIdempotent
Inspect

Retrieve rows from one selected published data pack using exact metrics, loc_id-based region filters, time/metric filters, sorting, and a row limit. Disaster event rows include stable event_id values for get_event drill-down. A parent administrative loc_id selects matching descendant rows at the pack's published grain. Call get_pack first; geometry families use their focused next-step tools.

NameRequiredDescriptionDefault
sortNoSort by a sortable field from get_pack; direction defaults to asc.
limitNoMaximum number of rows to return for the requested source or pack.
outputNoOptional response controls. v1 supports rows only.
filtersYes
metricsYesExact metric ids from get_pack. Use event_count for aggregate counts only when get_pack publishes it.
pack_idYesPack identifier from get_catalog. Newly catalog-admitted packs require no MCP schema change.
request_idNoOptional caller-supplied request id for tracing and idempotency.

Output Schema

NameRequiredDescription
rowsNo
sortNo
errorNo
limitNo
reasonNo
pack_idNo
guidanceNo
warningsNo
next_stepNo
row_countNo
source_idNo
truncatedNo
provenanceNo
query_modeNo
request_idNo
capability_idNo
clarificationNo
filters_appliedNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/idempotentHint/non-destructive/closed-world, so the safety profile is covered. The description adds real behavioral context beyond that: parent administrative loc_ids expand to descendant rows at the pack's published grain, and disaster event rows carry stable event_id values for drill-down. No permission, rate-limit, or failure behavior is described, but that is a minor gap.

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 front-loaded sentences with no filler; the core action and its inputs come first, then drill-down, hierarchy, and prerequisite notes. The final clause about 'geometry families' is slightly cryptic but not wasteful.

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 7-parameter tool with nested filter/sort objects and an output schema, the description covers the essential query model and prerequisites. Return-format details are correctly delegated to the output schema; only minor gaps remain around limit defaults and the output/request_id controls.

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 86%, so the baseline is 3; the description earns above that by explaining the hierarchy semantics of loc_id filters (a parent selects matching descendants) and clarifying that metrics must be exact published ids. It does not say much about sort, limit, output, or request_id, but those are already 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?

States a specific verb and resource ('Retrieve rows from one selected published data pack') and enumerates the selection mechanisms (metrics, loc_id region filters, time/metric filters, sorting, row limit). The prerequisite on get_pack and the note about geometry families implicitly separate it from its catalog/pack siblings.

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?

'Call get_pack first' gives an explicit prerequisite, and 'geometry families use their focused next-step tools' routes a class of users away from this tool. It stops short of naming those alternative tools or stating when-not conditions for non-geometry cases, so it is clear context rather than full when/when-not guidance.

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

get_eventGet EventA
Read-onlyIdempotent
Inspect

Retrieve one exact disaster event and explicitly requested relationships, affected places, native observations, or geometry. Use get_data to obtain the stable event_id first.

NameRequiredDescriptionDefault
limitNoPer-section ceiling for relationships, affected places, observations, or geometry frames.
includeNoOptional companion layers. Omit for the lightweight event summary. Geometry is never returned implicitly.
pack_idYesRequired disaster pack_id that returned this event_id from get_data. The tool never searches other packs.
event_idYesExact stable event_id returned by a disaster-pack get_data row.
source_idYesRequired source_id from the same get_data result. Must identify one published event source in pack_id.
request_idNoOptional caller-supplied request id for tracing.
geometry_modeNocurrent returns the representative/current shape; timeline returns bounded progression frames where supported.current
relationship_depthNoBounded cross-hazard traversal depth when relationships is included.

Output Schema

NameRequiredDescription
errorNo
eventNo
reasonNo
pack_idNo
event_idNo
geometryNo
guidanceNo
includedNo
warningsNo
availableNo
next_stepNo
source_idNo
event_typeNo
next_stepsNo
provenanceNo
request_idNo
observationsNo
schema_classNo
clarificationNo
relationshipsNo
affected_placesNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare this a safe, idempotent, closed-world read, so the safety burden is lifted. The description adds genuinely useful behavioral context on top: retrieval is limited to a single exact event and only the layers 'explicitly requested' are attached, reinforcing the opt-in nature of the include set.

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, zero filler, and the core action is front-loaded before the prerequisite. Every clause carries information the agent needs.

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

Completeness4/5

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

An output schema exists, so return-value explanation is unnecessary, and annotations cover the safety profile. The description supplies the critical precondition (a stable event_id from get_data) and the opt-in layer model, leaving little an agent would need to know before calling.

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 parameters like include, geometry_mode, relationship_depth and limit are already fully documented with defaults and bounds. The description restates the four include values but adds no format or interaction detail beyond the schema, making the baseline 3 correct.

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?

Specific verb (Retrieve) plus a narrowly scoped resource ('one exact disaster event'), and it enumerates the optional companion layers. It also distinguishes itself from the sibling it depends on by naming get_data as the source of the event_id, so an agent can tell the two apart without opening either schema.

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

Usage Guidelines4/5

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

'Use get_data to obtain the stable event_id first' gives an explicit prerequisite and routes the agent to the correct sibling for the lookup step. It stops short of stating when NOT to use this tool (e.g. bulk/multi-event retrieval), so it is clear context rather than full when/when-not guidance.

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

get_geographyDiscover or Read Geography CoverageB
Read-onlyIdempotent
Inspect

Inspect one published geometry family across scopes or one scope across families. Returns coverage and known editions from catalog metadata only. Optional year selects the latest admitted edition no later than that year when the selected catalog has an edition index; an unavailable index is reported explicitly.

NameRequiredDescriptionDefault
pageNo
yearNo
scope_idNo
family_idNo
page_sizeNo
include_geometryNo

Output Schema

NameRequiredDescription
errorNo
reasonNo
catalogNo
coverageNo
guidanceNo
scope_idNo
warningsNo
family_idNo
next_stepNo
provenanceNo
request_idNo
admin_spineNo
clarificationNo
requested_yearNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds genuine behavioral context beyond that: results come 'from catalog metadata only', and an unavailable edition index is 'reported explicitly' rather than silently ignored. It does not explain pagination behavior or how include_geometry interacts with the 'metadata only' claim, leaving a real ambiguity for a tool that exposes a geometry flag.

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, each carrying distinct information: what is inspected, what is returned and its source, and how year filters. Front-loaded with the core action. Slightly dense in domain shorthand but no filler sentences.

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?

An output schema exists, so return structure need not be described, and the description covers the year-selection edge case. However, with 6 parameters at 0% schema coverage and an unexplained include_geometry flag that tensions with 'catalog metadata only', the definition is not quite sufficient for correct 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?

Schema description coverage is 0% across 6 parameters, so the description must compensate and only partly does. It clarifies the year parameter's selection rule ('latest admitted edition no later than that year') well, but page, page_size, include_geometry, and the family_id/scope_id pairing are left entirely to bare type constraints.

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?

States a concrete verb ('Inspect') and a specific resource ('one published geometry family across scopes or one scope across families'), and the 'one ... vs across' phrasing implicitly contrasts with the bulk sibling compare_geographies. It never names a sibling explicitly, and the jargon ('geometry family', 'scope', 'admitted edition') assumes domain familiarity, so an agent must infer the boundary rather than read it.

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 statement of when to prefer this over get_catalog, get_shape, identify_dataset_geography, or compare_geographies, and no prerequisites or exclusions. The only usage signal is implicit: it inspects catalog-level coverage, not geometry payloads. An agent has to derive the routing decision from the description's vocabulary alone.

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

get_loc_id_infoInspect Direct loc_id ConnectionsA
Read-onlyIdempotent
Inspect

Look up one known loc_id or a small batch in the selected reference graph. Return its identity and directly recorded loc_id connections, with family, direction, and relationship evidence. Each ID returns at most 50 connections and an explicit has_more flag. This tool does not expand descendants, infer containment, read shapes, search catalogs, or consult external adapters. No payment required.

NameRequiredDescriptionDefault
loc_idNoDaedalMap loc_id, e.g. 'USA-CA'.
loc_idsNoUp to 10 known loc_ids, including a resolve_point stack.
batch_idNoOptional caller-supplied batch id for tracing.
request_idNoOptional caller-supplied request id for tracing.

Output Schema

NameRequiredDescription
okNo
iso3No
nameNo
errorNo
familyNo
loc_idNo
reasonNo
resultsNo
batch_idNo
guidanceNo
has_moreNo
warningsNo
next_stepNo
request_idNo
admin_levelNo
connectionsNo
found_countNo
loc_id_countNo
clarificationNo
meter_receiptNo
missing_countNo
connection_countNo
connection_limitNo
requested_loc_idNo
settlement_receiptNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety burden is covered. The description still adds real behavioral context beyond them: a per-ID cap of 50 connections with an explicit has_more flag (pagination semantics), the silent-exclusion behaviors, and the note that no payment is required, which signals a possible paid path elsewhere.

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 operation and the return shape, then the scope exclusions, then the payment note. It is dense and nearly every clause earns its place; the exclusion list is somewhat long but directly serves disambiguation, which justifies the length.

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?

An output schema exists, so return values need not be described, and annotations cover the safety profile. The description supplies the remaining missing pieces an agent needs to call this correctly: known-ID-only precondition, batch size, truncation limit, has_more signaling, and the explicit boundary against adjacent tools.

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 loc_id, loc_ids, batch_id and request_id are already documented, and the baseline is 3. The description only echoes the single-ID-or-batch shape; it adds no format, resolution or tracing semantics beyond what the schema states, and notably does not explain the 'resolve_point stack' behavior described in loc_ids.

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

Purpose5/5

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

States a specific verb and resource (look up a loc_id or small batch in the selected reference graph) and defines the exact return payload: identity plus directly recorded connections with family, direction and evidence. The explicit negative scope ('does not expand descendants, infer containment, read shapes, search catalogs') cleanly separates it from siblings like get_geography, get_shape, and get_catalog.

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 establishes the usage condition well: it operates on known IDs only, supports a single ID or a batch, and explicitly refuses expansion, inference, shape reads, catalog search and adapter calls. It stops short of naming the sibling tools an agent should reach for instead when it does need shapes or catalog search, so routing is implied rather than explicit.

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

get_packInspect One Data PackA
Read-onlyIdempotent
Inspect

Inspect one exact data pack ID for its metrics, time coverage, and query metadata before get_data.

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

Output Schema

NameRequiredDescription
errorNo
detailNo
reasonNo
catalogNo
pack_idNo
sourcesNo
guidanceNo
warningsNo
full_callNo
next_stepNo
provenanceNo
request_idNo
download_urlNo
clarificationNo
download_callNo
material_policyNo

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description's additional value is the pre-flight framing (cheap inspection ahead of get_data) and a summary of returned content. It does not add anything about unknown-ID behavior or lookup cost, so it is solid but not rich.

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 sentence that front-loads the verb and resource and ends with the routing cue. Every clause carries information; nothing is padded or redundant.

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?

With an output schema present, the description need not enumerate return fields, and annotations plus a 100%-covered single parameter handle the rest. The only thin spot is behavior when an unknown or stale pack ID is passed, which the description never touches.

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% and the single pack_id parameter is well documented in the schema itself (origin in get_catalog, note about newly admitted packs). The description only adds the emphasis that the ID must be exact, which is marginal but consistent with the baseline for fully covered schemas.

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

Purpose5/5

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

States a specific verb (inspect), a specific resource (one exact data pack ID), and what the inspection yields (metrics, time coverage, query metadata). This cleanly separates it from get_catalog (enumeration) and get_data (retrieval) without the agent needing to open any schema.

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

Usage Guidelines4/5

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

The phrase 'before get_data' gives an explicit sequencing rule for when this tool belongs in a workflow, and the schema's 'from get_catalog' note completes the chain. There are no stated exclusions or failure conditions, so it falls just short of a full when/when-not statement.

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

get_shapeRetrieve Shapes for Known loc_idsA
Read-onlyIdempotent
Inspect

Shape lookup for exact existing loc_ids only. The default returns shape availability, centroid, and bounding box; include_polygon=true adds GeoJSON coordinates. Obtain any descendant IDs before this call. Historical geometry is returned first and successors are never substituted automatically. Year selection is not yet supported.

NameRequiredDescriptionDefault
loc_idNoDaedalMap loc_id, such as USA-CA-037, USA-Z-00601, USA-NWSFZ-AKZ317, EEZ-USA, or IHO1953-240001002.
loc_idsNoExact DaedalMap 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.

Output Schema

NameRequiredDescription
okNo
errorNo
itemsNo
reasonNo
missingNo
batch_idNo
guidanceNo
warningsNo
availableNo
next_stepNo
requestedNo
selectionNo
request_idNo
clarificationNo
meter_receiptNo
include_polygonNo
settlement_receiptNo

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the annotations by describing the default return set (availability, centroid, bounding box), the include_polygon effect, the fallback rule that 'historical geometry is returned first and successors are never substituted automatically,' and an unsupported feature. Annotations already cover the safe-read profile; this adds genuinely non-obvious 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?

Five tight sentences with the scoping constraint and default-return behavior front-loaded. Every sentence carries information, though the density is high enough that it reads as a spec dump rather than a prioritized summary.

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?

With an output schema present, return values need no explanation, and the description covers the prerequisite, geometry-substitution rule, and unsupported year selection. The main residual gap is that the cap/rate behavior ('deployment-configurable') is left to the schema rather than summarized.

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 both loc_id/loc_ids and include_polygon are already documented in the schema. The description restates include_polygon's effect ('adds GeoJSON coordinates') but adds no format or syntax detail beyond what the schema provides, making the baseline 3 correct.

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?

States a specific verb+resource ('Shape lookup') scoped to 'exact existing loc_ids only', which implicitly distinguishes it from point-resolver siblings. However, it never names a sibling such as get_geography, so the agent must infer the boundary from the phrase 'exact existing loc_ids' rather than being told explicitly.

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?

Clear context: prerequisite 'Obtain any descendant IDs before this call', restriction to existing IDs, and the explicit limitation 'Year selection is not yet supported.' It stops short of naming the alternative tool for obtaining IDs, so routing is only implied.

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-onlyIdempotent
Inspect

Describe one tool visible on this facade, including its exact contract, or return a bounded workflow overview for one supported topic.

NameRequiredDescriptionDefault
topicNoWorkflow overview. Do not combine with tool_name.
questionNoOptional question used only with a topic overview.
tool_nameNoExact tool name from tools/list. Do not combine with topic.

Output Schema

NameRequiredDescription
okNo
errorNo
titleNo
accessNo
reasonNo
purposeNo
examplesNo
guidanceNo
warningsNo
next_stepNo
tool_nameNo
provenanceNo
request_idNo
input_schemaNo
clarificationNo
recommended_next_callsNo
important_output_fieldsNo

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, covering the safety profile. The description adds a bit of behavioral context by mentioning 'exact contract' and 'bounded workflow overview', but it does not disclose potential error conditions or response formats. This is acceptable given the annotations, so a 3 is appropriate.

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 a single, well-structured sentence that efficiently presents both modes without redundancy. Every phrase adds value, and it is front-loaded with the primary action.

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 is adequate but relies heavily on the schema for constraints (e.g., oneOf logic, enum values, mutual exclusivity). It does not mention optional parameters or edge cases, but given the rich schema and annotations, it covers the essential purpose. A 3 reflects that it is sufficient but not exhaustive.

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% and each parameter already has a thorough description (e.g., 'Do not combine with tool_name'). The tool description adds no extra parameter detail beyond the schema, so the baseline of 3 applies.

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 purpose: describe a tool (with its exact contract) or return a workflow overview for a supported topic. It uses specific verbs and resources, and the two modes are distinct. This differentiates it from sibling data-fetching tools like get_data and get_catalog.

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 when to use each mode by stating the two options, and the schema enforces mutual exclusivity. However, it does not explicitly name alternatives or state when NOT to use this tool (e.g., for actual data retrieval). Still, the purpose is clear enough for an agent to infer correct usage.

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

identify_dataset_geographyChoose Geography Columns From a DatasetA
Read-onlyIdempotent
Inspect

Fast structural column selector: pass bounded named columns to find recognized geography headers or latitude/longitude pairs. It does not infer a country, level, or identifier system, open country indexes, or validate values. If more than one column is plausible, select one; then call identify_reference_system with the selected identifier column and one country_scope. No payment required.

NameRequiredDescriptionDefault
columnsYesStructurally filtered columns with deterministic representative scalar values. Do not pre-label their geographic system.
request_idNo
country_scopeNoOptional caller-declared ISO3 country, passed through to the selected column.
dataset_contextNo

Output Schema

NameRequiredDescription
okNo
errorNo
limitNo
reasonNo
statusNo
batch_idNo
guidanceNo
warningsNo
next_stepNo
candidatesNo
request_idNo
column_countNo
clarificationNo
meter_receiptNo
review_requiredNo
identifier_countNo
coordinate_bindingNo
settlement_receiptNo
recommended_bindingNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, but the description still adds non-obvious behavior: no validation of values, no opening of country indexes, deterministic bounded input, and 'No payment required'. That is real added context beyond the structured fields, though return/pagination behavior is left to the output schema.

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 tight sentences with the core purpose ('Fast structural column selector') front-loaded, followed by exclusions, then workflow routing. Dense but every sentence carries information; minor packing of several distinct constraints into one sentence costs it a point.

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, output-schema-backed selector, the description covers purpose, boundary conditions, and the follow-up call, so an agent can invoke it correctly without guessing. The remaining gap is that request_id and dataset_context are never explained, and with only 50% schema description coverage those params are undocumented anywhere.

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 50%, and the schema already documents the columns array shape (maxItems, per-value limits) and country_scope as an ISO3 pass-through. The description adds that columns must be 'bounded named columns' and that country_scope is forwarded to the selected column, but does not clarify request_id or dataset_context. 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?

States a specific verb and resource ('structural column selector' that finds recognized geography headers or latitude/longitude pairs) and immediately bounds the scope by naming what it does NOT do ('does not infer a country, level, or identifier system'). This lets an agent distinguish it from identify_reference_system, which the description positions as the next step.

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?

Explicit when-to-use ('pass bounded named columns'), explicit when-not ('does not infer a country, level, or identifier system... or validate values'), and explicit routing to the alternative ('then call identify_reference_system with the selected identifier column and one country_scope'). Even the tie-break case is covered ('If more than one column is plausible, select one').

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

identify_reference_systemIdentify One Identifier Column's Reference SystemA
Read-onlyIdempotent
Inspect

Identify one selected identifier column within one required ISO3 country, GLOBAL, or MARINE scope. Pass bounded strings preserving leading zeros. It checks maintained identifier evidence, not dataset columns or polygons. Ambiguous systems stay unselected until expected.system is supplied. Use identify_dataset_geography first when the column is unknown. No payment required.

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_scopeYesRequired single ISO3 country, GLOBAL, or MARINE scope. Missing scope fails before identifier reads.
dataset_contextNoBounded, non-row dataset clues used to rank plausible interpretations without replacing exact identifier verification.
validation_scopeNoDescribes whether the bounded input is a sample or, only when it fits the identification cap, the complete distinct-key set. This tool validates every supplied identifier; create_conversion_job validates every row in the full dataset.

Output Schema

NameRequiredDescription
okNo
errorNo
limitNo
reasonNo
statusNo
batch_idNo
guidanceNo
warningsNo
next_stepNo
candidatesNo
request_idNo
column_countNo
clarificationNo
meter_receiptNo
review_requiredNo
identifier_countNo
coordinate_bindingNo
settlement_receiptNo
recommended_bindingNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world. The description adds real context beyond that: it checks 'maintained identifier evidence, not dataset columns or polygons,' explains the ambiguous-unselected behavior, and notes 'No payment required' (a cost trait). It stops short of richer output/timing detail, but the additions are substantive.

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?

Five sentences, front-loaded with purpose and scope before routing and behavior. Each sentence carries information, though the leading-zero instruction mildly duplicates the schema.

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?

With an output schema present, return values need not be explained, and the annotations cover the safety profile. The description covers scope, routing, ambiguity handling, and cost, leaving only minor gaps around pagination/timing that are not essential for correct invocation.

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 documents nearly all parameters (including the leading-zero string requirement and expected.* fields). The description's 'Pass bounded strings preserving leading zeros' largely restates the schema, adding little beyond the baseline when structured data does the heavy lifting.

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

Purpose5/5

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

States a specific verb (identify) and resource (one identifier column's reference system) with explicit scope constraints (one ISO3 country, GLOBAL, or MARINE). It also distinguishes itself from siblings by naming identify_dataset_geography, so an agent can route without opening either schema.

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

Usage Guidelines5/5

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

Gives an explicit prerequisite/alternative: 'Use identify_dataset_geography first when the column is unknown,' plus a conditional behavior ('Ambiguous systems stay unselected until expected.system is supplied') that tells the agent exactly what to do on an inconclusive result. Nothing is left to inference.

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

resolve_deep_pointResolve Point(s) (Deep)A
Read-onlyIdempotent
Inspect

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

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

Output Schema

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

TDQS

A4.2/5.0
Behavior4/5

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

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

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

Conciseness3/5

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

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

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

Completeness4/5

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

An output schema exists, so return values need not be explained, and annotations cover the safety profile. The description supplies the upstream dependency, family default, and bulk contract, leaving little an agent needs that is missing.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema: the shallow_loc_id must be one shared value returned by resolve_point, family defaults to administrative, and the points array must already fall within the shallow scope. Only target_admin_level is left to the schema.

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

Purpose5/5

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

States a specific action (second-pass containment resolution) and its required inputs, and explicitly distinguishes itself from the sibling resolve_point by positioning as the follow-up pass. An agent can tell what this does and how it differs from the shallow pass without opening either schema.

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

Usage Guidelines4/5

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

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

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

resolve_pointResolve Point(s) in One ScopeA
Read-onlyIdempotent
Inspect

Resolve WGS84 coordinates in exactly one selected scope and family. GLOBAL administrative finds Admin0; an ISO3 administrative scope finds its shallow country bank. MARINE requires one specific jurisdiction family (for example exclusive_economic_zone or high_seas), or water_body with water_kind=named or zone. The broad marine_jurisdiction category has no point route. No call crosses scopes or opens another family's bank. Discover families with get_catalog(catalog='geometry'). 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.

NameRequiredDescriptionDefault
latNoLatitude in WGS84 decimal degrees.
lonNoLongitude in WGS84 decimal degrees.
familyNoOne exact family within the selected scope.
pointsNoBounded WGS84 point array. Use top-level lat/lon instead for one point.
batch_idNoOptional caller-supplied batch id echoed for point arrays.
scope_idNoGLOBAL, MARINE, or one published ISO3 country. No automatic fallback into another scope.
request_idNoOptional caller-supplied request id for tracing.
water_kindNoRequired only for MARINE water_body: named seas or water zones.

Output Schema

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

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the description is free to add routing behavior, which it does well: 'No call crosses scopes or opens another family's bank' and the marine_jurisdiction exclusion are non-obvious constraints an agent could not infer from schema. It does not describe batching behavior or result shape, but the output schema covers returns.

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 routing rules are front-loaded and dense with value, but the trailing catalog paragraph ('252 geographic entities... Australia, Brazil, Canada...') is long, reads as release-note copy, and could be condensed to one sentence about deeper tiers being available in select countries.

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?

With a full schema, rich annotations, and an output schema, the only missing piece is coverage depth, and the description addresses it via the catalog paragraph. An agent has enough to route a point correctly across GLOBAL/ISO3/MARINE; the only gap is not naming resolve_deep_point for deeper queries.

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 baseline is 3; the description goes further by explaining the conditional relationship between scope_id, family, and water_kind (e.g., water_body requires named or zone), which is semantics the enum alone does not convey. The lat/lon vs points alternation is left to the schema's oneOf.

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?

States a specific verb and resource: 'Resolve WGS84 coordinates in exactly one selected scope and family,' and enumerates the scope families it handles. An agent can tell it apart from get_geography and compare_geographies, though the sibling resolve_deep_point (the obvious alternative for deeper tiers) is only implicitly gestured at via 'reaching up to Admin 2.'

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?

Gives explicit per-scope conditions: GLOBAL finds Admin0, ISO3 finds the shallow country bank, MARINE requires one jurisdiction family or water_body with water_kind, and marine_jurisdiction has no point route. It also points to get_catalog for family discovery. It stops short of naming resolve_deep_point as the tool to use when the shallow bank is insufficient.

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.

  1. 1 tool update
    • Changedget_geography5 fields changed
      • addedInput schema / anyOf
        Added value: +[
        +  {
        +    "required": [
        +      "family_id"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "scope_id"
        +    ]
        +  }
        +]
      • removedInput schema / oneOf
        Removed value: -[
        -  {
        -    "required": [
        -      "family_id"
        -    ]
        -  },
        -  {
        -    "required": [
        -      "scope_id"
        -    ]
        -  }
        -]
      • addedInput schema / properties / include_geometry
        Added value: +{
        +  "type": "boolean"
        +}
      • addedInput schema / properties / page
        Added value: +{
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / page_size
        Added value: +{
        +  "maximum": 10,
        +  "minimum": 1,
        +  "type": "integer"
        +}
  2. 1 tool update
    • Changedresolve_point2 fields changed
      • changedInput schema / properties / family / description
        Previous value: -"One family within the selected scope."New value: +"One exact family within the selected scope."
      • changedInput schema / properties / family / enum
        Previous value: -[
        -  "administrative",
        -  "marine_jurisdiction",
        -  "water_body"
        -]New value: +[
        +  "administrative",
        +  "exclusive_economic_zone",
        +  "territorial_seas",
        +  "contiguous_zones",
        +  "extended_continental_shelves",
        +  "internal_waters",
        +  "archipelagic_waters",
        +  "high_seas",
        +  "water_body"
        +]
  3. 1 tool update
    • Changedresolve_point4 fields changed
      • changedInput schema / oneOf
        Previous value: -[
        -  {
        -    "not": {
        -      "required": [
        -        "points"
        -      ]
        -    },
        -    "required": [
        -      "lat",
        -      "lon"
        -    ]
        -  },
        -  {
        -    "not": {
        -      "anyOf": [
        -        {
        -          "required": [
        -            "lat"
        -          ]
        -        },
        -        {
        -          "required": [
        -            "lon"
        -          ]
        -        }
        -      ]
        -    },
        -    "required": [
        -      "points"
        -    ]
        -  }
        -]New value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "points"
        +      ]
        +    },
        +    "required": [
        +      "scope_id",
        +      "family",
        +      "lat",
        +      "lon"
        +    ]
        +  },
        +  {
        +    "not": {
        +      "anyOf": [
        +        {
        +          "required": [
        +            "lat"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "lon"
        +          ]
        +        }
        +      ]
        +    },
        +    "required": [
        +      "scope_id",
        +      "family",
        +      "points"
        +    ]
        +  }
        +]
      • addedInput schema / properties / family
        Added value: +{
        +  "description": "One family within the selected scope.",
        +  "enum": [
        +    "administrative",
        +    "marine_jurisdiction",
        +    "water_body"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / scope_id
        Added value: +{
        +  "description": "GLOBAL, MARINE, or one published ISO3 country. No automatic fallback into another scope.",
        +  "minLength": 3,
        +  "type": "string"
        +}
      • addedInput schema / properties / water_kind
        Added value: +{
        +  "description": "Required only for MARINE water_body: named seas or water zones.",
        +  "enum": [
        +    "named",
        +    "zone"
        +  ],
        +  "type": "string"
        +}
  4. 9 tool updates
    • Changedcompare_geographies9 fields changed
      • removedInput schema / anyOf
        Removed value: -[
        -  {
        -    "required": [
        -      "left_loc_id",
        -      "right_loc_id"
        -    ]
        -  },
        -  {
        -    "required": [
        -      "items"
        -    ]
        -  }
        -]
      • addedInput schema / oneOf
        Added value: +[
        +  {
        +    "required": [
        +      "left_loc_id",
        +      "right_loc_id"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "items"
        +    ]
        +  }
        +]
      • addedInput schema / properties / items / items / properties / left_loc_id / minLength
        Added value: +1
      • addedInput schema / properties / items / items / properties / right_loc_id / minLength
        Added value: +1
      • addedInput schema / properties / left_loc_id / minLength
        Added value: +1
      • addedInput schema / properties / right_loc_id / minLength
        Added value: +1
      • addedOutput schema / properties / geometry_loaded
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / graph_evidence
        Added value: +{
        +  "items": {
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / relationship_basis
        Added value: +{
        +  "type": "string"
        +}
    • Changedget_catalog15 fields changed
      • removedInput schema / properties / catalog / default
        Removed value: -"data"
      • changedInput schema / properties / catalog / description
        Previous value: -"Catalog family. The geography facade defaults to geometry; other facades default to data."New value: +"Required directory selector."
      • removedInput schema / properties / country_scope
        Removed value: -{
        -  "description": "Optional ISO3 focus for catalog='geometry' with detail='lite'.",
        -  "type": "string"
        -}
      • removedInput schema / properties / detail
        Removed value: -{
        -  "default": "lite",
        -  "description": "Use lite to select a pack, full for expanded metric/query inventories, or download for the complete raw catalog URL.",
        -  "enum": [
        -    "lite",
        -    "full",
        -    "download"
        -  ],
        -  "type": "string"
        -}
      • removedInput schema / properties / loc_id
        Removed value: -{
        -  "description": "Optional DaedalMap loc_id for catalog='data'. Combine with time_range to discover packs confirmed for both place and time. For place details without pack filtering, use get_loc_id_info.",
        -  "type": "string"
        -}
      • removedInput schema / properties / time_range
        Removed value: -{
        -  "additionalProperties": false,
        -  "description": "Optional inclusive discovery window for catalog='data'. At least one bound is required.",
        -  "properties": {
        -    "end": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "integer"
        -        }
        -      ]
        -    },
        -    "start": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "integer"
        -        }
        -      ]
        -    }
        -  },
        -  "type": "object"
        -}
      • addedInput schema / required
        Added value: +[
        +  "catalog"
        +]
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "required": [
        -      "catalog",
        -      "detail"
        -    ]
        -  },
        -  {
        -    "required": [
        -      "error"
        -    ]
        -  }
        -]New value: +[
        +  {
        +    "required": [
        +      "catalog"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • addedOutput schema / properties / excluded_count
        Added value: +{
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / families
        Added value: +{
        +  "items": {
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / resolved_query
        Added value: +{
        +  "type": "object"
        +}
      • addedOutput schema / properties / result_status
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / scopes
        Added value: +{
        +  "items": {
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / uncertain_count
        Added value: +{
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / uncertain_packs
        Added value: +{
        +  "items": {
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
    • Changedget_data1 field changed
      • changedInput schema / properties / filters / additionalProperties
        Previous value: -{
        -  "anyOf": [
        -    {
        -      "type": [
        -        "string",
        -        "number",
        -        "integer",
        -        "boolean",
        -        "null"
        -      ]
        -    },
        -    {
        -      "items": {
        -        "type": [
        -          "string",
        -          "number",
        -          "integer",
        -          "boolean"
        -        ]
        -      },
        -      "type": "array"
        -    }
        -  ]
        -}New value: +false
    • Addedget_geography
    • Removedget_geometry
    • Changedget_loc_id_info22 fields changed
      • removedInput schema / anyOf
        Removed value: -[
        -  {
        -    "required": [
        -      "loc_id"
        -    ]
        -  },
        -  {
        -    "required": [
        -      "loc_ids"
        -    ]
        -  }
        -]
      • addedInput schema / oneOf
        Added value: +[
        +  {
        +    "required": [
        +      "loc_id"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "loc_ids"
        +    ]
        +  }
        +]
      • removedInput schema / properties / as_of
        Removed value: -{
        -  "description": "Optional ISO day, month, or year (YYYY-MM-DD, YYYY-MM, or YYYY). Reviews the current Full source edition and returns a Double-check date alert for coarse or stale coverage; it does not select historical geometry.",
        -  "type": "string"
        -}
      • removedInput schema / properties / include_hierarchy
        Removed value: -{
        -  "description": "When true, include strict stored parent and ancestor data. This never invents a parent edge across mixed releases. Default false.",
        -  "type": "boolean"
        -}
      • removedInput schema / properties / include_references
        Removed value: -{
        -  "description": "When true, include known external or side-chain references attached to each loc_id. Default false.",
        -  "type": "boolean"
        -}
      • removedInput schema / properties / iso3
        Removed value: -{
        -  "description": "Optional country hint for crosswalk artifacts. Defaults to the loc_id country when possible.",
        -  "type": "string"
        -}
      • removedInput schema / properties / limit_per_system
        Removed value: -{
        -  "description": "Maximum overlap references to return per bridge/system. Default 10.",
        -  "maximum": 100,
        -  "minimum": 1,
        -  "type": "integer"
        -}
      • changedInput schema / properties / loc_ids / description
        Previous value: -"DaedalMap loc_ids to inspect together, including every loc_id from a resolve_point stack. Default public cap is deployment-configurable."New value: +"Up to 10 known loc_ids, including a resolve_point stack."
      • addedInput schema / properties / loc_ids / maxItems
        Added value: +10
      • addedInput schema / properties / loc_ids / minItems
        Added value: +1
      • removedInput schema / properties / min_share
        Removed value: -{
        -  "description": "Optional minimum target-area share for reverse overlap references.",
        -  "maximum": 1,
        -  "minimum": 0,
        -  "type": "number"
        -}
      • removedInput schema / properties / systems
        Removed 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"
        -}
      • removedInput schema / properties / target_admin_level
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "integer"
        -    }
        -  ],
        -  "description": "Admin level for crosswalk-backed reverse reference lookup. Inferred when omitted."
        -}
      • addedOutput schema / properties / connection_count
        Added value: +{
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / connection_limit
        Added value: +{
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / connections
        Added value: +{
        +  "items": {
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / data_packs
        Removed value: -{
        -  "type": "array"
        -}
      • removedOutput schema / properties / geometry_families
        Removed value: -{
        -  "type": "array"
        -}
      • addedOutput schema / properties / has_more
        Added value: +{
        +  "type": "boolean"
        +}
      • removedOutput schema / properties / hierarchy
        Removed value: -{
        -  "type": "object"
        -}
      • removedOutput schema / properties / next_calls
        Removed value: -{
        -  "type": "array"
        -}
      • removedOutput schema / properties / references
        Removed value: -{
        -  "type": "object"
        -}
    • Changedget_pack5 fields changed
      • removedInput schema / properties / catalog
        Removed value: -{
        -  "description": "Metadata family. When omitted, geometry facades default to geometry and known geometry-family ids are inferred; all other calls default to data.",
        -  "enum": [
        -    "data",
        -    "geometry"
        -  ],
        -  "type": "string"
        -}
      • removedInput schema / properties / country_scope
        Removed value: -{
        -  "description": "Optional ISO3 country for a geometry family. Omit it to learn which countries publish the family; provide it for country-specific versions, vintages, levels, and artifacts.",
        -  "pattern": "^[A-Za-z]{3}$",
        -  "type": "string"
        -}
      • removedInput schema / properties / detail
        Removed value: -{
        -  "default": "lite",
        -  "description": "Use lite to decide and start, full for detailed MCP query metadata, or download for the complete raw metadata file.",
        -  "enum": [
        -    "lite",
        -    "full",
        -    "download"
        -  ],
        -  "type": "string"
        -}
      • removedInput schema / properties / release_unit
        Removed value: -{
        -  "description": "Optional non-country geometry release unit such as GLOBAL or MARINE. Do not combine with country_scope.",
        -  "pattern": "^[A-Za-z0-9_-]+$",
        -  "type": "string"
        -}
      • changedOutput schema / properties / catalog / enum
        Previous value: -[
        -  "data",
        -  "geometry"
        -]New value: +[
        +  "data"
        +]
    • Addedget_shape
    • Changedresolve_point2 fields changed
      • removedInput schema / properties / include_marine_context
        Removed value: -{
        -  "default": false,
        -  "description": "Opt in to parallel Marine overlaps for land matches. Defaults to false so ordinary administrative resolution stays lightweight. Offshore Marine fallback still applies.",
        -  "type": "boolean"
        -}
      • removedInput schema / properties / target_admin_level
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "integer"
        -    }
        -  ],
        -  "description": "Optional exact requested level from Admin 0-3. Omit it to return the deepest available shallow level."
        -}
  5. 4 tool updates
    • Changedconvert_reference7 fields changed
      • changedInput schema / anyOf
        Previous value: -[
        -  {
        -    "required": [
        -      "from_system",
        -      "value"
        -    ]
        -  },
        -  {
        -    "required": [
        -      "items"
        -    ]
        -  }
        -]New value: +[
        +  {
        +    "required": [
        +      "iso3",
        +      "from_system",
        +      "value"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "iso3",
        +      "items"
        +    ]
        +  }
        +]
      • addedInput schema / properties / crosswalk_id
        Added value: +{
        +  "description": "Exact published crosswalk ID when the source/target system pair has multiple artifacts. A route ambiguity error lists valid IDs.",
        +  "type": "string"
        +}
      • changedInput schema / properties / iso3 / description
        Previous value: -"Country hint for crosswalk artifacts. Default USA."New value: +"Required scope pack for the entire call: one ISO3 country, GLOBAL, or MARINE. Every item must stay within this scope."
      • addedInput schema / properties / iso3 / minLength
        Added value: +3
      • changedInput schema / properties / items / description
        Previous value: -"Reference conversions to run in one call. Default public cap is deployment-configurable."New value: +"Reference conversions within one scope and one source/target/crosswalk route. Split mixed routes. Maximum requested item count times per-item limit is 25000."
      • addedInput schema / properties / items / items / properties / crosswalk_id
        Added value: +{
        +  "description": "Exact published crosswalk ID when the source/target system pair has multiple artifacts.",
        +  "type": "string"
        +}
      • changedInput schema / properties / items / items / properties / iso3 / description
        Previous value: -"Optional country hint for this row."New value: +"Optional repeat of the top-level scope; must match it. Split mixed countries or packs into separate calls."
    • Changedget_event4 fields changed
      • changedInput schema / properties / pack_id / description
        Previous value: -"Optional disaster pack hint. Recommended when known to avoid probing unrelated event sources."New value: +"Required disaster pack_id that returned this event_id from get_data. The tool never searches other packs."
      • addedInput schema / properties / pack_id / minLength
        Added value: +1
      • addedInput schema / properties / source_id
        Added value: +{
        +  "description": "Required source_id from the same get_data result. Must identify one published event source in pack_id.",
        +  "minLength": 1,
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "event_id"
        -]New value: +[
        +  "pack_id",
        +  "source_id",
        +  "event_id"
        +]
    • Changedidentify_dataset_geography1 field changed
      • changedInput schema / properties / country_scope / description
        Previous value: -"Optional caller-declared ISO3 hint. Omit when unknown."New value: +"Optional caller-declared ISO3 country, passed through to the selected column."
    • Changedidentify_reference_system2 fields changed
      • changedInput schema / properties / country_scope / description
        Previous value: -"Optional ISO3 country hint used to narrow candidate banks."New value: +"Required single ISO3 country, GLOBAL, or MARINE scope. Missing scope fails before identifier reads."
      • addedInput schema / required
        Added value: +[
        +  "country_scope"
        +]
  6. 1 tool update
    • Changedconvert_reference2 fields changed
      • changedInput schema / properties / from_system / description
        Previous value: -"Input reference system, such as zip, overlay_zcta, nws_fire, tribal, admin_boundary, or loc_id."New value: +"Input reference system, such as admin_boundary (admin and city names; admin_text and place_name are accepted aliases), zip, overlay_zcta, nws_fire, tribal, or loc_id."
      • changedInput schema / properties / value / description
        Previous value: -"Identifier or name in the input system."New value: +"Identifier or name in the input system, for example 'Springfield, Illinois' with admin_boundary."
  7. 1 tool update
    • Changedconvert_reference2 fields changed
      • changedInput schema / properties / country_hint / description
        Previous value: -"Optional country hint for admin/name resolution."New value: +"Optional country hint for admin/name resolution (USA), or a subdivision to search within (USA-OR). Names may also carry their parent: 'Washington County, Oregon'. Ambiguous names return candidates instead of a match."
      • changedInput schema / properties / items / items / properties / country_hint / description
        Previous value: -"Optional country hint for admin/name resolution."New value: +"Optional country hint for admin/name resolution (USA), or a subdivision to search within (USA-OR). Names may also carry their parent: 'Washington County, Oregon'. Ambiguous names return candidates instead of a match."
  8. 1 tool update
    • Changedget_loc_id_info1 field changed
      • addedInput schema / properties / as_of
        Added value: +{
        +  "description": "Optional ISO day, month, or year (YYYY-MM-DD, YYYY-MM, or YYYY). Reviews the current Full source edition and returns a Double-check date alert for coarse or stale coverage; it does not select historical geometry.",
        +  "type": "string"
        +}
  9. 1 tool update
    • Changedresolve_point2 fields changed
      • addedInput schema / properties / include_marine_context / default
        Added value: +false
      • changedInput schema / properties / include_marine_context / description
        Previous value: -"Include parallel Marine overlaps for land matches. Defaults to true; set false for fast administrative loc_id previews. Offshore Marine fallback still applies."New value: +"Opt in to parallel Marine overlaps for land matches. Defaults to false so ordinary administrative resolution stays lightweight. Offshore Marine fallback still applies."
  10. 9 tool updates
    • Changedcompare_geographies1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": true,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "ok",
        +        "spatial_relation"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "item_count",
        +        "results"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "error"
        +      ]
        +    }
        +  ],
        +  "properties": {
        +    "batch_id": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "clarification": {
        +      "type": "object"
        +    },
        +    "compared_count": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "error": {
        +      "additionalProperties": true,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {
        +          "type": "object"
        +        },
        +        "message": {
        +          "type": "string"
        +        },
        +        "retry_hint": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "failed_count": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "guidance": {
        +      "type": "object"
        +    },
        +    "item_count": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "meter_receipt": {
        +      "type": "object"
        +    },
        +    "next_step": {
        +      "additionalProperties": true,
        +      "anyOf": [
        +        {
        +          "required": [
        +            "action"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "tool"
        +          ]
        +        }
        +      ],
        +      "properties": {
        +        "action": {
        +          "type": "string"
        +        },
        +        "arguments": {
        +          "type": "object"
        +        },
        +        "tool": {
        +          "type": "string"
        +        },
        +        "url": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "type": "string"
        +    },
        +    "request_id": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "results": {
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "error": {
        +            "additionalProperties": true,
        +            "properties": {
        +              "code": {
        +                "type": "string"
        +              },
        +              "details": {
        +                "type": "object"
        +              },
        +              "message": {
        +                "type": "string"
        +              },
        +              "retry_hint": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "code",
        +              "message"
        +            ],
        +            "type": "object"
        +          },
        +          "id": {
        +            "type": [
        +              "string",
        +              "integer",
        +              "null"
        +            ]
        +          },
        +          "ok": {
        +            "type": "boolean"
        +          },
        +          "row_index": {
        +            "type": [
        +              "string",
        +              "integer",
        +              "null"
        +            ]
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "settlement_receipt": {
        +      "type": "object"
        +    },
        +    "spatial_relation": {
        +      "type": [
        +        "string",
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "temporal_relation": {
        +      "type": [
        +        "string",
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "warnings": {
        +      "items": {
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedconvert_reference1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": true,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "ok",
        +        "results"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "item_count",
        +        "results"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "error"
        +      ]
        +    }
        +  ],
        +  "properties": {
        +    "batch_id": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "clarification": {
        +      "type": "object"
        +    },
        +    "converted_count": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "error": {
        +      "additionalProperties": true,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {
        +          "type": "object"
        +        },
        +        "message": {
        +          "type": "string"
        +        },
        +        "retry_hint": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "from": {
        +      "type": "object"
        +    },
        +    "from_system": {
        +      "type": "string"
        +    },
        +    "guidance": {
        +      "type": "object"
        +    },
        +    "item_count": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "loc_id": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "meter_receipt": {
        +      "type": "object"
        +    },
        +    "next_step": {
        +      "additionalProperties": true,
        +      "anyOf": [
        +        {
        +          "required": [
        +            "action"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "tool"
        +          ]
        +        }
        +      ],
        +      "properties": {
        +        "action": {
        +          "type": "string"
        +        },
        +        "arguments": {
        +          "type": "object"
        +        },
        +        "tool": {
        +          "type": "string"
        +        },
        +        "url": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "type": "string"
        +    },
        +    "request_id": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "results": {
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "error": {
        +            "additionalProperties": true,
        +            "properties": {
        +              "code": {
        +                "type": "string"
        +              },
        +              "details": {
        +                "type": "object"
        +              },
        +              "message": {
        +                "type": "string"
        +              },
        +              "retry_hint": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "code",
        +              "message"
        +            ],
        +            "type": "object"
        +          },
        +          "id": {
        +            "type": [
        +              "string",
        +              "integer",
        +              "null"
        +            ]
        +          },
        +          "ok": {
        +            "type": "boolean"
        +          },
        +          "row_index": {
        +            "type": [
        +              "string",
        +              "integer",
        +              "null"
        +            ]
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "settlement_receipt": {
        +      "type": "object"
        +    },
        +    "to_system": {
        +      "type": "string"
        +    },
        +    "unconverted_count": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "warnings": {
        +      "items": {
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_data13 fields changed
      • addedInput schema / properties / filters / additionalProperties
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": [
        +        "string",
        +        "number",
        +        "integer",
        +        "boolean",
        +        "null"
        +      ]
        +    },
        +    {
        +      "items": {
        +        "type": [
        +          "string",
        +          "number",
        +          "integer",
        +          "boolean"
        +        ]
        +      },
        +      "type": "array"
        +    }
        +  ]
        +}
      • removedInput schema / properties / filters / description
        Removed value: -"Structured filters including time, region_ids, and compare clauses."
      • addedInput schema / properties / filters / properties
        Added value: +{
        +  "compare": {
        +    "description": "Threshold filters using filterable fields or selected metric ids published by get_pack.",
        +    "items": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "field": {
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "op": {
        +          "enum": [
        +            "=",
        +            "!=",
        +            ">",
        +            ">=",
        +            "<",
        +            "<="
        +          ],
        +          "type": "string"
        +        },
        +        "value": {}
        +      },
        +      "required": [
        +        "field",
        +        "op",
        +        "value"
        +      ],
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  "equals": {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": [
        +            "string",
        +            "number",
        +            "integer",
        +            "boolean",
        +            "null"
        +          ]
        +        },
        +        {
        +          "items": {
        +            "type": [
        +              "string",
        +              "number",
        +              "integer",
        +              "boolean"
        +            ]
        +          },
        +          "type": "array"
        +        }
        +      ]
        +    },
        +    "description": "Exact field/value filters using filterable fields published by get_pack.",
        +    "type": "object"
        +  },
        +  "region_ids": {
        +    "description": "Canonical country or hierarchical loc_ids from get_pack, such as JPN or USA-TX.",
        +    "items": {
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "minItems": 1,
        +    "type": "array",
        +    "uniqueItems": true
        +  },
        +  "time": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "required": [
        +          "value"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "start"
        +        ]
        +      },
        +      {
        +        "required": [
        +          "end"
        +        ]
        +      }
        +    ],
        +    "description": "Inclusive ISO-8601 date/datetime or integer-year selection. Use YYYY-MM-DD, not partial YYYY-MM strings.",
        +    "properties": {
        +      "end": {
        +        "anyOf": [
        +          {
        +            "format": "date-time",
        +            "type": "string"
        +          },
        +          {
        +            "format": "date",
        +            "type": "string"
        +          },
        +          {
        +            "type": "integer"
        +          }
        +        ]
        +      },
        +      "granularity": {
        +        "enum": [
        +          "daily",
        +          "weekly",
        +          "monthly",
        +          "yearly",
        +          "timestamp"
        +        ],
        +        "type": "string"
        +      },
        +      "start": {
        +        "anyOf": [
        +          {
        +            "format": "date-time",
        +            "type": "string"
        +          },
        +          {
        +            "format": "date",
        +            "type": "string"
        +          },
        +          {
        +            "type": "integer"
        +          }
        +        ]
        +      },
        +      "value": {
        +        "anyOf": [
        +          {
        +            "format": "date-time",
        +            "type": "string"
        +          },
        +          {
        +            "format": "date",
        +            "type": "string"
        +          },
        +          {
        +            "type": "integer"
        +          }
        +        ]
        +      }
        +    },
        +    "type": "object"
        +  }
        +}
      • changedInput schema / properties / metrics / description
        Previous value: -"Metric ids to return. Use event_count for aggregate counts when supported."New value: +"Exact metric ids from get_pack. Use event_count for aggregate counts only when get_pack publishes it."
      • addedInput schema / properties / metrics / items / minLength
        Added value: +1
      • addedInput schema / properties / metrics / minItems
        Added value: +1
      • addedInput schema / properties / metrics / uniqueItems
        Added value: +true
      • addedInput schema / properties / output / additionalProperties
        Added value: +false
      • changedInput schema / properties / output / description
        Previous value: -"Optional output controls such as response format hints."New value: +"Optional response controls. v1 supports rows only."
      • addedInput schema / properties / output / properties
        Added value: +{
        +  "format": {
        +    "default": "rows",
        +    "enum": [
        +      "rows"
        +    ],
        +    "type": "string"
        +  },
        +  "include_provenance": {
        +    "default": false,
        +    "type": "boolean"
        +  }
        +}
      • addedInput schema / properties / pack_id / minLength
        Added value: +1
      • changedInput schema / properties / sort / anyOf
        Previous value: -[
        -  {
        -    "type": "array"
        -  },
        -  {
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "direction": {
        +        "enum": [
        +          "asc",
        +          "desc"
        +        ],
        +        "type": "string"
        +      },
        +      "field": {
        +        "minLength": 1,
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "field"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "items": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "direction": {
        +          "enum": [
        +            "asc",
        +            "desc"
        +          ],
        +          "type": "string"
        +        },
        +        "field": {
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "field"
        +      ],
        +      "type": "object"
        +    },
        +    "type": "array"
        +  }
        +]
      • changedInput schema / properties / sort / description
        Previous value: -"Optional sort instructions for row-returning queries."New value: +"Sort by a sortable field from get_pack; direction defaults to asc."
    • Changedget_geometry1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": true,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "ok",
        +        "selection",
        +        "items"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "error"
        +      ]
        +    }
        +  ],
        +  "properties": {
        +    "available": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "batch_id": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "clarification": {
        +      "type": "object"
        +    },
        +    "error": {
        +      "additionalProperties": true,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {
        +          "type": "object"
        +        },
        +        "message": {
        +          "type": "string"
        +        },
        +        "retry_hint": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "guidance": {
        +      "type": "object"
        +    },
        +    "include_polygon": {
        +      "type": "boolean"
        +    },
        +    "items": {
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "error": {
        +            "additionalProperties": true,
        +            "properties": {
        +              "code": {
        +                "type": "string"
        +              },
        +              "details": {
        +                "type": "object"
        +              },
        +              "message": {
        +                "type": "string"
        +              },
        +              "retry_hint": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "code",
        +              "message"
        +            ],
        +            "type": "object"
        +          },
        +          "id": {
        +            "type": [
        +              "string",
        +              "integer",
        +              "null"
        +            ]
        +          },
        +          "ok": {
        +            "type": "boolean"
        +          },
        +          "row_index": {
        +            "type": [
        +              "string",
        +              "integer",
        +              "null"
        +            ]
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "meter_receipt": {
        +      "type": "object"
        +    },
        +    "missing": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "next_step": {
        +      "additionalProperties": true,
        +      "anyOf": [
        +        {
        +          "required": [
        +            "action"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "tool"
        +          ]
        +        }
        +      ],
        +      "properties": {
        +        "action": {
        +          "type": "string"
        +        },
        +        "arguments": {
        +          "type": "object"
        +        },
        +        "tool": {
        +          "type": "string"
        +        },
        +        "url": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "type": "string"
        +    },
        +    "request_id": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "requested": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "scope": {
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "selection": {
        +      "enum": [
        +        "exact_loc_ids",
        +        "admin_scope"
        +      ],
        +      "type": "string"
        +    },
        +    "settlement_receipt": {
        +      "type": "object"
        +    },
        +    "warnings": {
        +      "items": {
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_loc_id_info1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": true,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "loc_id"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "loc_id_count",
        +        "results"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "error"
        +      ]
        +    }
        +  ],
        +  "properties": {
        +    "admin_level": {
        +      "type": [
        +        "string",
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "batch_id": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "clarification": {
        +      "type": "object"
        +    },
        +    "data_packs": {
        +      "type": "array"
        +    },
        +    "error": {
        +      "additionalProperties": true,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {
        +          "type": "object"
        +        },
        +        "message": {
        +          "type": "string"
        +        },
        +        "retry_hint": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "family": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "found_count": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "geometry_families": {
        +      "type": "array"
        +    },
        +    "guidance": {
        +      "type": "object"
        +    },
        +    "hierarchy": {
        +      "type": "object"
        +    },
        +    "iso3": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "loc_id": {
        +      "type": "string"
        +    },
        +    "loc_id_count": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "meter_receipt": {
        +      "type": "object"
        +    },
        +    "missing_count": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "name": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "next_calls": {
        +      "type": "array"
        +    },
        +    "next_step": {
        +      "additionalProperties": true,
        +      "anyOf": [
        +        {
        +          "required": [
        +            "action"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "tool"
        +          ]
        +        }
        +      ],
        +      "properties": {
        +        "action": {
        +          "type": "string"
        +        },
        +        "arguments": {
        +          "type": "object"
        +        },
        +        "tool": {
        +          "type": "string"
        +        },
        +        "url": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "type": "string"
        +    },
        +    "references": {
        +      "type": "object"
        +    },
        +    "request_id": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "requested_loc_id": {
        +      "type": "string"
        +    },
        +    "results": {
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "error": {
        +            "additionalProperties": true,
        +            "properties": {
        +              "code": {
        +                "type": "string"
        +              },
        +              "details": {
        +                "type": "object"
        +              },
        +              "message": {
        +                "type": "string"
        +              },
        +              "retry_hint": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "code",
        +              "message"
        +            ],
        +            "type": "object"
        +          },
        +          "id": {
        +            "type": [
        +              "string",
        +              "integer",
        +              "null"
        +            ]
        +          },
        +          "ok": {
        +            "type": "boolean"
        +          },
        +          "row_index": {
        +            "type": [
        +              "string",
        +              "integer",
        +              "null"
        +            ]
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "settlement_receipt": {
        +      "type": "object"
        +    },
        +    "warnings": {
        +      "items": {
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedidentify_dataset_geography1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": true,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "ok",
        +        "status",
        +        "candidates"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "error"
        +      ]
        +    }
        +  ],
        +  "properties": {
        +    "batch_id": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "candidates": {
        +      "items": {
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "clarification": {
        +      "type": "object"
        +    },
        +    "column_count": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "coordinate_binding": {
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "error": {
        +      "additionalProperties": true,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {
        +          "type": "object"
        +        },
        +        "message": {
        +          "type": "string"
        +        },
        +        "retry_hint": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "guidance": {
        +      "type": "object"
        +    },
        +    "identifier_count": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "limit": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "meter_receipt": {
        +      "type": "object"
        +    },
        +    "next_step": {
        +      "additionalProperties": true,
        +      "anyOf": [
        +        {
        +          "required": [
        +            "action"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "tool"
        +          ]
        +        }
        +      ],
        +      "properties": {
        +        "action": {
        +          "type": "string"
        +        },
        +        "arguments": {
        +          "type": "object"
        +        },
        +        "tool": {
        +          "type": "string"
        +        },
        +        "url": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "type": "string"
        +    },
        +    "recommended_binding": {
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "request_id": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "review_required": {
        +      "type": "boolean"
        +    },
        +    "settlement_receipt": {
        +      "type": "object"
        +    },
        +    "status": {
        +      "type": "string"
        +    },
        +    "warnings": {
        +      "items": {
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedidentify_reference_system1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": true,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "ok",
        +        "status",
        +        "candidates"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "error"
        +      ]
        +    }
        +  ],
        +  "properties": {
        +    "batch_id": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "candidates": {
        +      "items": {
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "clarification": {
        +      "type": "object"
        +    },
        +    "column_count": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "coordinate_binding": {
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "error": {
        +      "additionalProperties": true,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {
        +          "type": "object"
        +        },
        +        "message": {
        +          "type": "string"
        +        },
        +        "retry_hint": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "guidance": {
        +      "type": "object"
        +    },
        +    "identifier_count": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "limit": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "meter_receipt": {
        +      "type": "object"
        +    },
        +    "next_step": {
        +      "additionalProperties": true,
        +      "anyOf": [
        +        {
        +          "required": [
        +            "action"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "tool"
        +          ]
        +        }
        +      ],
        +      "properties": {
        +        "action": {
        +          "type": "string"
        +        },
        +        "arguments": {
        +          "type": "object"
        +        },
        +        "tool": {
        +          "type": "string"
        +        },
        +        "url": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "type": "string"
        +    },
        +    "recommended_binding": {
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "request_id": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "review_required": {
        +      "type": "boolean"
        +    },
        +    "settlement_receipt": {
        +      "type": "object"
        +    },
        +    "status": {
        +      "type": "string"
        +    },
        +    "warnings": {
        +      "items": {
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedresolve_deep_point1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": true,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "point",
        +        "stack"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "point",
        +        "family",
        +        "family_result"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "point_count",
        +        "results"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "error"
        +      ]
        +    }
        +  ],
        +  "properties": {
        +    "available_deeper_admin_levels": {
        +      "type": "array"
        +    },
        +    "batch_id": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "clarification": {
        +      "type": "object"
        +    },
        +    "deeper_available": {
        +      "type": "boolean"
        +    },
        +    "deepest_resolved_admin_level": {
        +      "type": [
        +        "string",
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "deepest_resolved_family": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "deepest_resolved_loc_id": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "error": {
        +      "additionalProperties": true,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {
        +          "type": "object"
        +        },
        +        "message": {
        +          "type": "string"
        +        },
        +        "retry_hint": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "family": {
        +      "type": "string"
        +    },
        +    "family_result": {
        +      "type": "object"
        +    },
        +    "guidance": {
        +      "type": "object"
        +    },
        +    "join_keys": {
        +      "type": "object"
        +    },
        +    "matched": {
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "meter_receipt": {
        +      "type": "object"
        +    },
        +    "next_step": {
        +      "additionalProperties": true,
        +      "anyOf": [
        +        {
        +          "required": [
        +            "action"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "tool"
        +          ]
        +        }
        +      ],
        +      "properties": {
        +        "action": {
        +          "type": "string"
        +        },
        +        "arguments": {
        +          "type": "object"
        +        },
        +        "tool": {
        +          "type": "string"
        +        },
        +        "url": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "overlap_families": {
        +      "items": {
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "point": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": true,
        +          "properties": {
        +            "lat": {
        +              "type": "number"
        +            },
        +            "lon": {
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "lat",
        +            "lon"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "point_count": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "reason": {
        +      "type": "string"
        +    },
        +    "request_id": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "resolved_count": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "results": {
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "error": {
        +            "additionalProperties": true,
        +            "properties": {
        +              "code": {
        +                "type": "string"
        +              },
        +              "details": {
        +                "type": "object"
        +              },
        +              "message": {
        +                "type": "string"
        +              },
        +              "retry_hint": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "code",
        +              "message"
        +            ],
        +            "type": "object"
        +          },
        +          "id": {
        +            "type": [
        +              "string",
        +              "integer",
        +              "null"
        +            ]
        +          },
        +          "ok": {
        +            "type": "boolean"
        +          },
        +          "row_index": {
        +            "type": [
        +              "string",
        +              "integer",
        +              "null"
        +            ]
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "settlement_receipt": {
        +      "type": "object"
        +    },
        +    "shallow_loc_id": {
        +      "type": "string"
        +    },
        +    "stack": {
        +      "items": {
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "unresolved_count": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "warnings": {
        +      "items": {
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedresolve_point1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": true,
        +  "anyOf": [
        +    {
        +      "required": [
        +        "point",
        +        "stack"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "point",
        +        "family",
        +        "family_result"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "point_count",
        +        "results"
        +      ]
        +    },
        +    {
        +      "required": [
        +        "error"
        +      ]
        +    }
        +  ],
        +  "properties": {
        +    "available_deeper_admin_levels": {
        +      "type": "array"
        +    },
        +    "batch_id": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "clarification": {
        +      "type": "object"
        +    },
        +    "deeper_available": {
        +      "type": "boolean"
        +    },
        +    "deepest_resolved_admin_level": {
        +      "type": [
        +        "string",
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "deepest_resolved_family": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "deepest_resolved_loc_id": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "error": {
        +      "additionalProperties": true,
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "details": {
        +          "type": "object"
        +        },
        +        "message": {
        +          "type": "string"
        +        },
        +        "retry_hint": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "message"
        +      ],
        +      "type": "object"
        +    },
        +    "family": {
        +      "type": "string"
        +    },
        +    "family_result": {
        +      "type": "object"
        +    },
        +    "guidance": {
        +      "type": "object"
        +    },
        +    "join_keys": {
        +      "type": "object"
        +    },
        +    "matched": {
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "meter_receipt": {
        +      "type": "object"
        +    },
        +    "next_step": {
        +      "additionalProperties": true,
        +      "anyOf": [
        +        {
        +          "required": [
        +            "action"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "tool"
        +          ]
        +        }
        +      ],
        +      "properties": {
        +        "action": {
        +          "type": "string"
        +        },
        +        "arguments": {
        +          "type": "object"
        +        },
        +        "tool": {
        +          "type": "string"
        +        },
        +        "url": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "overlap_families": {
        +      "items": {
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "point": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": true,
        +          "properties": {
        +            "lat": {
        +              "type": "number"
        +            },
        +            "lon": {
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "lat",
        +            "lon"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "point_count": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "reason": {
        +      "type": "string"
        +    },
        +    "request_id": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "resolved_count": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "results": {
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "error": {
        +            "additionalProperties": true,
        +            "properties": {
        +              "code": {
        +                "type": "string"
        +              },
        +              "details": {
        +                "type": "object"
        +              },
        +              "message": {
        +                "type": "string"
        +              },
        +              "retry_hint": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "code",
        +              "message"
        +            ],
        +            "type": "object"
        +          },
        +          "id": {
        +            "type": [
        +              "string",
        +              "integer",
        +              "null"
        +            ]
        +          },
        +          "ok": {
        +            "type": "boolean"
        +          },
        +          "row_index": {
        +            "type": [
        +              "string",
        +              "integer",
        +              "null"
        +            ]
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "settlement_receipt": {
        +      "type": "object"
        +    },
        +    "shallow_loc_id": {
        +      "type": "string"
        +    },
        +    "stack": {
        +      "items": {
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "unresolved_count": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "warnings": {
        +      "items": {
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}

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
    2
    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.