Skip to main content
Glama

Get a news event

get_cluster
Read-onlyIdempotent

Get one news event in detail. A cluster is a single real-world event assembled from many outlets covering the same happening and deduplicated into one item, so you get one event rather than 20 near-duplicate headlines. Returns its summary, a significance score (1 to 10, where 8 and above is exceptional), a source count, the situation it belongs to if any, and its underlying source articles with links. It returns up to 100 representative articles, one per source; sources and articles_total are the full count, and articles_truncated says whether the list was cut. Use this when the user wants the specifics of one event. Get a cluster id from search_situations, get_situation_timeline, or a clstr.news URL. Cite the returned URLs. (Requires sign-in, or a free API key: https://clstr.news/developers)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
articlesNoHow many source articles to return, 1 to 100. Default 100. Lower it when you only need a few citations; the source count is reported separately and is unaffected.
cluster_idYesCluster id or slug (from timelines, search, or clstr.news URLs).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / articles
      Added value: +{
      +  "description": "How many source articles to return, 1 to 100. Default 100. Lower it when you only need a few citations; the source count is reported separately and is unaffected.",
      +  "maximum": 100,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / data / properties / articles_total
      Added value: +{
      +  "description": "How many outlets are behind this event in total. `articles` is capped, this is not.",
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / data / properties / articles_truncated
      Added value: +{
      +  "description": "True when `articles` holds fewer entries than `articles_total`.",
      +  "type": "boolean"
      +}
    • changedOutput schema / properties / data / required
      Previous value: -[
      -  "articles"
      -]New value: +[
      +  "articles",
      +  "articles_total",
      +  "articles_truncated"
      +]
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "data": {
      +      "properties": {
      +        "articles": {
      +          "description": "The underlying source articles.",
      +          "items": {
      +            "properties": {
      +              "published_at": {
      +                "description": "ISO-8601 UTC timestamp.",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "source_host": {
      +                "type": "string"
      +              },
      +              "title": {
      +                "type": "string"
      +              },
      +              "url": {
      +                "description": "The outlet's own URL, null when it could not be published.",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "category": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "countries": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "id": {
      +          "type": "string"
      +        },
      +        "keywords": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "merged_into_shown": {
      +          "description": "Present when a merged-away event was served as its successor.",
      +          "type": "boolean"
      +        },
      +        "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"
      +          ]
      +        },
      +        "situation": {
      +          "properties": {
      +            "cluster_count": {
      +              "minimum": 0,
      +              "type": "integer"
      +            },
      +            "id": {
      +              "type": "string"
      +            },
      +            "slug": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "title": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            }
      +          },
      +          "type": [
      +            "object",
      +            "null"
      +          ]
      +        },
      +        "slug": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "sources": {
      +          "description": "How many outlets are behind this event.",
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "summary": {
      +          "description": "The short summary.",
      +          "type": "string"
      +        },
      +        "summary_full": {
      +          "description": "The full narrative 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"
      +        }
      +      },
      +      "required": [
      +        "articles"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "data"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.6/5.0
Behavior5/5

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

This description goes well beyond the readOnly/idempotent annotations by disclosing return contents (summary, significance score, source count, situation, source articles), truncation behavior via `articles_truncated`, the 'one per source' article selection, and the non-obvious fact that `sources` and `articles_total` are full counts. It also discloses an auth requirement (sign-in or free API key). No contradiction with 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 longer than average but every sentence carries information: purpose, conceptual model, return payload, truncation semantics, invocation context, auth, and citation instruction. It is well-structured and front-loaded with the primary action. Only minor trimming of the '20 near-duplicate headlines' illustration would make it tighter.

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?

Given the read-only, idempotent annotations, an output schema, and only two parameters with 100% schema coverage, the description completes the picture: when to use it, where to get the id, what the response contains, how truncation works, and what authentication is required. Nothing needed to invoke it correctly 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 schema already documents both parameters. The description adds practical guidance beyond the schema: lowering `articles` when only a few citations are needed, clarifying that the source count is reported separately and unaffected, and reinforcing where `cluster_id` values come from. This is meaningful added value over the baseline of 3.

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 opens with a clear verb+resource: 'Get one news event in detail.' It then defines what a cluster is (one deduplicated event) and contrasts it with the situation-level objects used by sibling tools, explicitly noting the situation it belongs to 'if any.' This fully distinguishes get_cluster from get_situation_timeline and search_situations.

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 states the key condition: 'Use this when the user wants the specifics of one event.' It also provides concrete paths to obtain a cluster id (search_situations, get_situation_timeline, or a clstr.news URL). However, it does not explicitly state when to prefer the sibling situation-level tools instead, leaving a small gap in alternative selection.

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