search_articles

Pack: gdelt · Endpoint: https://gateway.pipeworx.io/gdelt/mcp

News coverage of a topic from ~100k sources in 65 languages, via GDELT.

Tool description as the model sees it

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.

Parameters

NameTypeRequiredDescription
querystringyesGDELT query string
timespanstringnoLookback window: e.g., “24h”, “7d”, “1m”, “custom” (paired with startdatetime/enddatetime). Default 7d.
startdatetimestringnoYYYYMMDDHHMMSS (UTC) — only with timespan=custom
enddatetimestringnoYYYYMMDDHHMMSS (UTC) — only with timespan=custom
sortstringnoHybridRel (default) | DateDesc | DateAsc | ToneDesc | ToneAsc
max_recordsnumbernoResults to return (1-250, default 25)

Example call

Arguments

{
  "query": "sourcecountry:US theme:TERROR",
  "timespan": "7d",
  "max_records": 25
}

curl

curl -X POST https://gateway.pipeworx.io/gdelt/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_articles","arguments":{"query":"sourcecountry:US theme:TERROR","timespan":"7d","max_records":25}}}'

TypeScript (@pipeworx/sdk)

import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();

const result = await pipeworx.call('search_articles', {
  "query": "sourcecountry:US theme:TERROR",
  "timespan": "7d",
  "max_records": 25
});

More examples

{
  "query": "\"artificial intelligence\" near:San Francisco~100",
  "timespan": "custom",
  "startdatetime": "20240101000000",
  "enddatetime": "20240115000000",
  "sort": "DateDesc",
  "max_records": 50
}

Response shape

Always returns: query, timespan, returned, articles

FieldTypeDescription
querystringThe query string used for search
timespanstringLookback window applied (default 7d)
returnednumberNumber of articles returned
articlesarrayList of matching articles
Full JSON Schema
{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "The query string used for search"
    },
    "timespan": {
      "type": "string",
      "description": "Lookback window applied (default 7d)"
    },
    "returned": {
      "type": "number",
      "description": "Number of articles returned"
    },
    "articles": {
      "type": "array",
      "description": "List of matching articles",
      "items": {
        "type": "object",
        "properties": {
          "url": {
            "type": [
              "string",
              "null"
            ],
            "description": "Article URL"
          },
          "title": {
            "type": [
              "string",
              "null"
            ],
            "description": "Article headline"
          },
          "seen_at": {
            "type": [
              "string",
              "null"
            ],
            "description": "Date article was indexed"
          },
          "domain": {
            "type": [
              "string",
              "null"
            ],
            "description": "News source domain"
          },
          "language": {
            "type": [
              "string",
              "null"
            ],
            "description": "Article language code"
          },
          "source_country": {
            "type": [
              "string",
              "null"
            ],
            "description": "Country code of news source"
          },
          "tone": {
            "type": [
              "number",
              "null"
            ],
            "description": "Sentiment tone (-100 negative to +100 positive)"
          },
          "image": {
            "type": [
              "string",
              "null"
            ],
            "description": "Social media image URL"
          }
        },
        "required": [
          "url",
          "title",
          "seen_at",
          "domain",
          "language",
          "source_country",
          "tone",
          "image"
        ]
      }
    }
  },
  "required": [
    "query",
    "timespan",
    "returned",
    "articles"
  ]
}

Connect

Add this to your MCP client config, or use one-click install buttons:

{
  "mcpServers": {
    "gdelt": {
      "url": "https://gateway.pipeworx.io/gdelt/mcp"
    }
  }
}

See Getting Started for client-specific install steps.

Regenerated from source · build September 15, 2026