Skip to main content
Glama

Get Disruptions

get_disruptions
Read-onlyIdempotent

Lists closures, detours and moved stops the city announced that are in force today: affected routes, the streets a detour uses, routes to take instead of a suspended one, reason, dates and source. The GTFS stop lists and timetables do not reflect any of this. Use when the user asks about road works, closures, detours, or why a route is not running or a vehicle is off its usual path. Pass route and/or stop_id to get only the entries touching them; omit both for the whole city.

Input Schema

NameRequiredDescriptionDefault
routeNoOnly disruptions on this route, by short name (e.g. "Т30", "А34"). Omit for all routes.
stop_idNoOnly disruptions at this stop. Omit for all stops.

Output Schema

NameRequiredDescriptionDefault
dataYes
viewYes
ui_blocksYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • removedOutput schema / properties / ui_blocks / items / properties / data / properties / center / additionalItems
      Removed value: -false
    • changedOutput schema / properties / ui_blocks / items / properties / data / properties / center / items
      Previous value: -[
      -  {
      -    "type": [
      -      "number",
      -      "null"
      -    ]
      -  },
      -  {
      -    "type": [
      -      "number",
      -      "null"
      -    ]
      -  }
      -]New value: +false
    • addedOutput schema / properties / ui_blocks / items / properties / data / properties / center / prefixItems
      Added value: +[
      +  {
      +    "type": [
      +      "number",
      +      "null"
      +    ]
      +  },
      +  {
      +    "type": [
      +      "number",
      +      "null"
      +    ]
      +  }
      +]
  2. Changed2 schema fields changed
    • addedOutput schema / properties / data / properties / disruptions / items / properties / area
      Added value: +{
      +  "properties": {
      +    "lat": {
      +      "type": "number"
      +    },
      +    "lng": {
      +      "type": "number"
      +    },
      +    "radius_meters": {
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "lat",
      +    "lng",
      +    "radius_meters"
      +  ],
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / data / properties / disruptions / items / required
      Previous value: -[
      -  "id",
      -  "kind",
      -  "reason",
      -  "since",
      -  "until",
      -  "until_text",
      -  "routes",
      -  "stops",
      -  "alternatives",
      -  "detour",
      -  "note",
      -  "source",
      -  "url"
      -]New value: +[
      +  "id",
      +  "kind",
      +  "reason",
      +  "since",
      +  "until",
      +  "until_text",
      +  "routes",
      +  "stops",
      +  "alternatives",
      +  "detour",
      +  "area",
      +  "note",
      +  "source",
      +  "url"
      +]
  3. Changed17 schema fields changed
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedInput schema / properties / stop_id / maximum
      Removed value: -9007199254740991
    • removedOutput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedOutput schema / additionalProperties
      Removed value: -false
    • removedOutput schema / properties / data / additionalProperties
      Removed value: -false
    • removedOutput schema / properties / data / properties / disruptions / items / additionalProperties
      Removed value: -false
    • removedOutput schema / properties / data / properties / disruptions / items / properties / alternatives / items / additionalProperties
      Removed value: -false
    • removedOutput schema / properties / data / properties / disruptions / items / properties / detour / anyOf
      Removed value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "skipped_stops": {
      -        "items": {
      -          "maximum": 9007199254740991,
      -          "minimum": -9007199254740991,
      -          "type": "integer"
      -        },
      -        "type": "array"
      -      },
      -      "via": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      }
      -    },
      -    "required": [
      -      "via",
      -      "skipped_stops"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / data / properties / disruptions / items / properties / detour / properties
      Added value: +{
      +  "skipped_stops": {
      +    "items": {
      +      "type": "integer"
      +    },
      +    "type": "array"
      +  },
      +  "via": {
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  }
      +}
    • addedOutput schema / properties / data / properties / disruptions / items / properties / detour / required
      Added value: +[
      +  "via",
      +  "skipped_stops"
      +]
    • addedOutput schema / properties / data / properties / disruptions / items / properties / detour / type
      Added value: +[
      +  "object",
      +  "null"
      +]
    • removedOutput schema / properties / data / properties / disruptions / items / properties / routes / items / additionalProperties
      Removed value: -false
    • removedOutput schema / properties / data / properties / disruptions / items / properties / stops / items / maximum
      Removed value: -9007199254740991
    • removedOutput schema / properties / data / properties / disruptions / items / properties / stops / items / minimum
      Removed value: --9007199254740991
    • removedOutput schema / properties / ui_blocks / items / additionalProperties
      Removed value: -false
    • removedOutput schema / properties / ui_blocks / items / properties / data / additionalProperties
      Removed value: -false
    • removedOutput schema / properties / ui_blocks / items / properties / data / properties / layers / additionalProperties
      Removed value: -false
  4. Added
  5. Removed
  6. Added

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent and open-world, so the description's added value is the temporal scope ('in force today'), the source being city announcements, and the warning that GTFS data does not reflect any of it. It does not discuss result volume or freshness beyond 'today', which keeps it just short of a 5 for an open-world read tool.

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?

Three sentences, front-loaded with the resource and its scope, then the usage condition, then the filtering mechanics. Dense but every clause carries information an agent needs; nothing is repeated from the schema or annotations.

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

Completeness5/5

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

With an output schema present, the description need not enumerate return values, and it still names the key fields. Two optional, fully documented parameters plus read-only annotations mean nothing needed for a correct call 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 coverage is 100%, so the baseline is 3, but the description adds combination semantics the schema does not: filters are conjunctive with the concept of 'entries touching them' and omitting both returns the whole city. That is genuine meaning beyond the per-parameter text, though it adds no format examples.

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

Purpose5/5

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

States a specific verb and resource (lists closures, detours and moved stops) plus the exact scope ('in force today') and the payload (affected routes, detour streets, substitute routes, reason, dates, source). An agent can immediately tell this apart from timetable/static siblings like get_route_static or get_route_realtime.

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

Usage Guidelines5/5

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

Gives explicit triggering conditions ('road works, closures, detours, or why a route is not running or a vehicle is off its usual path') and explicitly rules out the GTFS stop lists and timetables, which routes the agent away from the static siblings. The filtering instruction ('pass route and/or stop_id... omit both for the whole city') further tells it how to scope the call.

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.