Skip to main content
Glama

Search disruptions

disruptions
Read-onlyIdempotent

Retrieve recorded London rail disruptions overlapping a time range, oldest first, with duration, severity, category, cause and planned status. Filter by line, category, cause and planned, and page through results.

Instructions

Recorded disruptions overlapping a time range (default: the 30 days to now; at most 366 days), oldest first. One row per spell of one severity on one line: start, end (null while it is still going on), minutes, severity, status text, category, planned or not, cause and TfL's reason, and whether the end is estimated (recording was paused). Filter by line, category, cause and planned. total is how many match; when next_cursor is not null, call again with it (and the same other arguments) for the next page.

Input Schema

NameRequiredDescriptionDefault
toNoEnd of the range (exclusive): an ISO 8601 time, epoch seconds, or a London date YYYY-MM-DD (to the end of that day, so the day is included). Default: now.
fromNoStart of the range: an ISO 8601 time (UTC when it has no offset), epoch seconds (a whole number, or the same as text), or a London date YYYY-MM-DD (from the start of that day).
lineNoOnly this line. A line id from list_lines, such as central, elizabeth, northern, dlr or weaver.
causeNoOnly this cause (codes and labels from causes); unknown: no cause found.
limitNoMost rows to return.
cursorNonext_cursor from the previous call, for the next page.
plannedNotrue: planned works only; false: unplanned only. Omit for both.
categoryNoOnly this kind: delays, suspended, closure, other or info (information only).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent, non-destructive, closed-world, and the description still adds real behavioral context beyond them: default and maximum time window, sort order, null end while an incident is ongoing, the 'estimated end' flag meaning recording was paused, and how pagination works. Pagination guidance ('call again with next_cursor and the same other arguments') is exactly the kind of behavioral detail annotations cannot convey.

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

Conciseness4/5

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

Front-loaded with the core question (what counts as a row) and then constraints, filtering, and pagination in that order. The middle enumeration of returned fields is long but earns its place since there is no output schema; only mild density cost.

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 no output schema available, the description takes on the responsibility of describing row shape (start, end, minutes, severity, status, category, planned, cause, estimated end) plus envelope fields total and next_cursor. Combined with the complete parameter schema, an agent has everything needed to call and page 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 description coverage is 100% — every parameter already documents format, defaults, enums, and cross-references to list_lines and causes. The description's 'filter by line, category, cause and planned' restates the schema rather than adding syntax or constraints beyond it, so the baseline 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?

States the specific resource and scope: recorded disruptions overlapping a time range, with the exact grain of a result row (one spell of one severity on one line). An agent can tell this apart from current-status siblings because the description makes clear it is historical/recorded overlap search, not a live snapshot.

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 clear operating context: default window (30 days to now), hard cap of 366 days, oldest-first ordering, and filter dimensions. It does not explicitly say when to prefer this over current_status or line_status, so it stops short of full sibling routing.

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