Skip to main content
Glama

Server Details

Search and analyze global news coverage and US TV transcripts via the GDELT Project APIs.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over the last 24 hours
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
cyanheads/gdelt-mcp-server
GitHub Stars
10
Server Listing
@cyanheads/gdelt-mcp-server
ChatGPT
–
Claude
–

TDQS

A4.4/5.0

Scored across 10 tools

Disambiguation4/5

Each tool pairs a distinct resource with a distinct action (search articles, TV search/clips/context/breakdown, coverage timeline/breakdown, tone histogram, theme lookup, station list), and descriptions explicitly cross-reference to prevent confusion. Minor overlap remains between coverage_timeline and coverage_breakdown, and between tv_breakdown and search_tv, both of which return station-level series, though the prose differentiates them.

Naming Consistency5/5

Every tool follows the gdelt_ + verb_noun pattern (get_*, list_*, search_*) with snake_case throughout, and the noun clearly encodes the data domain (articles, themes, coverage, tone, tv_*). No mixing of conventions.

Tool Count5/5

Ten tools is well within the sweet spot for an analytics server, and each one covers a distinct data product (articles, TV transcripts, themes, time series, histograms, station metadata). None look redundant or filler.

Completeness4/5

The surface covers the core lifecycle: discover themes/stations, query articles and TV, then aggregate into timelines, breakdowns, tone histograms, and context vocabulary, plus paging via offset. Gaps are moderate rather than blocking — there is no entity/location (GKG) extraction, no domain/source discovery tool, and no events/geo API coverage, so some GDELT data products are unreachable.

Available Tools

10 tools
gdelt_get_coverage_breakdownGet GDELT Coverage BreakdownA
Read-only
Inspect

Break down news coverage volume over time by source language or source country, returning a multi-series time series (one series per language or country). Shows which countries or languages drove early vs. late coverage — useful for tracing how a story propagated geographically or across language communities. Returns the top 10 series ranked by the sum of their values and names every other series under otherSeriesLabels — pass any labels, ranked or not, as the series input to get only those series, complete. A response carries limit series (default 10, cap 75); when more remain it returns nextOffset — pass it back as offset with otherwise identical inputs for the next page. Values are normalized: each point is the topic's share of that source's media output, not an absolute article count, so values from different sources do not add up to a share. Small media markets with concentrated coverage therefore rank above large markets with diverse output — a high value means the topic dominated that source's coverage, not that it published the most articles. Use breakdownBy "country" with the signal-detection chain to map geographic attention, or "language" to detect non-English media surges.

Inputs: query (required), breakdownBy (required), limit, offset, +5 more. Returns: error, notice, source, attempts, +13 more

gdelt_get_coverage_timelineGet GDELT Coverage TimelineA
Read-only
Inspect

Retrieve a time series showing when news coverage of a topic spiked, or how average tone shifted over time. Use mode "volume" for normalized coverage intensity (% of all global coverage per timestep). Use "volume_raw" for distinct matching-article counts per timestep and norm, the unsmoothed monitored-article denominator; smoothed counts are moving averages. Use mode "volume_with_articles" for the same signal plus the top articles that drove each spike — this is the primary signal-detection mode: a single call reveals both the spike and its cause, avoiding a follow-up gdelt_search_articles call. Use mode "tone" for average sentiment score per timestep (negative = hostile/fearful, positive = celebratory). Date resolution is inferred from returned intervals: 15 minutes or hours for short windows, days for longer ones. In volume_with_articles mode each timestep carries its first 3 article links and referenceCount, the number of references GDELT supplied (up to ten), not all matching articles; name timesteps' dates in points to get only those timesteps, each with its full supplied list. A response carries limit timesteps (default 10, cap 400); when more remain it returns nextOffset — pass it back as offset with otherwise identical inputs for the next page. Explicit startDatetime/endDatetime windows may predate the last 3 months in "volume" and "tone" modes; "volume_raw" and "volume_with_articles" cover only the last 3 months.

Inputs: query (required), mode, limit, offset, +5 more. Returns: mode, error, notice, series, +12 more

gdelt_get_tone_distributionGet GDELT Tone DistributionA
Read-only
Inspect

Get the tonal distribution of articles matching a query as a histogram (bins approximately -30 to +30). Unlike a single average tone score, the histogram reveals whether coverage is uniformly negative, bimodal (some articles extremely positive and some extremely negative), or clustered near neutral. Each bin carries its first 3 representative article links and referenceCount, how many GDELT returned; name bins in the bins input to get only those bins, each with every link. A response carries limit bins (default 10, cap 400); when more remain it returns nextOffset — pass it back as offset with otherwise identical inputs for the next page. Distinct from gdelt_get_coverage_timeline (mode: tone) — this is a snapshot distribution across all matching articles, not a time series. Use gdelt_get_coverage_timeline with mode "tone" to see how sentiment shifted over time.

Inputs: query (required), bins, limit, offset, +3 more. Returns: error, notice, source, summary, +10 more

gdelt_get_tv_breakdownGet GDELT TV BreakdownA
Read-only
Inspect

Rank TV stations or shows mentioning a query. Station values are percentages of each station’s monitored airtime, or raw matching 15-second clip counts with normalize=false. Show values always represent percentages of matching clips, even with normalize=false. Labels are preserved exactly; ellipsized show labels may not work as exact show: selectors. Returns 25 rows by default, up to 10,000 per page. Archive coverage varies by station; use gdelt_list_tv_stations for station IDs, network and market selectors, and monitoring date ranges.

Inputs: query (required), breakdownBy (required), limit, offset, +5 more. Returns: rows, error, limit, notice, +8 more

gdelt_get_tv_clipsGet GDELT TV ClipsA
Read-only
Inspect

Retrieve the top matching TV news clips for a query from the Internet Archive's Television News Archive: returns every fetched in-window clip, up to 3,000. Each clip includes show name, the station's display name — with its station ID when that name resolves to one — air timestamp, a 15-second transcript excerpt, and a direct link to view the full one-minute clip. Use after gdelt_search_tv to read the actual transcript content driving a coverage spike — pass a series' station value as stations here. GDELT answers TV windows in whole clock hours; clips it returns from outside an explicit startDatetime/endDatetime window are dropped. 3,000 is a hard per-call ceiling and GDELT offers no cursor: when a query fills it, re-query narrower startDatetime/endDatetime windows — the response hands back the exact windows to use. Archive coverage varies by station; use gdelt_list_tv_stations for station IDs and monitoring date ranges.

Inputs: query (required), sort, stations, timespan, +3 more. Returns: clips, error, notice, limitClamp, +4 more

gdelt_get_tv_contextGet GDELT TV ContextA
Read-only
Inspect

Get the top co-occurring words and phrases from TV news clips matching a query — the vocabulary framing a topic on television. Returns the most frequent non-stopword terms with relative frequency scores (0–100, where 100 = the query term itself). Terms and scores come from GDELT's relevance-ranked sample of matching clips, documented as the 200 most relevant, not all matching coverage — compare windows or stations with a separate, narrower call for each. Use to understand narrative framing, identify related concepts mentioned alongside a topic, or generate follow-up search terms. Returns 25 terms by default, with count pages up to 25,000 terms. Archive coverage varies by station; check gdelt_list_tv_stations for each station’s monitoring date range.

Inputs: query (required), limit, offset, stations, +3 more. Returns: error, words, notice, offset, +6 more

gdelt_list_tv_stationsList GDELT TV StationsA
Read-only
Inspect

List the television stations available for TV search with their market, network, monitoring start date, and monitoring end date — every station by default, or only those matching the optional stations, network, and market filters (each an exact, case-insensitive match; combined with AND). activeCount and totalCount count the returned stations. Stations with an end date within the last 24 hours are flagged as active; stations with earlier end dates are discontinued. Use before querying to verify a station was active during the target time period, or to discover valid station IDs for the stations parameter in other TV tools. Archive coverage varies by station; check each station’s monitoring date range. Use the returned network values with network: and market values with quoted market: selectors in TV queries.

Inputs: market, network, stations. Returns: error, notice, stations, totalCount, +2 more

gdelt_search_articlesSearch GDELT ArticlesA
Read-only
Inspect

Search the last 3 months of global news coverage (65+ languages) using the GDELT DOC API. Fetches up to 250 articles with URL, title, source domain, language, country, publication date, and social image URL, and returns every fetched article inside the requested window. Query supports full GDELT syntax: phrases ("bird flu"), boolean OR ((flu OR pandemic)), source country (sourcecountry:china), source language (sourcelang:spanish), domain (domain:who.int), GKG theme (theme:TAX_DISEASE_OUTBREAK — find identifiers with gdelt_search_themes), tone filter (tone<-5 for negative), proximity (near20:"flu virus"), and repeat (repeat3:"outbreak"). 250 is a hard per-call ceiling and GDELT offers no cursor: when a query fills it, re-query narrower startDatetime/endDatetime windows — the response hands back the exact windows to use. Note: this API covers only the most recent 3 months — use gdelt_search_tv for historical TV transcripts back to 2009.

Inputs: query (required), sort, timespan, maxRecords, +2 more. Returns: error, notice, source, articles, +8 more

gdelt_search_themesSearch GDELT GKG ThemesA
Read-only
Inspect

Find GDELT Global Knowledge Graph (GKG) theme identifiers for the theme: operator that gdelt_search_articles, gdelt_get_coverage_timeline, gdelt_get_tone_distribution, and gdelt_get_coverage_breakdown accept in query. Searches the identifiers in the GDELT GKG theme lookup, which carries no labels or descriptions: every query word must begin one of the _-separated parts of an identifier or run across consecutive parts, or all the words joined must, so "drought" finds NATURAL_DISASTER_DROUGHT, "cyberattack" finds CYBER_ATTACK, "plant disease" finds TAX_PLANTDISEASE, and "wb water" narrows to World Bank water themes. There is no stemming or synonym matching — "displacement" does not reach DISPLACED — except one fallback: when nothing matches, the search retries once with a trailing s dropped from each word of four or more letters, and says so. Matches rank an exact identifier first, then by the count the lookup lists — a static prevalence figure, not a live article total — and each carries a paste-ready operator such as theme:TAX_DISEASE_OUTBREAK. Page with offset and limit (up to 100 matches per page; a larger limit runs at 100).

Inputs: query (required), limit, offset. Returns: error, limit, notice, offset, +6 more

gdelt_search_tvSearch GDELT TV NewsA
Read-only
Inspect

Search television news closed captions for spoken mentions of a query. Returns a bounded, paged per-station time series showing airtime devoted to the topic — 500 points by default, up to 20,000 per page. Each series carries GDELT's display name for the station and, when that name resolves to one, the station ID gdelt_get_tv_clips takes as stations. Use stations to select station IDs (e.g. ["CNN", "FOXNEWS", "MSNBC"]), or select with station:, network:, or quoted market: operators in query. TV query also supports in-query operators: station:CNN, network:CBS, market:"National", show:"Anderson Cooper 360", context:"vaccine". Archive coverage varies by station; use gdelt_list_tv_stations for station IDs, network and market values, and monitoring date ranges.

Inputs: query (required), limit, offset, dateres, +7 more. Returns: error, limit, notice, offset, +11 more

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables macro/geopolitical event detection by wrapping the GDELT 2.0 API, providing tools for searching events, trending actors, and sentiment timeseries from global news.
      1
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Provides access to the GDELT DOC 2.0 API for searching global news articles and images across 65 languages with customizable timespans and query options.
      2
      9 npm
      2
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI assistants to query an open online news archive to measure attention to topics, compare sources and countries, analyze coverage language, and find story URLs.
      1
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A remote, read-only MCP server for global media intelligence using GDELT DOC 2.0 API, enabling search and analysis of multilingual news coverage, tone, and attention trends.
      54 npm
      MIT
    Try in Browser

    Glama MCP Gateway

    Add one secure layer between your agents and this server.