Skip to main content
Glama

DaedalMap Reverse Geocoding (coordinates to loc_id)

Server Details

Convert WGS84 coordinates to the latest available administrative loc_id chain.

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
100.0% over the last 24 hours
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
xyver/daedal-map
GitHub Stars
2
Server Listing
daedal-map
ChatGPT
–
Claude
–

TDQS

A3.9/5.0

Scored across 7 tools

Disambiguation4/5

Each tool has a distinct role: catalog/geography metadata inspection, help, and four resolution operations split cleanly by point vs. bbox and shallow vs. deep (second-pass) calls. The main subtlety is understanding the two-pass workflow, since resolve_deep_* require a loc_id from the corresponding shallow tool, and get_catalog vs get_geography overlap slightly in that both surface coverage metadata, but the descriptions make the boundary workable.

Naming Consistency5/5

All seven tools follow a strict verb_noun convention with two consistent verb families: get_* for metadata (catalog, geography, tool_help) and resolve_* for coordinate resolution, with deep_ and point/bbox modifiers applied systematically. No camelCase or stylistic mixing.

Tool Count5/5

Seven tools is well-scoped for a reverse-geocoding server: metadata/help, plus a 2x2 resolution matrix (point/bbox × shallow/deep) with no redundant entries. Each tool earns its place and nothing feels padded.

Completeness4/5

The surface covers metadata discovery, help, and shallow/deep resolution for both points and rectangles, including bulk point requests, which is solid lifecycle coverage for reverse geocoding. The notable gap is the absence of any tool to go from a returned loc_id back to geometry/envelope or to traverse the administrative hierarchy, which could strand agents after resolution.

Available Tools

7 tools
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_geographyInspect One Geography Family or ScopeA
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
yearNo
scope_idNo
family_idNo

Output Schema

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

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover readOnly, idempotent, closed-world and non-destructive behavior, so the bar is lower. The description still adds real context: results come from catalog metadata only, the optional year resolves to the latest admitted edition no later than that year, and a missing edition index is reported explicitly rather than silently ignored.

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 tight sentences with no filler, and the core operation is front-loaded before the year-selection detail. The phrasing is jargon-dense but each sentence carries information.

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 further explanation, and the annotations cover the safety profile. The description covers the operation and the year behavior adequately; the only real gap is not clarifying the family_id/scope_id distinction and their mutual exclusivity.

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 0%, so the description carries the burden for three parameters. It explains 'year' semantics well (latest admitted edition no later than the year, with explicit reporting when no index exists), but says nothing about the meaning of family_id vs scope_id or the oneOf exclusivity rule that requires exactly one of them.

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

Purpose4/5

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

The description names a specific verb ('Inspect') and resource ('one published geometry family across scopes or one scope across families'), which distinguishes it from siblings like compare_geographies, get_shape, and get_data. It is clear what the tool returns, though the family-vs-scope duality is stated rather densely and its relationship to sibling tools is not explicitly contrasted.

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

Usage Guidelines3/5

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

The phrase 'from catalog metadata only' implicitly signals this is a metadata lookup rather than a data/geometry fetch (vs get_data, get_shape), which gives an agent some routing signal. However, there is no explicit when-to-use, when-not-to-use, or named alternative sibling, so usage must be inferred.

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.

resolve_bboxResolve Map ViewportB
Read-onlyIdempotent
Inspect

Compare one non-wrapping rectangular WGS84 viewport with the published Global administrative spine through Admin 2. Supply its four corners. Returns the best equal-area overlap plus nearby matches at each level and their shares of the viewport and loc_id. Large views may require zooming in. This tool reads no country deep bank.

NameRequiredDescriptionDefault
cornersYesFour distinct corners of one axis-aligned rectangle; no antimeridian crossing.
request_idNoOptional caller-supplied tracing ID.

Output Schema

NameRequiredDescription
okNo
bboxNo
errorNo
reasonNo
rankingNo
batch_idNo
guidanceNo
warningsNo
next_stepNo
best_matchNo
request_idNo
query_layoutNo
admin_1_scopeNo
clarificationNo
meter_receiptNo
shallow_loc_idNo
geometry_releaseNo
settlement_receiptNo
matches_by_admin_levelNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so safety is covered. The description still adds real behavioral context by disclosing that results come back as a best overlap plus nearby matches at each level with share-of-viewport and share-of-loc_id figures, and by warning that oversized views may need zooming. It does not say what happens to matches outside the viewport or how partial overlaps are ranked, leaving the ranking behavior opaque.

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 opening sentences front-load the comparison and the required input efficiently, and the return-shape sentence is informative. The closing line, 'This tool reads no country deep bank,' is unexplained internal jargon that costs space without giving the agent an actionable rule, and 'Large views may require zooming in' is too vague to guide a retry strategy.

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 full schema coverage, an output schema, and complete annotations, most of the burden is carried elsewhere, and the description fills in the comparison target and the resolution limits. The notable gap is sibling routing against resolve_deep_bbox and resolve_point, which matters given three similar-sounding resolve tools. Otherwise an agent has enough to call this correctly.

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

Parameters3/5

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

Schema coverage is 100%, so both corners and request_id are already documented, including the four-distinct-corners and antimeridian constraints. The description mirrors that with 'Supply its four corners' and 'non-wrapping' but adds no format, ordering, or tolerance detail beyond the schema. Baseline 3 is appropriate when the schema carries this much weight.

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

Purpose4/5

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

The description gives a specific verb and resource: compare one non-wrapping rectangular WGS84 viewport against the Global administrative spine through Admin 2, and return best equal-area overlap plus nearby matches. That is far more than a restatement of the name. It stops short of naming a sibling such as resolve_deep_bbox or resolve_point, so the agent must infer the split from the domain wording alone.

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

Usage Guidelines3/5

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

Usage is implied by the constraints: supply four corners, views must not cross the antimeridian, and large views may need zooming in. There is no explicit guidance on when to pick this over resolve_deep_bbox or resolve_point, which is the main routing decision an agent faces here. The closing line about the 'country deep bank' gestures at a boundary but does not state a rule the agent can act on.

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

resolve_deep_bboxResolve Map Viewport (Deep)A
Read-onlyIdempotent
Inspect

Second-pass rectangle overlap within one returned shallow administrative loc_id. Routes to that country's one Admin 1-owned exact partition and compares its Admin 1-6 spine. Supply the original four WGS84 corners; broad views may require zooming in.

NameRequiredDescriptionDefault
cornersYesFour distinct corners of one axis-aligned rectangle; no antimeridian crossing.
request_idNoOptional caller-supplied tracing ID.
shallow_loc_idYesOne canonical Admin 1-3 loc_id from the shallow result; its Admin 1 owner selects one deep partition.

Output Schema

NameRequiredDescription
okNo
bboxNo
errorNo
reasonNo
rankingNo
batch_idNo
guidanceNo
warningsNo
next_stepNo
best_matchNo
request_idNo
query_layoutNo
admin_1_scopeNo
clarificationNo
meter_receiptNo
shallow_loc_idNo
geometry_releaseNo
settlement_receiptNo
matches_by_admin_levelNo

TDQS

A3.8/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 bar is lower; the description still adds genuine behavior beyond them by explaining the internal routing to one country-specific partition and disclosing a real failure mode ('broad views may require zooming in'). It does not describe cost, latency, or what happens when the rectangle straddles partitions, but the output schema covers return shape.

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 tight sentences with the routing behavior front-loaded and the input requirement and caveat following — no filler. The density of unexplained internal jargon ('Admin 1-6 spine', 'Admin 1-owned exact partition') costs a point because an unfamiliar agent must decode terms that are never defined.

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, idempotent resolver with a full input schema and an output schema, the definition covers purpose, precondition, input provenance, and one operational caveat, which is close to sufficient. It is only short of a plain statement of the result (what the deep partition comparison yields) and of how it relates to its named siblings.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds two constraints not in the schema: the corners must be the 'original' four (i.e., not narrowed from the shallow call) and they are WGS84, which the schema never states. It adds nothing about request_id, which is fine since the schema documents it as an optional tracing ID.

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

Purpose4/5

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

The description names a specific operation (a second-pass rectangle overlap resolved against a single shallow administrative loc_id) and explicitly frames it as the deep counterpart to a first shallow pass, which distinguishes it from resolve_bbox and resolve_deep_point. The wording is domain-dense ('Admin 1-owned exact partition', 'Admin 1-6 spine'), so an agent gets the shape of the operation but not a plain-language statement of what it returns.

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

Usage Guidelines3/5

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

'Second-pass' and 'within one returned shallow administrative loc_id' establish that this tool must be called after a shallow lookup and scoped to one of its results, which is real sequencing guidance. However, the prerequisite sibling (resolve_bbox) is never named, and there is no explicit statement of when to skip the deep pass or what to do if the shallow result is absent — the agent must infer the call order.

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. 2 tool updates
    • Addedresolve_bbox
    • Addedresolve_deep_bbox
  2. 1 tool update
    • Changedget_geography5 fields changed
      • removedInput schema / anyOf
        Removed value: -[
        -  {
        -    "required": [
        -      "family_id"
        -    ]
        -  },
        -  {
        -    "required": [
        -      "scope_id"
        -    ]
        -  }
        -]
      • addedInput schema / oneOf
        Added value: +[
        +  {
        +    "required": [
        +      "family_id"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "scope_id"
        +    ]
        +  }
        +]
      • removedInput schema / properties / include_geometry
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedInput schema / properties / page
        Removed value: -{
        -  "minimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / page_size
        Removed value: -{
        -  "maximum": 10,
        -  "minimum": 1,
        -  "type": "integer"
        -}
  3. 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"
        +}
  4. 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"
        +]
  5. 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"
        +}
  6. 4 tool updates
    • 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"
        +}
    • Addedget_geography
    • Removedget_pack
    • 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."
        -}
  7. 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."
  8. 2 tool updates
    • 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"
        +}
  9. 1 tool update
    • Changedget_catalog2 fields changed
      • addedInput schema / properties / loc_id
        Added 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"
        +}
      • addedInput schema / properties / time_range
        Added 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"
        +}
  10. 7 tool updates
    • Changedget_catalog9 fields changed
      • addedInput schema / properties / catalog
        Added value: +{
        +  "default": "data",
        +  "description": "Catalog family. The geography facade defaults to geometry; other facades default to data.",
        +  "enum": [
        +    "data",
        +    "geometry"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / country_scope
        Added value: +{
        +  "description": "Optional ISO3 focus for catalog='geometry' with detail='lite'.",
        +  "type": "string"
        +}
      • addedInput schema / properties / detail
        Added 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"
        +}
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "required": [
        -      "packs"
        -    ]
        -  },
        -  {
        -    "required": [
        -      "error"
        -    ]
        -  }
        -]New value: +[
        +  {
        +    "required": [
        +      "catalog",
        +      "detail"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • addedOutput schema / properties / catalog
        Added value: +{
        +  "enum": [
        +    "data",
        +    "geometry"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / detail
        Added value: +{
        +  "enum": [
        +    "lite",
        +    "full",
        +    "download"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / download_url
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / next_step / anyOf
        Added value: +[
        +  {
        +    "required": [
        +      "action"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "tool"
        +    ]
        +  }
        +]
      • removedOutput schema / properties / next_step / required
        Removed value: -[
        -  "action"
        -]
    • Changedget_pack13 fields changed
      • addedInput schema / properties / catalog
        Added 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"
        +}
      • addedInput schema / properties / country_scope
        Added 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"
        +}
      • changedInput schema / properties / detail / description
        Previous value: -"Use lite for normal discovery. Use full only for one selected pack when its complete public metadata is required."New value: +"Use lite to decide and start, full for detailed MCP query metadata, or download for the complete raw metadata file."
      • changedInput schema / properties / detail / enum
        Previous value: -[
        -  "lite",
        -  "full"
        -]New value: +[
        +  "lite",
        +  "full",
        +  "download"
        +]
      • addedInput schema / properties / release_unit
        Added 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 / anyOf
        Previous value: -[
        -  {
        -    "required": [
        -      "pack_id"
        -    ]
        -  },
        -  {
        -    "required": [
        -      "error"
        -    ]
        -  }
        -]New value: +[
        +  {
        +    "required": [
        +      "catalog",
        +      "pack_id",
        +      "detail"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • addedOutput schema / properties / catalog
        Added value: +{
        +  "enum": [
        +    "data",
        +    "geometry"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / detail
        Added value: +{
        +  "enum": [
        +    "lite",
        +    "full",
        +    "download"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / download_call
        Added value: +{
        +  "type": "object"
        +}
      • addedOutput schema / properties / download_url
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / full_call
        Added value: +{
        +  "type": "object"
        +}
      • addedOutput schema / properties / next_step / anyOf
        Added value: +[
        +  {
        +    "required": [
        +      "action"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "tool"
        +    ]
        +  }
        +]
      • removedOutput schema / properties / next_step / required
        Removed value: -[
        -  "action"
        -]
    • Changedget_tool_help7 fields changed
      • addedInput schema / oneOf
        Added value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "topic"
        +      ]
        +    },
        +    "required": [
        +      "tool_name"
        +    ]
        +  },
        +  {
        +    "not": {
        +      "required": [
        +        "tool_name"
        +      ]
        +    },
        +    "required": [
        +      "topic"
        +    ]
        +  }
        +]
      • addedInput schema / properties / question
        Added value: +{
        +  "description": "Optional question used only with a topic overview.",
        +  "type": "string"
        +}
      • changedInput schema / properties / tool_name / description
        Previous value: -"Exact tool name from tools/list."New value: +"Exact tool name from tools/list. Do not combine with topic."
      • addedInput schema / properties / topic
        Added value: +{
        +  "description": "Workflow overview. Do not combine with tool_name.",
        +  "enum": [
        +    "overview",
        +    "data",
        +    "disasters",
        +    "custom_data",
        +    "geometry"
        +  ],
        +  "type": "string"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "tool_name"
        -]
      • addedOutput schema / properties / next_step / anyOf
        Added value: +[
        +  {
        +    "required": [
        +      "action"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "tool"
        +    ]
        +  }
        +]
      • removedOutput schema / properties / next_step / required
        Removed value: -[
        -  "action"
        -]
    • Changedresolve_deep_point4 fields changed
      • addedInput schema / oneOf
        Added value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "points"
        +      ]
        +    },
        +    "required": [
        +      "lat",
        +      "lon"
        +    ]
        +  },
        +  {
        +    "not": {
        +      "anyOf": [
        +        {
        +          "required": [
        +            "lat"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "lon"
        +          ]
        +        }
        +      ]
        +    },
        +    "required": [
        +      "points"
        +    ]
        +  }
        +]
      • addedInput schema / properties / batch_id
        Added value: +{
        +  "description": "Optional caller-supplied batch id echoed for point arrays.",
        +  "type": "string"
        +}
      • addedInput schema / properties / points
        Added value: +{
        +  "description": "Points already known to fall within the supplied shallow_loc_id scope.",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "id": {
        +        "anyOf": [
        +          {
        +            "type": "integer"
        +          },
        +          {
        +            "type": "string"
        +          }
        +        ]
        +      },
        +      "lat": {
        +        "maximum": 90,
        +        "minimum": -90,
        +        "type": "number"
        +      },
        +      "lon": {
        +        "maximum": 180,
        +        "minimum": -180,
        +        "type": "number"
        +      },
        +      "row_index": {
        +        "anyOf": [
        +          {
        +            "type": "integer"
        +          },
        +          {
        +            "type": "string"
        +          }
        +        ]
        +      }
        +    },
        +    "required": [
        +      "lat",
        +      "lon"
        +    ],
        +    "type": "object"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "lat",
        -  "lon",
        -  "shallow_loc_id"
        -]New value: +[
        +  "shallow_loc_id"
        +]
    • Removedresolve_deep_points
    • Changedresolve_point4 fields changed
      • addedInput schema / oneOf
        Added value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "points"
        +      ]
        +    },
        +    "required": [
        +      "lat",
        +      "lon"
        +    ]
        +  },
        +  {
        +    "not": {
        +      "anyOf": [
        +        {
        +          "required": [
        +            "lat"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "lon"
        +          ]
        +        }
        +      ]
        +    },
        +    "required": [
        +      "points"
        +    ]
        +  }
        +]
      • addedInput schema / properties / batch_id
        Added value: +{
        +  "description": "Optional caller-supplied batch id echoed for point arrays.",
        +  "type": "string"
        +}
      • addedInput schema / properties / points
        Added value: +{
        +  "description": "Bounded WGS84 point array. Use top-level lat/lon instead for one point.",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "id": {
        +        "anyOf": [
        +          {
        +            "type": "integer"
        +          },
        +          {
        +            "type": "string"
        +          }
        +        ]
        +      },
        +      "lat": {
        +        "maximum": 90,
        +        "minimum": -90,
        +        "type": "number"
        +      },
        +      "lon": {
        +        "maximum": 180,
        +        "minimum": -180,
        +        "type": "number"
        +      },
        +      "row_index": {
        +        "anyOf": [
        +          {
        +            "type": "integer"
        +          },
        +          {
        +            "type": "string"
        +          }
        +        ]
        +      }
        +    },
        +    "required": [
        +      "lat",
        +      "lon"
        +    ],
        +    "type": "object"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "lat",
        -  "lon"
        -]
    • Removedresolve_points
  11. 1 tool update
    • Changedget_pack1 field changed
      • addedInput schema / properties / detail
        Added value: +{
        +  "default": "lite",
        +  "description": "Use lite for normal discovery. Use full only for one selected pack when its complete public metadata is required.",
        +  "enum": [
        +    "lite",
        +    "full"
        +  ],
        +  "type": "string"
        +}

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.