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 grouped from the outlets covering it 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 links to its source articles (outlet, headline, URL and date). It returns up to 100 of those links, one per outlet; 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. Results carry canonical clstr.news links. (Requires sign-in, or a free API key: https://clstr.news/developers)

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": {
      "cluster_id": "<cluster_id>"
    },
    "name": "get_cluster"
  }
}

Input 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

NameRequiredDescriptionDefault
dataYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / data / properties / articles / description
      Previous value: -"The underlying source articles."New value: +"Links to its source articles (outlet, headline, URL and date)."
  2. Changed1 schema field changed
    • changedOutput schema / properties / data / properties / url / description
      Previous value: -"Canonical clstr.news URL. Cite this."New value: +"Canonical clstr.news URL."
  3. 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"
      +]
  4. 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"
      +}
  5. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already mark this read-only and idempotent, but the description adds real behavioral context beyond that: it lists the returned fields, discloses the 100-link truncation cap with the articles_truncated flag, clarifies that sources/articles_total are unaffected by the articles parameter, and states the auth requirement plus the canonical clstr.news links.

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 purpose, then returns, then usage, then auth — a logical order with no filler sentences. Slightly long and the truncation point is restated twice, but every clause carries information an agent would otherwise have to guess.

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?

Even though an output schema exists, the description covers everything an agent needs to call it correctly: what it returns, truncation behavior, auth requirement, and id provenance. No material gap remains for a two-parameter, read-only tool.

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 baseline is 3; the description adds meaning by explaining that the article cap is a truncation of the link list while the reported source count remains whole. It does not, however, elaborate on cluster_id format (slug vs id) beyond what the schema already says.

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 ('Get one news event in detail') and then defines the underlying concept ('A cluster is a single real-world event grouped from the outlets covering it and deduplicated'), which is exactly the ambiguity a name like get_cluster creates. Clearly separable from siblings like get_situation_timeline or 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 Guidelines5/5

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

Explicitly says when to use it ('when the user wants the specifics of one event') and, crucially, where the cluster_id comes from: search_situations, get_situation_timeline, or a clstr.news URL. That is the actual prerequisite an agent needs, so nothing is left to inference.

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