
Gdelt Mcp Server
Connects Claude to the GDELT Project's DOC and TV APIs for searching and analyzing global news coverage and US television transcripts. Nine tools span article search across 65 languages and three months of coverage, time series extraction for volume and tone tracking, histogram analysis for sentiment distribution, and geographic breakdown by country or language. The TV side covers 2009 through October 2024 with clip retrieval, trending topics, contextual vocabulary analysis, and station metadata lookups. Built with shared rate limiting to respect GDELT's 1 request per 5 seconds quota. Use this when you need structured access to large scale media monitoring data or want to trace how stories propagate across languages, countries, and broadcast networks without manually polling APIs.
- GitHub stars
- 10
- tools
- 10
- transport
- STDIO, HTTP
- env vars
- 12
- last updated
- Nov 10, 2026
Install
From registry metadata$ npx add-mcp https://gdelt.caseyjhand.com/mcp --name gdeltRun in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.
Review the command, arguments and environment values before installing. MCP servers run with your local permissions.
Other ways
Claude Code
$ claude mcp add --transport http gdelt https://gdelt.caseyjhand.com/mcpRun in your terminal. Add --scope user to make it available in every project.
Tools
Verified live · 10 toolsVerified live against the running server on Nov 6, 2026.
gdelt_search_articlesSearch 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...6 params
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...
endDatetimestringmaxRecordsnumberquery*stringsortstringrelevance · dateDesc · dateAsc · toneDesc · toneAsc · hybridReldefault: relevancestartDatetimestringtimespanstringgdelt_get_coverage_timelineRetrieve 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,...9 params
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,...
endDatetimestringlimitnumbermodestringvolume · volume_raw · volume_with_articles · tonedefault: volumeoffsetintegerpointsarrayquery*stringsmoothingintegerstartDatetimestringtimespanstringgdelt_get_tone_distributionGet 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...7 params
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...
binsarrayendDatetimestringlimitnumberoffsetintegerquery*stringstartDatetimestringtimespanstringgdelt_get_coverage_breakdownBreak 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 geographicall...9 params
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 geographicall...
breakdownBy*stringlanguage · countryendDatetimestringlimitnumberoffsetintegerquery*stringseriesarraysmoothingintegerstartDatetimestringtimespanstringgdelt_search_themesFind 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, whi...3 params
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, whi...
limitnumberoffsetintegerquery*stringgdelt_search_tvSearch 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...11 params
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...
combinedbooleandateresstringhour · day · week · month · yearendDatetimestringlimitnumbernormalizebooleanoffsetintegerquery*stringsmoothingintegerstartDatetimestringstationsarraytimespanstringgdelt_get_tv_breakdownRank 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 prese...9 params
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 prese...
breakdownBy*stringstation · showendDatetimestringlimitnumbernormalizebooleanoffsetintegerquery*stringstartDatetimestringstationsarraytimespanstringgdelt_get_tv_clipsRetrieve 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 times...7 params
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 times...
endDatetimestringmaxRecordsnumberquery*stringsortstringrelevance · dateDesc · dateAscdefault: relevancestartDatetimestringstationsarraytimespanstringgdelt_get_tv_contextGet 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 GDE...7 params
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 GDE...
endDatetimestringlimitnumberoffsetintegerquery*stringstartDatetimestringstationsarraytimespanstringgdelt_list_tv_stationsList 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; combine...3 params
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; combine...
marketstringnetworkstringstationsarraySponsors
Configuration
GDELT_CLAMP_LIMITSdefault: trueClamp counts above each per-call cap; false rejects them.
GDELT_BASE_URLdefault: https://api.gdeltproject.org/api/v2Override the base URL for the GDELT DOC and TV APIs.
GDELT_REQUEST_DELAY_MSdefault: 5300Minimum milliseconds between GDELT requests, enforcing the 1 req/5s rate limit.
GDELT_REQUEST_TIMEOUT_MSdefault: 60000Deadline in milliseconds for a single GDELT request; the whole call, retries included, is bounded at twice this value.
GDELT_MIRROR_PATHSQLite file of the optional local GKG mirror the DOC tools fall back to when the DOC API refuses requests. Unset leaves it off. Built with `bun run mirror:init` from a checkout or the Docker image; on Node it needs better-sqlite3 installed.
GDELT_MIRROR_WINDOW_DAYSdefault: 7Days of GKG slots the local mirror keeps (1-90).
MCP_LOG_LEVELdefault: infoSets the minimum log level for output (e.g., 'debug', 'info', 'warn').
MCP_TRANSPORT_TYPEdefault: httpSelects the HTTP transport.
MCP_HTTP_HOSTdefault: 127.0.0.1The hostname for the HTTP server.
MCP_HTTP_PORTdefault: 3010The port to run the HTTP server on.
MCP_HTTP_ENDPOINT_PATHdefault: /mcpThe endpoint path for the MCP server.
MCP_AUTH_MODEdefault: noneAuthentication mode to use: 'none', 'jwt', or 'oauth'.
Readme
@cyanheads/gdelt-mcp-server
Search and analyze global news coverage and US television transcripts from the GDELT Project's real-time APIs via MCP. STDIO or Streamable HTTP.
Details
- Repository
- github.com/cyanheads/gdelt-mcp-server
- Category
- Search & Web Crawling
- Package
@cyanheads/gdelt-mcp-server- Transport
- STDIO, HTTP
- Registry
- MCP registry, active
- Resources
- 1
- Tools verified
- Nov 6, 2026
More from cyanheads
- Eurostat Mcp Server9
- Open Meteo Mcp Server13
- Pubchem Mcp Server13
- Gutenberg Mcp Server6
- Libofcongress Mcp Server6
- Orcid Mcp Server6
- Protein Mcp Server6
- Wikipedia Mcp Server6
- Cdc Health Mcp Server5
- Usaspending Mcp Server5
- Openstreetmap Mcp Server9
- Biorxiv Mcp Server4
- Brapi Mcp Server4
- Courtlistener Mcp Server4
- Crossref Mcp Server4
- Internet Archive Mcp Server4
- Met Museum Mcp Server4
- Noaa Spaceweather Mcp Server4
- Openfda Mcp Server4
- Openlibrary Mcp Server4
- Un Comtrade Mcp Server4
- Aviation Weather Mcp Server3
- Devops Status Mcp Server3
- Earthquake Mcp Server3