MCP 服务器

Geotone — Global News Signals

news.geotone/geotone

此 MCP 可以做什么

Provides live global news rankings, story timelines, country and topic coverage statistics, tone analysis, and geopolitical trend signals.

get_briefing
Daily risk briefing
Geotone's daily global risk briefing for a date (YYYY-MM-DD): an analytical summary of coverage surges, tone shifts, and notable movers, with the statistics behind each claim.
只读
输入模式
{'type': 'object', 'required': ['date'], 'properties': {'date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'UTC date, e.g. 2026-07-02'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['date', 'headline', 'bodyMarkdown'], 'properties': {'date': {'type': 'string'}, 'meta': {'type': 'object', 'properties': {'asOf': {'type': 'string', 'description': 'Date of the latest datapoint (UTC)'}, 'page': {'type': 'string', 'description': 'Canonical geotone.news page for this result — link it when citing'}, 'source': {'type': 'string'}, 'license': {'type': 'string'}, 'citation': {'type': 'string'}, 'attribution': {'type': 'string'}, 'retrievedAt': {'type': 'string'}}}, 'page': {'type': 'string'}, 'headline': {'type': 'string'}, 'bodyMarkdown': {'type': 'string'}}, 'additionalProperties': True}
get_country
Country statistics
Live media-coverage statistics for one country by ISO-3166 alpha-2 code (e.g. 'ua', 'cn'): daily series (latest 30 days by default; response_format='detailed' for 90) of coverage volume (share of world news coverage that is about that country) and tone, plus armed-conflict fatalities (UCDP, trailing 12 months), displacement stocks (UNHCR: IDPs, refugees, asylum seekers), and coverage origin (what share of coverage about the country is produced by its own outlets vs abroad).
只读
输入模式
{'type': 'object', 'required': ['iso2'], 'properties': {'iso2': {'type': 'string', 'maxLength': 2, 'minLength': 2, 'description': "ISO2 code, e.g. 'ua'"}, 'response_format': {'enum': ['concise', 'detailed'], 'type': 'string', 'description': 'concise (default): summary stats + the latest 30 days of the series. detailed: the full 90-day series and article sample (~3x the tokens).'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['iso2', 'name', 'snapshots'], 'properties': {'iso2': {'type': 'string'}, 'meta': {'type': 'object', 'properties': {'asOf': {'type': 'string', 'description': 'Date of the latest datapoint (UTC)'}, 'page': {'type': 'string', 'description': 'Canonical geotone.news page for this result — link it when citing'}, 'source': {'type': 'string'}, 'license': {'type': 'string'}, 'citation': {'type': 'string'}, 'attribution': {'type': 'string'}, 'retrievedAt': {'type': 'string'}}}, 'name': {'type': 'string'}, 'page': {'type': 'string'}, 'stats': {'type': 'object', 'properties': {'meta': {'type': 'object', 'properties': {'asOf': {'type': 'string', 'description': 'Date of the latest datapoint (UTC)'}, 'page': {'type': 'string', 'description': 'Canonical geotone.news page for this result — link it when citing'}, 'source': {'type': 'string'}, 'license': {'type': 'string'}, 'citation': {'type': 'string'}, 'attribution': {'type': 'string'}, 'retrievedAt': {'type': 'string'}}}, 'zScore': {'type': ['number', 'null']}, 'wowChangePct': {'type': ['number', 'null']}}, 'additionalProperties': True}, 'conflict': {'type': ['object', 'null'], 'properties': {'events': {'type': ['number', 'null']}, 'source': {'type': 'string'}, 'window': {'type': 'string'}, 'fatalities': {'type': ['number', 'null']}, 'civilianDeaths': {'type': ['number', 'null']}}, 'description': 'UCDP GED trailing-12-month organized-violence totals; recent months preliminary', 'additionalProperties': True}, 'snapshots': {'type': 'array', 'items': {'type': 'object', 'properties': {'date': {'type': 'string'}, 'meta': {'type': 'object', 'properties': {'asOf': {'type': 'string', 'description': 'Date of the latest datapoint (UTC)'}, 'page': {'type': 'string', 'description': 'Canonical geotone.news page for this result — link it when citing'}, 'source': {'type': 'string'}, 'license': {'type': 'string'}, 'citation': {'type': 'string'}, 'attribution': {'type': 'string'}, 'retrievedAt': {'type': 'string'}}}, 'toneAvg': {'type': ['number', 'null']}, 'volIntensity': {'type': ['number', 'null']}}, 'additionalProperties': True}}, 'activeTopics': {'type': 'array', 'items': {'type': 'object', 'properties': {'meta': {'type': 'object', 'properties': {'asOf': {'type': 'string', 'description': 'Date of the latest datapoint (UTC)'}, 'page': {'type': 'string', 'description': 'Canonical geotone.news page for this result — link it when citing'}, 'source': {'type': 'string'}, 'license': {'type': 'string'}, 'citation': {'type': 'string'}, 'attribution': {'type': 'string'}, 'retrievedAt': {'type': 'string'}}}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}}, 'additionalProperties': True}}, 'displacement': {'type': ['object', 'null'], 'properties': {'idps': {'type': ['number', 'null']}, 'year': {'type': ['number', 'null']}, 'source': {'type': 'string'}, 'asylumSeekers': {'type': ['number', 'null']}, 'refugeesAbroad': {'type': ['number', 'null']}, 'refugeesHosted': {'type': ['number', 'null']}}, 'description': 'UNHCR year-end displacement stocks', 'additionalProperties': True}, 'coverageOrigin': {'type': ['object', 'null'], 'properties': {'note': {'type': 'string'}, 'localSharePct': {'type': ['number', 'null']}, 'knownSourceArticles14d': {'type': ['number', 'null']}}, 'description': 'Trailing-14d share of coverage about the country produced by domestic outlets (floor estimate)', 'additionalProperties': True}}, 'additionalProperties': True}
get_relation
Bilateral co-coverage
Bilateral co-coverage signal for a monitored country pair (e.g. a='cn', b='us'): how much the world's press mentions the two countries together, and in what tone. ~50 strategic pairs are monitored.
只读
输入模式
{'type': 'object', 'required': ['a', 'b'], 'properties': {'a': {'type': 'string', 'maxLength': 2, 'minLength': 2, 'description': 'First country ISO2'}, 'b': {'type': 'string', 'maxLength': 2, 'minLength': 2, 'description': 'Second country ISO2'}, 'response_format': {'enum': ['concise', 'detailed'], 'type': 'string', 'description': 'concise (default): summary stats + the latest 30 days of the series. detailed: the full 90-day series and article sample (~3x the tokens).'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['pair', 'snapshots'], 'properties': {'meta': {'type': 'object', 'properties': {'asOf': {'type': 'string', 'description': 'Date of the latest datapoint (UTC)'}, 'page': {'type': 'string', 'description': 'Canonical geotone.news page for this result — link it when citing'}, 'source': {'type': 'string'}, 'license': {'type': 'string'}, 'citation': {'type': 'string'}, 'attribution': {'type': 'string'}, 'retrievedAt': {'type': 'string'}}}, 'pair': {'type': 'string'}, 'snapshots': {'type': 'array', 'items': {'type': 'object', 'properties': {'date': {'type': 'string'}, 'meta': {'type': 'object', 'properties': {'asOf': {'type': 'string', 'description': 'Date of the latest datapoint (UTC)'}, 'page': {'type': 'string', 'description': 'Canonical geotone.news page for this result — link it when citing'}, 'source': {'type': 'string'}, 'license': {'type': 'string'}, 'citation': {'type': 'string'}, 'attribution': {'type': 'string'}, 'retrievedAt': {'type': 'string'}}}, 'toneAvg': {'type': ['number', 'null']}, 'coCoverageVol': {'type': ['number', 'null']}}, 'additionalProperties': True}}}, 'additionalProperties': True}
get_story_chain
Story timeline
A story timeline: the threaded developments of one multi-day event chain, oldest first (e.g. attack → casualties confirmed → international reaction). Use the chain_id values returned by get_wire. Each development is a headline + link + outlet count + tone.
只读
输入模式
{'type': 'object', 'required': ['chain_id'], 'properties': {'chain_id': {'type': 'number', 'description': 'Chain id from get_wire'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['id', 'developments'], 'properties': {'id': {'type': 'number'}, 'meta': {'type': 'object', 'properties': {'asOf': {'type': 'string', 'description': 'Date of the latest datapoint (UTC)'}, 'page': {'type': 'string', 'description': 'Canonical geotone.news page for this result — link it when citing'}, 'source': {'type': 'string'}, 'license': {'type': 'string'}, 'citation': {'type': 'string'}, 'attribution': {'type': 'string'}, 'retrievedAt': {'type': 'string'}}}, 'page': {'type': 'string'}, 'country': {'type': ['string', 'null']}, 'firstSeen': {'type': 'string'}, 'developments': {'type': 'array', 'items': {'type': 'object', 'properties': {'url': {'type': 'string'}, 'meta': {'type': 'object', 'properties': {'asOf': {'type': 'string', 'description': 'Date of the latest datapoint (UTC)'}, 'page': {'type': 'string', 'description': 'Canonical geotone.news page for this result — link it when citing'}, 'source': {'type': 'string'}, 'license': {'type': 'string'}, 'citation': {'type': 'string'}, 'attribution': {'type': 'string'}, 'retrievedAt': {'type': 'string'}}}, 'title': {'type': 'string'}, 'topic': {'type': ['string', 'null']}, 'domain': {'type': 'string'}, 'outlets': {'type': 'number'}, 'toneAvg': {'type': 'number'}, 'firstSeen': {'type': 'string'}}, 'additionalProperties': True}}, 'lastDevelopment': {'type': 'string'}}, 'additionalProperties': True}
get_topic
Topic statistics
Live media-coverage statistics for one geopolitical topic (e.g. 'ukraine-war', 'taiwan-strait', 'sanctions'): daily volume and tone series, z-score, week-over-week change, and a sample of recent articles (headline+link only). Returns the latest 30 days by default; pass response_format='detailed' for the full 90. Use search_topics to find slugs.
只读
输入模式
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': "Topic slug, e.g. 'ukraine-war'"}, 'response_format': {'enum': ['concise', 'detailed'], 'type': 'string', 'description': 'concise (default): summary stats + the latest 30 days of the series. detailed: the full 90-day series and article sample (~3x the tokens).'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['slug', 'name', 'snapshots'], 'properties': {'meta': {'type': 'object', 'properties': {'asOf': {'type': 'string', 'description': 'Date of the latest datapoint (UTC)'}, 'page': {'type': 'string', 'description': 'Canonical geotone.news page for this result — link it when citing'}, 'source': {'type': 'string'}, 'license': {'type': 'string'}, 'citation': {'type': 'string'}, 'attribution': {'type': 'string'}, 'retrievedAt': {'type': 'string'}}}, 'name': {'type': 'string'}, 'page': {'type': 'string'}, 'slug': {'type': 'string'}, 'stats': {'type': 'object', 'properties': {'meta': {'type': 'object', 'properties': {'asOf': {'type': 'string', 'description': 'Date of the latest datapoint (UTC)'}, 'page': {'type': 'string', 'description': 'Canonical geotone.news page for this result — link it when citing'}, 'source': {'type': 'string'}, 'license': {'type': 'string'}, 'citation': {'type': 'string'}, 'attribution': {'type': 'string'}, 'retrievedAt': {'type': 'string'}}}, 'zScore': {'type': ['number', 'null']}, 'wowChangePct': {'type': ['number', 'null']}}, 'additionalProperties': True}, 'articles': {'type': 'array', 'items': {'type': 'object', 'properties': {'url': {'type': 'string'}, 'meta': {'type': 'object', 'properties': {'asOf': {'type': 'string', 'description': 'Date of the latest datapoint (UTC)'}, 'page': {'type': 'string', 'description': 'Canonical geotone.news page for this result — link it when citing'}, 'source': {'type': 'string'}, 'license': {'type': 'string'}, 'citation': {'type': 'string'}, 'attribution': {'type': 'string'}, 'retrievedAt': {'type': 'string'}}}, 'title': {'type': 'string'}}, 'additionalProperties': True}}, 'snapshots': {'type': 'array', 'items': {'type': 'object', 'properties': {'date': {'type': 'string'}, 'meta': {'type': 'object', 'properties': {'asOf': {'type': 'string', 'description': 'Date of the latest datapoint (UTC)'}, 'page': {'type': 'string', 'description': 'Canonical geotone.news page for this result — link it when citing'}, 'source': {'type': 'string'}, 'license': {'type': 'string'}, 'citation': {'type': 'string'}, 'attribution': {'type': 'string'}, 'retrievedAt': {'type': 'string'}}}, 'volRaw': {'type': ['number', 'null']}, 'toneAvg': {'type': ['number', 'null']}, 'volIntensity': {'type': ['number', 'null']}}, 'additionalProperties': True}}}, 'additionalProperties': True}
get_trending
Trending now
What's surging in global news right now: topics whose coverage is ≥2 standard deviations above their trailing average (z-score), the biggest week-over-week movers, and surging countries. Derived every 3 hours from GDELT across 65+ languages.
只读
输入模式
{'type': 'object', 'properties': {}, 'additionalProperties': False}
输出模式
{'type': 'object', 'properties': {'meta': {'type': 'object', 'properties': {'asOf': {'type': 'string', 'description': 'Date of the latest datapoint (UTC)'}, 'page': {'type': 'string', 'description': 'Canonical geotone.news page for this result — link it when citing'}, 'source': {'type': 'string'}, 'license': {'type': 'string'}, 'citation': {'type': 'string'}, 'attribution': {'type': 'string'}, 'retrievedAt': {'type': 'string'}}}, 'movers': {'type': 'array', 'items': {'type': 'object', 'properties': {'meta': {'type': 'object', 'properties': {'asOf': {'type': 'string', 'description': 'Date of the latest datapoint (UTC)'}, 'page': {'type': 'string', 'description': 'Canonical geotone.news page for this result — link it when citing'}, 'source': {'type': 'string'}, 'license': {'type': 'string'}, 'citation': {'type': 'string'}, 'attribution': {'type': 'string'}, 'retrievedAt': {'type': 'string'}}}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'wowChange': {'type': 'number'}, 'latestVolIntensity': {'type': ['number', 'null']}}, 'additionalProperties': True}}, 'surging': {'type': 'array', 'items': {'type': 'object', 'properties': {'meta': {'type': 'object', 'properties': {'asOf': {'type': 'string', 'description': 'Date of the latest datapoint (UTC)'}, 'page': {'type': 'string', 'description': 'Canonical geotone.news page for this result — link it when citing'}, 'source': {'type': 'string'}, 'license': {'type': 'string'}, 'citation': {'type': 'string'}, 'attribution': {'type': 'string'}, 'retrievedAt': {'type': 'string'}}}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'zScore': {'type': 'number'}, 'latestVolIntensity': {'type': ['number', 'null']}}, 'additionalProperties': True}}, 'surgingCountries': {'type': 'array', 'items': {'type': 'object', 'properties': {'iso2': {'type': 'string'}, 'meta': {'type': 'object', 'properties': {'asOf': {'type': 'string', 'description': 'Date of the latest datapoint (UTC)'}, 'page': {'type': 'string', 'description': 'Canonical geotone.news page for this result — link it when citing'}, 'source': {'type': 'string'}, 'license': {'type': 'string'}, 'citation': {'type': 'string'}, 'attribution': {'type': 'string'}, 'retrievedAt': {'type': 'string'}}}, 'name': {'type': 'string'}, 'zScore': {'type': 'number'}}, 'additionalProperties': True}}}, 'additionalProperties': True}
get_wire
The live wire
The live wire: the world's most significant stories right now, ranked by a published formula (authority-weighted outlet breadth, boosted by consequence themes, coded events, and casualty figures, decayed by recency over 72h). Each story carries one representative link, outlet count, tone, countries, non-English source languages that also reported the event, and a chain_id when it belongs to a multi-day story timeline (fetch with get_story_chain). Reclustered every 3 hours.
只读
输入模式
{'type': 'object', 'properties': {'limit': {'type': 'number', 'maximum': 36, 'minimum': 1, 'description': 'Max stories to return (default 20)'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['stories'], 'properties': {'meta': {'type': 'object', 'properties': {'asOf': {'type': 'string', 'description': 'Date of the latest datapoint (UTC)'}, 'page': {'type': 'string', 'description': 'Canonical geotone.news page for this result — link it when citing'}, 'source': {'type': 'string'}, 'license': {'type': 'string'}, 'citation': {'type': 'string'}, 'attribution': {'type': 'string'}, 'retrievedAt': {'type': 'string'}}}, 'page': {'type': 'string'}, 'stories': {'type': 'array', 'items': {'type': 'object', 'properties': {'url': {'type': 'string'}, 'meta': {'type': 'object', 'properties': {'asOf': {'type': 'string', 'description': 'Date of the latest datapoint (UTC)'}, 'page': {'type': 'string', 'description': 'Canonical geotone.news page for this result — link it when citing'}, 'source': {'type': 'string'}, 'license': {'type': 'string'}, 'citation': {'type': 'string'}, 'attribution': {'type': 'string'}, 'retrievedAt': {'type': 'string'}}}, 'rank': {'type': 'number'}, 'title': {'type': 'string'}, 'topic': {'type': ['string', 'null']}, 'domain': {'type': 'string'}, 'chainId': {'type': ['number', 'null']}, 'outlets': {'type': 'number'}, 'related': {'type': 'array', 'items': {'type': 'object', 'properties': {'url': {'type': 'string'}, 'meta': {'type': 'object', 'properties': {'asOf': {'type': 'string', 'description': 'Date of the latest datapoint (UTC)'}, 'page': {'type': 'string', 'description': 'Canonical geotone.news page for this result — link it when citing'}, 'source': {'type': 'string'}, 'license': {'type': 'string'}, 'citation': {'type': 'string'}, 'attribution': {'type': 'string'}, 'retrievedAt': {'type': 'string'}}}, 'title': {'type': 'string'}, 'outlets': {'type': 'number'}}, 'additionalProperties': True}}, 'toneAvg': {'type': 'number'}, 'lastSeen': {'type': 'string'}, 'timeline': {'type': ['string', 'null']}, 'countries': {'type': 'array', 'items': {'type': 'string'}}, 'firstSeen': {'type': 'string'}, 'languages': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': True}}}, 'additionalProperties': True}
search_topics
Search topics
Search Geotone's tracked geopolitical topics by keyword (matches name, slug, and description). Returns slugs usable with get_topic, plus each topic's current coverage stats.
只读
输入模式
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': "Keyword, e.g. 'nuclear' or 'china'"}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['query', 'results'], 'properties': {'meta': {'type': 'object', 'properties': {'asOf': {'type': 'string', 'description': 'Date of the latest datapoint (UTC)'}, 'page': {'type': 'string', 'description': 'Canonical geotone.news page for this result — link it when citing'}, 'source': {'type': 'string'}, 'license': {'type': 'string'}, 'citation': {'type': 'string'}, 'attribution': {'type': 'string'}, 'retrievedAt': {'type': 'string'}}}, 'query': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'properties': {'meta': {'type': 'object', 'properties': {'asOf': {'type': 'string', 'description': 'Date of the latest datapoint (UTC)'}, 'page': {'type': 'string', 'description': 'Canonical geotone.news page for this result — link it when citing'}, 'source': {'type': 'string'}, 'license': {'type': 'string'}, 'citation': {'type': 'string'}, 'attribution': {'type': 'string'}, 'retrievedAt': {'type': 'string'}}}, 'name': {'type': 'string'}, 'page': {'type': 'string'}, 'slug': {'type': 'string'}, 'zScore': {'type': ['number', 'null']}, 'latestToneAvg': {'type': ['number', 'null']}, 'latestVolIntensity': {'type': ['number', 'null']}}, 'additionalProperties': True}}}, 'additionalProperties': True}
已更改
get_story_chain
2026年9月19日 02:48
已更改
get_wire
2026年9月19日 02:48
已更改
get_briefing
2026年9月19日 02:48
已更改
search_topics
2026年9月19日 02:48
已更改
get_relation
2026年9月19日 02:48
已更改
get_country
2026年9月19日 02:48
已更改
get_topic
2026年9月19日 02:48
已更改
get_trending
2026年9月19日 02:48
已添加
get_story_chain
2026年9月17日 12:54
已添加
get_wire
2026年9月17日 12:54
已添加
get_briefing
2026年9月17日 12:54
已添加
search_topics
2026年9月17日 12:54
已添加
get_relation
2026年9月17日 12:54
已添加
get_country
2026年9月17日 12:54
已添加
get_topic
2026年9月17日 12:54
已添加
get_trending
2026年9月17日 12:54