Skip to main content
Glama

Get a situation timeline

get_situation_timeline
Read-onlyIdempotent

Get the full chronological timeline of one situation. A situation is an ongoing storyline (story arc) that groups related news events over time; it carries a maintained summary plus every event in order, so you see not just what happened but how it developed. Each event is a cluster (one happening assembled from many outlets and deduplicated) with its date, a significance score (1 to 10, where 8 and above is exceptional), a source count, and a canonical clstr.news link. Use this to brief on a story's history or answer 'how did this develop'. Get a situation id from search_situations or get_top_situations, or from a clstr.news URL. An id that was retired when two situations merged resolves to the successor, flagged with merged_into_shown. Cite the returned URLs.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
situation_idYesSituation id or slug (from other tools or clstr.news URLs).
timeline_limitNoTimeline entries to return, newest first. Default 50, and 50 is also the maximum without an API key. A free key raises it to 500: https://clstr.news/developers
timeline_beforeNoCursor: cluster id (a UUID) from a previous page, to continue past it.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / timeline_before / description
      Previous value: -"Cursor: cluster id from a previous page to continue past."New value: +"Cursor: cluster id (a UUID) from a previous page, to continue past it."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "data": {
      +      "properties": {
      +        "categories": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "category": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "cluster_count": {
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "day_span": {
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "first_seen": {
      +          "description": "ISO-8601 UTC timestamp.",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "id": {
      +          "type": "string"
      +        },
      +        "is_timeline_page": {
      +          "description": "True on a timeline_before continuation page, which omits the header fields.",
      +          "type": "boolean"
      +        },
      +        "last_updated": {
      +          "description": "ISO-8601 UTC timestamp.",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "latest_cluster_title": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "merged_into_shown": {
      +          "description": "Present when a retired id was served as its successor.",
      +          "type": "boolean"
      +        },
      +        "requested_id": {
      +          "description": "The retired id that was asked for, alongside merged_into_shown.",
      +          "type": "string"
      +        },
      +        "significance_score": {
      +          "description": "AI-generated significance, 1 to 10, where 8 and above is exceptional.",
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        },
      +        "slug": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "source_count": {
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "status": {
      +          "description": "ACTIVE or QUIET.",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "summary": {
      +          "description": "The maintained situation summary, in full.",
      +          "type": "string"
      +        },
      +        "summary_preview": {
      +          "type": "string"
      +        },
      +        "timeline": {
      +          "description": "Member events, newest first.",
      +          "items": {
      +            "properties": {
      +              "category": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "countries": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "id": {
      +                "type": "string"
      +              },
      +              "published_at": {
      +                "description": "ISO-8601 UTC timestamp.",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "significance_score": {
      +                "description": "AI-generated significance, 1 to 10, where 8 and above is exceptional.",
      +                "type": [
      +                  "integer",
      +                  "null"
      +                ]
      +              },
      +              "slug": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "sources": {
      +                "description": "How many outlets are behind this event.",
      +                "minimum": 0,
      +                "type": "integer"
      +              },
      +              "summary": {
      +                "type": "string"
      +              },
      +              "title": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "updated_at": {
      +                "description": "ISO-8601 UTC timestamp.",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "url": {
      +                "description": "Canonical clstr.news URL. Cite this.",
      +                "type": "string"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "timeline_cursor": {
      +          "properties": {
      +            "has_more": {
      +              "type": "boolean"
      +            },
      +            "next_before": {
      +              "description": "Pass back as timeline_before for the next page.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "remaining_count": {
      +              "minimum": 0,
      +              "type": "integer"
      +            },
      +            "total_count": {
      +              "type": [
      +                "integer",
      +                "null"
      +              ]
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "title": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "url": {
      +          "description": "Canonical clstr.news URL. Cite this.",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "is_timeline_page",
      +        "timeline",
      +        "timeline_cursor"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "data"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so safety is covered. The description adds critical behavioral context: the situation's definition (story arc with summary and ordered events), event composition (clusters from deduplicated outlets), significance scoring, and the merged_into_shown flag for retired IDs. While it doesn't detail output shape (handled by output schema), it covers key behavioral nuances beyond annotations.

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

Conciseness4/5

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

The description is moderately lengthy but information-dense, front-loading the core purpose and then clarifying terms and usage. Every sentence adds value: definition, event structure, use cases, how to get IDs, merged handling, and citation advice. Slightly verbose for a timeline tool, but acceptable given the need to explain the situation concept and edge cases.

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?

The tool sits in a rich context: it has a detailed input schema, output schema, and annotations covering safety and idempotency. The description fully bridges the remaining gaps: it explains what a situation is, how to obtain the ID from siblings, handles the merged-situation case, and tells the agent to cite URLs. Nothing an agent needs to correctly invoke and interpret this tool is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters (situation_id, timeline_limit, timeline_before) are already fully described in the schema. The description adds no extra parameter-level detail beyond what the schema provides, such as the semantics of the cursor or date format. Therefore, a baseline 3 is appropriate; the schema handles the heavy lifting.

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

Purpose5/5

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

The description clearly states the tool's purpose: getting the full chronological timeline of a situation, and defines what a situation is. It distinguishes itself from siblings by focusing on timeline/history retrieval, while siblings like search_situations and get_top_situations are for discovery, and get_cluster is for individual events. The description explicitly tells the agent to get situation IDs from those sibling tools, further clarifying differentiation.

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?

The description explicitly says when to use this tool: to brief on a story's history or answer 'how did this develop'. It names the alternative tools to obtain the required ID (search_situations, get_top_situations, or a clstr.news URL) and mentions that merged situations resolve to a successor, which guides usage in edge cases. No ambiguity remains about prerequisites or invocation context.

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.

Resources