Skip to main content
Glama

NewsMCP

get_story

Read-only

Expand one story: full summary, classification, actors, and source links.

Use this after any search, when the user wants more than the digest line for a particular story. It is the only tool that can return a story's complete source list.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
api_keyNoOptional NewsMCP API key for this call; forwarded upstream as x-api-key. Only one request may be in flight at a time, so never call in parallel.
event_idYesThe `event_id` of a story from an earlier result (e.g. `evt_...`). A story folded into a more complete one answers 404 naming its replacement id — fetch that instead.
include_sourcesNoFalse (default) returns a sample of source links; True returns every one. A large story can carry several hundred, so leave this off unless the user asked for the full list. This is the only place the complete list is available — the search endpoints cap it.
response_formatNomarkdown (default), text, or json. Pass the format the user asked for rather than reformatting afterwards.markdown

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
sizeNoArticle count.
sectorNo
reportsNo
sourcesNoSource article URLs — a sample or the full list per verbosity.
abstractNo
entitiesNoKey actors named in the story.
event_idNoStable id, e.g. evt_...
headlineNo
last_seenNoISO 8601 UTC.
newsroomsNoIndependent newsrooms — the corroboration signal.
one_linerNo
event_typeNofamily.leaf taxonomy value, e.g. deals.merger_acquisition.
first_seenNoISO 8601 UTC.
content_typeNo
source_countNoPublisher domains, mirrors included.
language_countNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "description": "One synthesized news event, expanded.",
      +  "properties": {
      +    "abstract": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "content_type": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "entities": {
      +      "description": "Key actors named in the story.",
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "name": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "event_id": {
      +      "description": "Stable id, e.g. evt_...",
      +      "type": "string"
      +    },
      +    "event_type": {
      +      "description": "family.leaf taxonomy value, e.g. deals.merger_acquisition.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "first_seen": {
      +      "description": "ISO 8601 UTC.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "headline": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "language_count": {
      +      "type": [
      +        "integer",
      +        "null"
      +      ]
      +    },
      +    "last_seen": {
      +      "description": "ISO 8601 UTC.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "newsrooms": {
      +      "description": "Independent newsrooms — the corroboration signal.",
      +      "type": [
      +        "integer",
      +        "null"
      +      ]
      +    },
      +    "one_liner": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "reports": {
      +      "type": [
      +        "integer",
      +        "null"
      +      ]
      +    },
      +    "sector": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "size": {
      +      "description": "Article count.",
      +      "type": [
      +        "integer",
      +        "null"
      +      ]
      +    },
      +    "source_count": {
      +      "description": "Publisher domains, mirrors included.",
      +      "type": [
      +        "integer",
      +        "null"
      +      ]
      +    },
      +    "sources": {
      +      "description": "Source article URLs — a sample or the full list per verbosity.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observed

TDQS

A5/5.0
Behavior5/5

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

Annotations already mark the tool as read-only, open-world, and non-destructive, so the bar is lower. The description adds valuable behavior beyond that: folded stories can return a 404 naming a replacement id, source links are sampled by default and can number in the hundreds, and there is a concurrency warning about in-flight requests.

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?

The main description is two sentences with no filler: the first states the operation and contents, the second gives usage context. Supporting behavioral details live in the parameter descriptions where they belong, keeping the overall structure clean and front-loaded.

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 a rich schema, output schema present, and annotations already covering safety, the description adds the remaining operational context an agent needs: when to call it, why it is unique, how source lists behave, and how to handle 404 replacement ids. Nothing essential for invoking the tool correctly is missing.

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

Parameters5/5

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

Schema description coverage is 100%, so the baseline is 3, but the description adds substantial meaning beyond the schema: event_id has 404 replacement behavior, include_sources has a major trade-off (complete list only here, potentially hundreds of links), and response_format should match what the user asked for. This clearly exceeds the baseline.

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 specific verb-resource pair ('Expand one story') and lists exactly what is returned: full summary, classification, actors, and source links. It also distinguishes itself from search/digest tools by noting it is the only tool that can return a story's complete source list.

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 to use this after any search when the user wants more than the digest line for a particular story. It also names the key differentiator—complete source list is only available here—and the include_sources schema guidance reinforces when the full list should be left off.

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