Skip to main content
Glama

Criora: climate & disaster risk for any place

Hazard events in the map's view

get_map_events
Read-onlyIdempotent

The hazard events the interactive map loads when the reader pans or zooms to a new view. The map calls it in clients that display it; to list the hazards near a place, use get_hazards_near.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "latitude": "<latitude>",
      "longitude": "<longitude>",
      "radius_km": "<radius_km>"
    },
    "name": "get_map_events"
  }
}

Input Schema

NameRequiredDescriptionDefault
latitudeYesLatitude of the view's centre
longitudeYesLongitude of the view's centre
radius_kmYesHow far the view reaches from its centre, in km

Output Schema

NameRequiredDescriptionDefault
eventsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed58 schema fields changed
    • removedOutput schema / $defs / MapEvent / description
      Removed value: -"An event as the page draws it, from whichever read found it: a search near a place gives its\ndistance, a tapped warning read by its id gives none."
    • removedOutput schema / $defs / MapEvent / properties / active_at / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / MapEvent / properties / active_at / default
      Removed value: -null
    • removedOutput schema / $defs / MapEvent / properties / active_at / description
      Removed value: -"The latest moment the source reports it active"
    • addedOutput schema / $defs / MapEvent / properties / active_at / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / MapEvent / properties / area / default
      Removed value: -false
    • removedOutput schema / $defs / MapEvent / properties / area / description
      Removed value: -"Whether the event covers an area (a warning's, a storm's cone, a modelled forecast's)"
    • removedOutput schema / $defs / MapEvent / properties / bounds / default
      Removed value: -null
    • removedOutput schema / $defs / MapEvent / properties / bounds / description
      Removed value: -"The area's box, west, south, east, north, which the map frames the event on"
    • removedOutput schema / $defs / MapEvent / properties / distance_km / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / MapEvent / properties / distance_km / default
      Removed value: -null
    • removedOutput schema / $defs / MapEvent / properties / distance_km / description
      Removed value: -"From the place the map is of; none for a tapped event"
    • addedOutput schema / $defs / MapEvent / properties / distance_km / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / $defs / MapEvent / properties / event_date / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / MapEvent / properties / event_date / default
      Removed value: -null
    • addedOutput schema / $defs / MapEvent / properties / event_date / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / MapEvent / properties / expires_at / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / MapEvent / properties / expires_at / default
      Removed value: -null
    • removedOutput schema / $defs / MapEvent / properties / expires_at / description
      Removed value: -"When the source says it ends; null when it states none"
    • addedOutput schema / $defs / MapEvent / properties / expires_at / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / MapEvent / properties / kind / default
      Removed value: -"occurrence"
    • removedOutput schema / $defs / MapEvent / properties / kind / description
      Removed value: -"occurrence, warning or status"
    • removedOutput schema / $defs / MapEvent / properties / label / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / MapEvent / properties / label / default
      Removed value: -null
    • addedOutput schema / $defs / MapEvent / properties / label / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / MapEvent / properties / nature / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / MapEvent / properties / nature / default
      Removed value: -null
    • addedOutput schema / $defs / MapEvent / properties / nature / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / MapEvent / properties / onset_at / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / MapEvent / properties / onset_at / default
      Removed value: -null
    • removedOutput schema / $defs / MapEvent / properties / onset_at / description
      Removed value: -"When a warned hazard begins; null when the source states none"
    • addedOutput schema / $defs / MapEvent / properties / onset_at / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / MapEvent / properties / severity / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / MapEvent / properties / severity / default
      Removed value: -null
    • addedOutput schema / $defs / MapEvent / properties / severity / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / MapEvent / properties / severity_rank / anyOf
      Removed value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / MapEvent / properties / severity_rank / default
      Removed value: -null
    • removedOutput schema / $defs / MapEvent / properties / severity_rank / description
      Removed value: -"Criora Severity, 0 to 100, which the map sizes a mark by"
    • addedOutput schema / $defs / MapEvent / properties / severity_rank / type
      Added value: +[
      +  "integer",
      +  "null"
      +]
    • removedOutput schema / $defs / MapEvent / properties / source / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / MapEvent / properties / source / default
      Removed value: -null
    • addedOutput schema / $defs / MapEvent / properties / source / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / MapEvent / properties / value / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / MapEvent / properties / value / default
      Removed value: -null
    • addedOutput schema / $defs / MapEvent / properties / value / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / $defs / MapEvent / properties / value_normalized / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / MapEvent / properties / value_normalized / default
      Removed value: -null
    • addedOutput schema / $defs / MapEvent / properties / value_normalized / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / $defs / MapEvent / properties / value_text / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / MapEvent / properties / value_text / default
      Removed value: -null
    • addedOutput schema / $defs / MapEvent / properties / value_text / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / MapEvent / properties / value_unit / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / MapEvent / properties / value_unit / default
      Removed value: -null
    • addedOutput schema / $defs / MapEvent / properties / value_unit / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / MapEvent / properties / visible_hours / anyOf
      Removed value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / MapEvent / properties / visible_hours / default
      Removed value: -null
    • removedOutput schema / $defs / MapEvent / properties / visible_hours / description
      Removed value: -"Hours from its latest activity the map draws it for, where that depends on the event; null where it is its type's"
    • addedOutput schema / $defs / MapEvent / properties / visible_hours / type
      Added value: +[
      +  "integer",
      +  "null"
      +]
  2. Changed30 schema fields changed
    • removedInput schema / properties / latitude / title
      Removed value: -"Latitude"
    • removedInput schema / properties / longitude / title
      Removed value: -"Longitude"
    • removedInput schema / properties / radius_km / title
      Removed value: -"Radius Km"
    • removedInput schema / title
      Removed value: -"get_map_eventsArguments"
    • removedOutput schema / $defs / MapEvent / properties / active_at / title
      Removed value: -"Active At"
    • changedOutput schema / $defs / MapEvent / properties / area / description
      Previous value: -"Whether the event covers an area (a warning's, a storm's cone)"New value: +"Whether the event covers an area (a warning's, a storm's cone, a modelled forecast's)"
    • removedOutput schema / $defs / MapEvent / properties / area / title
      Removed value: -"Area"
    • addedOutput schema / $defs / MapEvent / properties / bounds
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "type": "number"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "The area's box, west, south, east, north, which the map frames the event on"
      +}
    • removedOutput schema / $defs / MapEvent / properties / distance_km / title
      Removed value: -"Distance Km"
    • removedOutput schema / $defs / MapEvent / properties / event_date / title
      Removed value: -"Event Date"
    • removedOutput schema / $defs / MapEvent / properties / expires_at / title
      Removed value: -"Expires At"
    • removedOutput schema / $defs / MapEvent / properties / id / title
      Removed value: -"Id"
    • removedOutput schema / $defs / MapEvent / properties / kind / title
      Removed value: -"Kind"
    • removedOutput schema / $defs / MapEvent / properties / label / title
      Removed value: -"Label"
    • removedOutput schema / $defs / MapEvent / properties / lat / title
      Removed value: -"Lat"
    • removedOutput schema / $defs / MapEvent / properties / lon / title
      Removed value: -"Lon"
    • removedOutput schema / $defs / MapEvent / properties / nature / title
      Removed value: -"Nature"
    • addedOutput schema / $defs / MapEvent / properties / onset_at
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "When a warned hazard begins; null when the source states none"
      +}
    • removedOutput schema / $defs / MapEvent / properties / severity / title
      Removed value: -"Severity"
    • addedOutput schema / $defs / MapEvent / properties / severity_rank
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Criora Severity, 0 to 100, which the map sizes a mark by"
      +}
    • removedOutput schema / $defs / MapEvent / properties / source / title
      Removed value: -"Source"
    • removedOutput schema / $defs / MapEvent / properties / type / title
      Removed value: -"Type"
    • removedOutput schema / $defs / MapEvent / properties / value / title
      Removed value: -"Value"
    • removedOutput schema / $defs / MapEvent / properties / value_normalized / title
      Removed value: -"Value Normalized"
    • removedOutput schema / $defs / MapEvent / properties / value_text / title
      Removed value: -"Value Text"
    • removedOutput schema / $defs / MapEvent / properties / value_unit / title
      Removed value: -"Value Unit"
    • addedOutput schema / $defs / MapEvent / properties / visible_hours
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Hours from its latest activity the map draws it for, where that depends on the event; null where it is its type's"
      +}
    • removedOutput schema / $defs / MapEvent / title
      Removed value: -"MapEvent"
    • removedOutput schema / properties / events / title
      Removed value: -"Events"
    • removedOutput schema / title
      Removed value: -"MapEvents"
  3. Changed17 schema fields changed
    • addedOutput schema / $defs / MapEvent / description
      Added value: +"An event as the page draws it, from whichever read found it: a search near a place gives its\ndistance, a tapped warning read by its id gives none."
    • addedOutput schema / $defs / MapEvent / properties / active_at
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "The latest moment the source reports it active",
      +  "title": "Active At"
      +}
    • addedOutput schema / $defs / MapEvent / properties / area
      Added value: +{
      +  "default": false,
      +  "description": "Whether the event covers an area (a warning's, a storm's cone)",
      +  "title": "Area",
      +  "type": "boolean"
      +}
    • addedOutput schema / $defs / MapEvent / properties / distance_km / default
      Added value: +null
    • addedOutput schema / $defs / MapEvent / properties / distance_km / description
      Added value: +"From the place the map is of; none for a tapped event"
    • addedOutput schema / $defs / MapEvent / properties / event_date / default
      Added value: +null
    • addedOutput schema / $defs / MapEvent / properties / expires_at
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "When the source says it ends; null when it states none",
      +  "title": "Expires At"
      +}
    • addedOutput schema / $defs / MapEvent / properties / kind
      Added value: +{
      +  "default": "occurrence",
      +  "description": "occurrence, warning or status",
      +  "title": "Kind",
      +  "type": "string"
      +}
    • addedOutput schema / $defs / MapEvent / properties / label / default
      Added value: +null
    • addedOutput schema / $defs / MapEvent / properties / nature / default
      Added value: +null
    • addedOutput schema / $defs / MapEvent / properties / severity / default
      Added value: +null
    • addedOutput schema / $defs / MapEvent / properties / source / default
      Added value: +null
    • addedOutput schema / $defs / MapEvent / properties / value / default
      Added value: +null
    • addedOutput schema / $defs / MapEvent / properties / value_normalized / default
      Added value: +null
    • addedOutput schema / $defs / MapEvent / properties / value_text / default
      Added value: +null
    • addedOutput schema / $defs / MapEvent / properties / value_unit / default
      Added value: +null
    • changedOutput schema / $defs / MapEvent / required
      Previous value: -[
      -  "id",
      -  "type",
      -  "nature",
      -  "lat",
      -  "lon",
      -  "severity",
      -  "value",
      -  "value_unit",
      -  "value_normalized",
      -  "value_text",
      -  "event_date",
      -  "source",
      -  "label",
      -  "distance_km"
      -]New value: +[
      +  "id",
      +  "type",
      +  "lat",
      +  "lon"
      +]
  4. Added

TDQS

A3.6/5.0
Behavior3/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 safety is covered. The description adds the meaningful behavioral fact that results correspond to whatever the map loads for a viewport, implying viewport-bounded results, but says nothing about coverage limits, rate limits, or whether results differ from a plain radius search beyond routing.

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?

Two short sentences with the routing rule placed last where it is easy to find, and no filler. The opening noun phrase lacks a verb and the clause about clients calling it is slightly awkward, which costs a point but not readability.

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 explain return values, and the three required parameters are fully documented in the schema, so what remains — what the tool represents and its alternative — is covered. The gap is that an agent cannot tell from the description alone when a viewport query beats the other map/hazard siblings.

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

Parameters3/5

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

Schema coverage is 100% with bounds and per-field descriptions for latitude, longitude, and radius_km, so the schema carries the parameter semantics. The description only reinforces the 'view centre/radius' framing and adds no syntax or formatting detail beyond the schema, which is the baseline-3 case.

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 the resource precisely — the hazard events loaded for the map's current view, driven by pan/zoom — and explicitly distinguishes it from get_hazards_near. It is phrased as a noun phrase rather than a verb+resource action, and it never distinguishes itself from the singular sibling get_map_event or get_map_warnings, so it is clear but not fully disambiguated.

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 an explicit routing rule: to list hazards near a place, use get_hazards_near instead. However, the primary 'when' is framed from the map client's perspective ('The map calls it in clients that display it') rather than telling an agent when a viewport-style query is the right choice, and it leaves get_map_event/get_map_warnings overlaps unaddressed.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.