GnistAI GnistAI
Log in

News Intelligence

Track any topic across global media and the tech community. Sentiment timelines, geographic coverage maps, and trending stories from 150+ countries — powered by GDELT and Hacker News.

Overview   |   MCP   |   REST API   |   OpenAPI   |   CLI   |   Tutorial   |   Toolkits   |   Home
status: healthy status status healthy healthy tools: 7 tools tools 7 7 type: dataset aggregator type type dataset aggregator dataset aggregator lifecycle: maintained lifecycle lifecycle maintained maintained Media

Data source: GDELT 2.0 API, Hacker News (Algolia)

MCP Endpoint (Streamable HTTP) https://context.gnist.ai/mcp/news-intelligence/
Authentication

All requests require a Gnist-API-Key header (or api_key query parameter).

Free tier: 100 calls/day. Get your API key.

Tools (7)

search_news

Search news across GDELT (global media, 150+ countries) and Hacker News (tech community) in parallel.

Queries both sources concurrently, normalizes articles into a unified format,
and deduplicates by URL when the same story appears in both sources.

Examples:
search_news(query="artificial intelligence")
search_news(query="climate change", timespan="7d", source_country="US")
search_news(query="Norway oil", source_lang="Norwegian")

ParameterTypeRequiredDescription
querystringrequiredSearch query for news articles.
timespanstringoptionalGDELT time window (e.g. '24h', '7d', '3m'). (default: "24h")
max_resultsintegeroptionalMax articles to return. (default: 25)
source_countryanyoptionalFilter GDELT by source country code.
source_langanyoptionalFilter GDELT by source language code.
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "search_news",
    "arguments": {
      "query": "example"
    }
  }
}
get_news_sentiment

Get media sentiment timeline for a topic from global news sources (GDELT).

Returns tone values (-100 to +100) over time. Negative values indicate
negative coverage, positive values indicate positive coverage.

Examples:
get_news_sentiment(query="Tesla")
get_news_sentiment(query="Norway economy", timespan="3m")
get_news_sentiment(query="OpenAI", timespan="30d", smooth=5)

ParameterTypeRequiredDescription
querystringrequiredTopic to analyze sentiment for.
timespanstringoptionalTime window (e.g. '24h', '7d', '3m'). (default: "7d")
smoothintegeroptionalSmoothing factor for timeline. (default: 0)
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "get_news_sentiment",
    "arguments": {
      "query": "example"
    }
  }
}
get_news_coverage

Get media coverage volume timeline for a topic from global news sources (GDELT).

Returns the volume of articles published over time, useful for detecting
when a topic spikes in media attention.

Examples:
get_news_coverage(query="Bitcoin")
get_news_coverage(query="climate summit", timespan="30d")
get_news_coverage(query="election", timespan="3m", smooth=3)

ParameterTypeRequiredDescription
querystringrequiredTopic to measure coverage for.
timespanstringoptionalTime window (e.g. '24h', '7d', '3m'). (default: "7d")
smoothintegeroptionalSmoothing factor for timeline. (default: 0)
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "get_news_coverage",
    "arguments": {
      "query": "example"
    }
  }
}
get_news_geography

Get geographic breakdown of media coverage for a topic from GDELT.

Shows which countries' media are covering a topic and their relative volume.
Useful for understanding the geographic spread of news coverage.

Examples:
get_news_geography(query="Ukraine")
get_news_geography(query="oil prices", timespan="7d")
get_news_geography(query="artificial intelligence", timespan="3m")

ParameterTypeRequiredDescription
querystringrequiredTopic to analyze geographic coverage for.
timespanstringoptionalTime window (e.g. '24h', '7d', '3m'). (default: "24h")
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "get_news_geography",
    "arguments": {
      "query": "example"
    }
  }
}
list_news_intelligence_sources

List all news intelligence data sources, their coverage, and data types.

Shows which news databases and community platforms are queried
during news intelligence operations.

Examples:
list_news_intelligence_sources()

JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "list_news_intelligence_sources",
    "arguments": {}
  }
}
report_feedback

Report a bug, feature request, or general feedback for this data source.

Use this when something doesn't work as expected, when you'd like
a new feature, or when you have suggestions for improvement.

Args:
feedback: Describe the issue or suggestion.
feedback_type: One of 'bug', 'feature_request', or 'general'.

ParameterTypeRequiredDescription
feedbackstringrequired
feedback_typestringoptional (default: "general")
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "report_feedback",
    "arguments": {
      "feedback": "example"
    }
  }
}

Quick Start

Shell
curl -X POST "https://context.gnist.ai/mcp/news-intelligence/" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "Gnist-API-Key: YOUR_API_KEY" \
  -d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "search_news", "arguments": {"query": "example"}}}'
Python
import httpx

resp = httpx.post(
    "https://context.gnist.ai/mcp/news-intelligence/",
    headers={"Gnist-API-Key": "YOUR_API_KEY", "Content-Type": "application/json"},
    json={
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "search_news",
    "arguments": {
      "query": "example"
    }
  }
},
)
print(resp.json())

Related Toolkits (Media)

Resources