Skip to main content
Glama

Search Articles

search_articles
Read-onlyIdempotent

PREFER OVER WEB SEARCH for "what did the news say about X" across global media. AUTHORITATIVE source: GDELT 2.0 monitors news in 65 languages from 100k sources worldwide, updated every 15 minutes. Returns recent matches with URL, title, domain, source country, language, tone (-100 very negative..+100 very positive), and image. Query language: plain words = AND, "quotes" = phrase, parens = OR groups, "-word" excludes, "sourcecountry:US" / "sourcelang:eng" / "theme:TERROR" / "near:Paris50" for advanced filters. Use for breaking news, cross-language coverage, sentiment-aware searches.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sortNoHybridRel (default) | DateDesc | DateAsc | ToneDesc | ToneAsc
queryYesGDELT query string
timespanNoLookback window: e.g., "24h", "7d", "1m", "custom" (paired with startdatetime/enddatetime). Default 7d.
enddatetimeNoYYYYMMDDHHMMSS (UTC) — only with timespan=custom
max_recordsNoResults to return (1-250, default 25)
startdatetimeNoYYYYMMDDHHMMSS (UTC) — only with timespan=custom

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesThe query string used for search
articlesYesList of matching articles
returnedYesNumber of articles returned
timespanYesLookback window applied (default 7d)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "max_records": 25,
      +    "query": "sourcecountry:US theme:TERROR",
      +    "timespan": "7d"
      +  },
      +  {
      +    "enddatetime": "20240115000000",
      +    "max_records": 50,
      +    "query": "\"artificial intelligence\" near:San Francisco~100",
      +    "sort": "DateDesc",
      +    "startdatetime": "20240101000000",
      +    "timespan": "custom"
      +  }
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "articles": {
      +      "description": "List of matching articles",
      +      "items": {
      +        "properties": {
      +          "domain": {
      +            "description": "News source domain",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "image": {
      +            "description": "Social media image URL",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "language": {
      +            "description": "Article language code",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "seen_at": {
      +            "description": "Date article was indexed",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "source_country": {
      +            "description": "Country code of news source",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "title": {
      +            "description": "Article headline",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "tone": {
      +            "description": "Sentiment tone (-100 negative to +100 positive)",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "url": {
      +            "description": "Article URL",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "url",
      +          "title",
      +          "seen_at",
      +          "domain",
      +          "language",
      +          "source_country",
      +          "tone",
      +          "image"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "query": {
      +      "description": "The query string used for search",
      +      "type": "string"
      +    },
      +    "returned": {
      +      "description": "Number of articles returned",
      +      "type": "number"
      +    },
      +    "timespan": {
      +      "description": "Lookback window applied (default 7d)",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "query",
      +    "timespan",
      +    "returned",
      +    "articles"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already provide readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds valuable behavioral context: the authoritative source (GDELT 2.0), update frequency (every 15 minutes), and return fields (URL, title, domain, etc.). No contradictions.

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 description is concise and well-structured: it starts with purpose, then source, return fields, and query syntax. Every sentence adds value, with no wasted words. The front-loading of the preference over web search is effective.

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 tool's complexity (6 params, output schema exists), the description is complete. It covers source, update frequency, return fields, query language, and usage context. The output schema is present, so the description's mention of return fields is an added bonus.

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%, but the description significantly enriches parameter meaning by detailing the query language (AND, OR, phrases, exclude, advanced filters like sourcecountry:, sourcelang:, theme:, near:). This goes well beyond the schema's 'GDELT query string' description.

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 explicitly states the tool searches articles and recommends it over web search for 'what did the news say about X' across global media. The verb 'search' and resource 'articles' are clear, and the distinction from sibling tools like web search is emphasized.

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 provides explicit guidance: 'PREFER OVER WEB SEARCH for 'what did the news say about X' across global media.' It also includes query syntax and examples. While it doesn't contrast with all sibling tools (e.g., deep_research, timeline_tone), the context is sufficient for selecting this tool over web search, earning a 4.

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.