Geotone — Global News Signals
Server Details
Live global news signals: ranked wire, story timelines, coverage volume/tone/surges. Free, no auth.
- Status
- Healthy
- Uptime
- 100.0% over 46 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 8 tools
Each tool targets a distinct resource or view: country statistics, topic statistics, bilateral relations, live wire, story timelines, trending signals, and date-based briefing. The only potential pair is get_briefing vs get_trending, but their descriptions clearly separate an analytical daily summary from real-time surge detection.
All tools use lower_snake_case verb_noun names, mostly get_* with one search_topics. The pattern is predictable and consistent across the set.
Eight tools cover the full news-signal workflow without bloator omission: retrieve current wire, drill into topics/countries/relations, follow story chains, and search topic slugs. This is a well-scoped toolkit.
The read-only analytics surfaace is largely complete for a news-signal server: live wire, trending, topics, countries, relations, story chains, and briefing all have retrieval paths. Minor gaps exist: there is no way to enumerate monitored country pairs or search the live wire by keyword/country/topic.
Available Tools
8 toolsget_briefingDaily risk briefingARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | UTC date, e.g. 2026-07-02 |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | Yes | |
| meta | No | |
| page | No | |
| headline | Yes | |
| bodyMarkdown | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only safety profile is covered without requiring description reinforcement. The description adds content expectations but no extra operational traits such as date availability, rate limits, or handling of missing dates; it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one front-loaded sentence that states the resource, date format, and output contents without filler. Every clause earns its place, and no information is needlessly repeated from the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one required parameter, full schema coverage, an output schema, and a read-only annotation, the description supplies everything an agent needs to select and invoke the tool correctly. Remaining details like empty-date behavior are minor for such a simple read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single 'date' parameter is already fully documented in the schema with a regex pattern and a UTC example, giving 100% schema coverage. The description only repeats the YYYY-MM-DD format and adds no meaningful semantics beyond what the schema provides, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the exact resource ('Geotone's daily global risk briefing'), scopes it to a date, and enumerates the content (coverage surges, tone shifts, notable movers, statistics). This clearly distinguishes it from sibling tools like get_topic, get_trending, get_wire, and search_topics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for a date (YYYY-MM-DD)' provides a clear condition for when this tool applies, and the 'briefing' framing implies it is for an analytical daily summary rather than granular lookups. It does not explicitly name alternative tools or when-not-to-use cases, but the context is clear enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_countryCountry statisticsARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| iso2 | Yes | ISO2 code, e.g. 'ua' | |
| response_format | No | concise (default): summary stats + the latest 30 days of the series. detailed: the full 90-day series and article sample (~3x the tokens). |
Output Schema
| Name | Required | Description |
|---|---|---|
| iso2 | Yes | |
| meta | No | |
| name | Yes | |
| page | No | |
| stats | No | |
| conflict | No | UCDP GED trailing-12-month organized-violence totals; recent months preliminary |
| snapshots | Yes | |
| activeTopics | No | |
| displacement | No | UNHCR year-end displacement stocks |
| coverageOrigin | No | Trailing-14d share of coverage about the country produced by domestic outlets (floor estimate) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and openWorldHint=false, so the tool is known to be read-only and not open-world. The description adds value by specifying data sources (UCDP, UNHCR), time ranges (30/90 days), and the 'live' nature of the data. It does not disclose potential rate limits or errors, but for a read-only query this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence that front-loads the core purpose and then lists the metrics. It is efficient and contains no fluff, but could be improved with bullet points or separate sentences for readability. The information is all relevant, so it earns a 4.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return structure is covered. The description comprehensively lists the types of data (coverage volume, tone, fatalities, displacement, origin), time ranges, and data sources. It gives an agent a full picture of what to expect, making it complete for a read-only statistics tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for both parameters: iso2 (with example) and response_format (concise vs detailed with exact effects). The description repeats some of this (e.g., 'detailed' for 90 days) but does not add new parameter-level semantics. With 100% schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('statistics') and resource ('one country'), with a precise identifier (ISO-3166 alpha-2 code). It clearly enumerates the data provided (coverage volume, tone, fatalities, displacement, origin), which fully distinguishes it from sibling tools like get_topic or get_wire that cover different domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly mention when to use this tool versus alternatives. The purpose is distinct enough that usage is implied, but there is no statement of conditions or exclusions. For example, it doesn't say 'use this for country-level stats' or note that other tools handle different scopes. This falls short of explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_relationBilateral co-coverageARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | First country ISO2 | |
| b | Yes | Second country ISO2 | |
| response_format | No | concise (default): summary stats + the latest 30 days of the series. detailed: the full 90-day series and article sample (~3x the tokens). |
Output Schema
| Name | Required | Description |
|---|---|---|
| meta | No | |
| pair | Yes | |
| snapshots | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the description does not need to restate safety. It adds value by disclosing the constrained universe ('~50 strategic pairs are monitored') and the nature of the signal (co-mention volume and tone), which are behavioral facts beyond the schema. This is useful context without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The core purpose and example are front-loaded, and the monitored-pair count is a useful closing detail. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return-value details are not the description's job. It supplies the key contextual facts: the pair scope, the monitored-set limitation, and the tone dimension. It could mention what happens for unmonitored pairs, but given openWorldHint=false and the existence of an output schema, this is a minor gap rather than a material omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, giving a baseline of 3. The description adds meaning by exemplifying the exact expected values ('a='cn', b='us'') and by signaling that only a limited set of pairs are valid ('~50 strategic pairs are monitored') – a domain constraint the schema alone does not reveal. This goes beyond the raw property descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete resource ('bilateral co-coverage signal') and exactly what it measures ('how much the world's press mentions the two countries together, and in what tone'), with a concrete example pair. This clearly distinguishes it from siblings like get_country (single country) and search_topics, so no ambiguity remains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for a monitored country pair' plus the explicit example (a='cn', b='us') gives clear context for when to call this tool. It does not explicitly name alternatives (e.g., get_country for single-country signals) or exclude conditions, but the monitored-pair scoping is strong implied guidance. This is more than vague, though slightly short of explicit alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_story_chainStory timelineARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | Yes | Chain id from get_wire |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| meta | No | |
| page | No | |
| country | No | |
| firstSeen | No | |
| developments | Yes | |
| lastDevelopment | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only behavior is known. The description adds the ordering behavior (oldest first) and the structure of each development (headline + link + outlet count + tone), which are meaningful behavioral details beyond the annotation. No side effects or contradictions are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The purpose is front-loaded, followed by the usage prerequisite and output content. Every sentence adds value, making it concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with an output schema present, the description covers the essential context: what the tool returns, the ordering, and where the parameter comes from. It does not discuss edge cases like invalid chain_id, but the output schema likely covers return structure, so the description is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes chain_id as 'Chain id from get_wire' with 100% coverage. The description reinforces this source but does not add new meaning such as format, valid range, or examples. According to the rubric, baseline 3 is appropriate when the schema carries the parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description defines the tool as a story timeline of a multi-day event chain, oldest first, with concrete examples (attack → casualties confirmed → international reaction). It clearly identifies the resource and scope, and the reference to chain_id returned by get_wire helps distinguish it from the wire list. It lacks an explicit action verb, relying on the tool name, which prevents a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a direct usage prerequisite: use the chain_id values returned by get_wire. This tells the agent how to obtain the required parameter and implies a workflow (call get_wire first, then get_story_chain). It does not explicitly mention when not to use the tool or alternatives, but the context is clear enough for a single-parameter read tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_topicTopic statisticsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Topic slug, e.g. 'ukraine-war' | |
| response_format | No | concise (default): summary stats + the latest 30 days of the series. detailed: the full 90-day series and article sample (~3x the tokens). |
Output Schema
| Name | Required | Description |
|---|---|---|
| meta | No | |
| name | Yes | |
| page | No | |
| slug | Yes | |
| stats | No | |
| articles | No | |
| snapshots | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=true annotation already covering non-mutating nature, the description adds value by disclosing the default time range (30 days) and the token cost difference for detailed format, which is crucial for agents to make efficient calls. It goes beyond the annotation but doesn't over-explain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but efficient, front-loading the core purpose and metrics, then explaining the time range and the search_topic pointer. Every sentence serves a purpose, with no redundancies. It's appropriately sized for a moderately complex tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists (covering response structure) and the description explains the time ranges and token trade-offs, the main missing piece is possibly the exact format of the article sample (headline+link is mentioned) but not pagination; however, with 100% schema coverage and these details, it's largely complete. A slight deduction for not mentioning any rate limits or error scenarios, but overall strong.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers both parameters fully (slug and response_format with enums and descriptions). The description adds context by mentioning the default behavior and token implications, reinforcing the schema's meaning, but doesn't introduce new parameter details beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves live media-coverage statistics for a geopolitical topic, listing specific metrics (daily volume, tone series, z-score, week-over-week change) and a sample of recent articles. It distinguishes itself from siblings by focusing on a single topic's statistics, whereas siblings like get_country or get_relation target different entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies the default 30-day window and the detailed option for 90 days, and explicitly instructs to use search_topics to find slugs. It gives clear context for when to use this tool but does not explicitly mention when not to use it or name alternatives beyond search_topics.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trendingTrending nowARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| meta | No | |
| movers | No | |
| surging | No | |
| surgingCountries | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description reveals meaningful behavioral characteristics: the statistical z-score threshold, trailing average comparison, weekly comparison window, 3-hour derivation cadence, and GDELT source across 65+ languages. This tells an agent what kind of computation and freshness to expect without opening an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the core question ('What's surging in global news right now') followed by high-value specifics: statistical thresholds, time comparison, language coverage, and refresh cadence. Every clause adds distinguishing information, with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no required arguments, readOnly annotations, and an output schema present, the tool is simple to invoke. The description supplies the remaining context an agent needs: what trending means, how often it updates, where the data comes from, and what scale of language coverage to expect. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so there is nothing to document. The description correctly avoids inventing parameter syntax and instead clarifies what the tool returns conceptually. The baseline of 4 for zero-parameter tools is appropriate here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as global trending news and defines precisely what counts as trending: topics at least 2 standard deviations above their trailing average, week-over-week movers, and surging countries. This specificity distinguishes it from sibling tools like get_topic or get_country by emphasizing a global, statistical aggregation rather than a single entity or story.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'right now' and the global framing provide clear context for when to use this tool: when an agent needs current worldwide news surges rather than a specific country, topic, or wire. It does not explicitly name sibling alternatives or say when not to use them, so it falls short of a 5, but the context is clear enough for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wireThe live wireARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max stories to return (default 20) |
Output Schema
| Name | Required | Description |
|---|---|---|
| meta | No | |
| page | No | |
| stories | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only, and the description adds useful behavioral context: the ranking formula, 72-hour recency decay, 3-hour reclustering, and per-story fields including optional chain_id. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is slightly dense with formula detail but remains front-loaded with the core purpose and each sentence adds information about ranking, contents, or freshness. The repeated 'The live wire' opener is mild redundancy, not harmful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only one optional param documented in schema, readOnly annotations, and an output schema present, the description supplies enough extra context: ranking logic, freshness window, returned fields, and how to follow a chain. Nothing material is missing for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single optional limit parameter is already documented with min/max/default in the input schema. The description adds no parameter-specific meaning, so the baseline applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool returns the world's most significant stories right now, ranked by a specific published formula, and lists the data fields each story carries. It clearly identifies the resource and distinguishes its ranking/freshness behavior from siblings, even naming get_story_chain as the tool for multi-day timelines.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Right now' and the 72h decay imply use for current global top stories, and the note to fetch multi-day chains with get_story_chain gives a conditional alternative. However, there is no explicit when-to-use/when-not-to-use guidance versus siblings like get_trending or get_country.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_topicsSearch topicsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Keyword, e.g. 'nuclear' or 'china' |
Output Schema
| Name | Required | Description |
|---|---|---|
| meta | No | |
| query | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and openWorldHint=false, which are consistent with the search action. The description adds value beyond annotations by specifying matching fields and that results include coverage stats, enriching the agent's understanding of the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no fluff. The purpose and key matching behavior are front-loaded in the first sentence, and the output and linkage to get_topic are in the second. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only one required parameter and an output schema present, the description covers the search scope, matching behavior, and output utility. It explicitly mentions the returned slugs are usable with get_topic, making the tool's role and integration clear. No critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (query described), so baseline is 3. The description adds semantic detail that 'query' matches name, slug, and description, which goes beyond the schema's simple example ('nuclear' or 'china'), thus contributing meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: searching Geotone's geopolitical topics by keyword, with specific matching fields (name, slug, description). It also indicates the output (slugs and coverage stats) and connects to a sibling tool (get_topic), making its role distinct from the get_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a keyword-based topic search is needed, and the mention of get_topic suggests a follow-up workflow. However, it doesn't explicitly contrast with alternatives or state when not to use it, though there is no other search tool among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
8 tool updates
- Changed
get_briefing4 fields changed- added
Output schema / properties / meta / properties / asOfAdded value: +{ + "description": "Date of the latest datapoint (UTC)", + "type": "string" +} - added
Output schema / properties / meta / properties / citationAdded value: +{ + "type": "string" +} - added
Output schema / properties / meta / properties / pageAdded value: +{ + "description": "Canonical geotone.news page for this result — link it when citing", + "type": "string" +} - added
Output schema / properties / meta / properties / retrievedAtAdded value: +{ + "type": "string" +}
- Changed
get_country17 fields changed- added
Input schema / properties / response_formatAdded value: +{ + "description": "concise (default): summary stats + the latest 30 days of the series. detailed: the full 90-day series and article sample (~3x the tokens).", + "enum": [ + "concise", + "detailed" + ], + "type": "string" +} - added
Output schema / properties / activeTopics / items / properties / meta / properties / asOfAdded value: +{ + "description": "Date of the latest datapoint (UTC)", + "type": "string" +} - added
Output schema / properties / activeTopics / items / properties / meta / properties / citationAdded value: +{ + "type": "string" +} - added
Output schema / properties / activeTopics / items / properties / meta / properties / pageAdded value: +{ + "description": "Canonical geotone.news page for this result — link it when citing", + "type": "string" +} - added
Output schema / properties / activeTopics / items / properties / meta / properties / retrievedAtAdded value: +{ + "type": "string" +} - added
Output schema / properties / meta / properties / asOfAdded value: +{ + "description": "Date of the latest datapoint (UTC)", + "type": "string" +} - added
Output schema / properties / meta / properties / citationAdded value: +{ + "type": "string" +} - added
Output schema / properties / meta / properties / pageAdded value: +{ + "description": "Canonical geotone.news page for this result — link it when citing", + "type": "string" +} - added
Output schema / properties / meta / properties / retrievedAtAdded value: +{ + "type": "string" +} - added
Output schema / properties / snapshots / items / properties / meta / properties / asOfAdded value: +{ + "description": "Date of the latest datapoint (UTC)", + "type": "string" +} - added
Output schema / properties / snapshots / items / properties / meta / properties / citationAdded value: +{ + "type": "string" +} - added
Output schema / properties / snapshots / items / properties / meta / properties / pageAdded value: +{ + "description": "Canonical geotone.news page for this result — link it when citing", + "type": "string" +} - added
Output schema / properties / snapshots / items / properties / meta / properties / retrievedAtAdded value: +{ + "type": "string" +} - added
Output schema / properties / stats / properties / meta / properties / asOfAdded value: +{ + "description": "Date of the latest datapoint (UTC)", + "type": "string" +} - added
Output schema / properties / stats / properties / meta / properties / citationAdded value: +{ + "type": "string" +} - added
Output schema / properties / stats / properties / meta / properties / pageAdded value: +{ + "description": "Canonical geotone.news page for this result — link it when citing", + "type": "string" +} - added
Output schema / properties / stats / properties / meta / properties / retrievedAtAdded value: +{ + "type": "string" +}
- Changed
get_relation9 fields changed- added
Input schema / properties / response_formatAdded value: +{ + "description": "concise (default): summary stats + the latest 30 days of the series. detailed: the full 90-day series and article sample (~3x the tokens).", + "enum": [ + "concise", + "detailed" + ], + "type": "string" +} - added
Output schema / properties / meta / properties / asOfAdded value: +{ + "description": "Date of the latest datapoint (UTC)", + "type": "string" +} - added
Output schema / properties / meta / properties / citationAdded value: +{ + "type": "string" +} - added
Output schema / properties / meta / properties / pageAdded value: +{ + "description": "Canonical geotone.news page for this result — link it when citing", + "type": "string" +} - added
Output schema / properties / meta / properties / retrievedAtAdded value: +{ + "type": "string" +} - added
Output schema / properties / snapshots / items / properties / meta / properties / asOfAdded value: +{ + "description": "Date of the latest datapoint (UTC)", + "type": "string" +} - added
Output schema / properties / snapshots / items / properties / meta / properties / citationAdded value: +{ + "type": "string" +} - added
Output schema / properties / snapshots / items / properties / meta / properties / pageAdded value: +{ + "description": "Canonical geotone.news page for this result — link it when citing", + "type": "string" +} - added
Output schema / properties / snapshots / items / properties / meta / properties / retrievedAtAdded value: +{ + "type": "string" +}
- Changed
get_story_chain8 fields changed- added
Output schema / properties / developments / items / properties / meta / properties / asOfAdded value: +{ + "description": "Date of the latest datapoint (UTC)", + "type": "string" +} - added
Output schema / properties / developments / items / properties / meta / properties / citationAdded value: +{ + "type": "string" +} - added
Output schema / properties / developments / items / properties / meta / properties / pageAdded value: +{ + "description": "Canonical geotone.news page for this result — link it when citing", + "type": "string" +} - added
Output schema / properties / developments / items / properties / meta / properties / retrievedAtAdded value: +{ + "type": "string" +} - added
Output schema / properties / meta / properties / asOfAdded value: +{ + "description": "Date of the latest datapoint (UTC)", + "type": "string" +} - added
Output schema / properties / meta / properties / citationAdded value: +{ + "type": "string" +} - added
Output schema / properties / meta / properties / pageAdded value: +{ + "description": "Canonical geotone.news page for this result — link it when citing", + "type": "string" +} - added
Output schema / properties / meta / properties / retrievedAtAdded value: +{ + "type": "string" +}
- Changed
get_topic17 fields changed- added
Input schema / properties / response_formatAdded value: +{ + "description": "concise (default): summary stats + the latest 30 days of the series. detailed: the full 90-day series and article sample (~3x the tokens).", + "enum": [ + "concise", + "detailed" + ], + "type": "string" +} - added
Output schema / properties / articles / items / properties / meta / properties / asOfAdded value: +{ + "description": "Date of the latest datapoint (UTC)", + "type": "string" +} - added
Output schema / properties / articles / items / properties / meta / properties / citationAdded value: +{ + "type": "string" +} - added
Output schema / properties / articles / items / properties / meta / properties / pageAdded value: +{ + "description": "Canonical geotone.news page for this result — link it when citing", + "type": "string" +} - added
Output schema / properties / articles / items / properties / meta / properties / retrievedAtAdded value: +{ + "type": "string" +} - added
Output schema / properties / meta / properties / asOfAdded value: +{ + "description": "Date of the latest datapoint (UTC)", + "type": "string" +} - added
Output schema / properties / meta / properties / citationAdded value: +{ + "type": "string" +} - added
Output schema / properties / meta / properties / pageAdded value: +{ + "description": "Canonical geotone.news page for this result — link it when citing", + "type": "string" +} - added
Output schema / properties / meta / properties / retrievedAtAdded value: +{ + "type": "string" +} - added
Output schema / properties / snapshots / items / properties / meta / properties / asOfAdded value: +{ + "description": "Date of the latest datapoint (UTC)", + "type": "string" +} - added
Output schema / properties / snapshots / items / properties / meta / properties / citationAdded value: +{ + "type": "string" +} - added
Output schema / properties / snapshots / items / properties / meta / properties / pageAdded value: +{ + "description": "Canonical geotone.news page for this result — link it when citing", + "type": "string" +} - added
Output schema / properties / snapshots / items / properties / meta / properties / retrievedAtAdded value: +{ + "type": "string" +} - added
Output schema / properties / stats / properties / meta / properties / asOfAdded value: +{ + "description": "Date of the latest datapoint (UTC)", + "type": "string" +} - added
Output schema / properties / stats / properties / meta / properties / citationAdded value: +{ + "type": "string" +} - added
Output schema / properties / stats / properties / meta / properties / pageAdded value: +{ + "description": "Canonical geotone.news page for this result — link it when citing", + "type": "string" +} - added
Output schema / properties / stats / properties / meta / properties / retrievedAtAdded value: +{ + "type": "string" +}
- Changed
get_trending16 fields changed- added
Output schema / properties / meta / properties / asOfAdded value: +{ + "description": "Date of the latest datapoint (UTC)", + "type": "string" +} - added
Output schema / properties / meta / properties / citationAdded value: +{ + "type": "string" +} - added
Output schema / properties / meta / properties / pageAdded value: +{ + "description": "Canonical geotone.news page for this result — link it when citing", + "type": "string" +} - added
Output schema / properties / meta / properties / retrievedAtAdded value: +{ + "type": "string" +} - added
Output schema / properties / movers / items / properties / meta / properties / asOfAdded value: +{ + "description": "Date of the latest datapoint (UTC)", + "type": "string" +} - added
Output schema / properties / movers / items / properties / meta / properties / citationAdded value: +{ + "type": "string" +} - added
Output schema / properties / movers / items / properties / meta / properties / pageAdded value: +{ + "description": "Canonical geotone.news page for this result — link it when citing", + "type": "string" +} - added
Output schema / properties / movers / items / properties / meta / properties / retrievedAtAdded value: +{ + "type": "string" +} - added
Output schema / properties / surging / items / properties / meta / properties / asOfAdded value: +{ + "description": "Date of the latest datapoint (UTC)", + "type": "string" +} - added
Output schema / properties / surging / items / properties / meta / properties / citationAdded value: +{ + "type": "string" +} - added
Output schema / properties / surging / items / properties / meta / properties / pageAdded value: +{ + "description": "Canonical geotone.news page for this result — link it when citing", + "type": "string" +} - added
Output schema / properties / surging / items / properties / meta / properties / retrievedAtAdded value: +{ + "type": "string" +} - added
Output schema / properties / surgingCountries / items / properties / meta / properties / asOfAdded value: +{ + "description": "Date of the latest datapoint (UTC)", + "type": "string" +} - added
Output schema / properties / surgingCountries / items / properties / meta / properties / citationAdded value: +{ + "type": "string" +} - added
Output schema / properties / surgingCountries / items / properties / meta / properties / pageAdded value: +{ + "description": "Canonical geotone.news page for this result — link it when citing", + "type": "string" +} - added
Output schema / properties / surgingCountries / items / properties / meta / properties / retrievedAtAdded value: +{ + "type": "string" +}
- Changed
get_wire12 fields changed- added
Output schema / properties / meta / properties / asOfAdded value: +{ + "description": "Date of the latest datapoint (UTC)", + "type": "string" +} - added
Output schema / properties / meta / properties / citationAdded value: +{ + "type": "string" +} - added
Output schema / properties / meta / properties / pageAdded value: +{ + "description": "Canonical geotone.news page for this result — link it when citing", + "type": "string" +} - added
Output schema / properties / meta / properties / retrievedAtAdded value: +{ + "type": "string" +} - added
Output schema / properties / stories / items / properties / meta / properties / asOfAdded value: +{ + "description": "Date of the latest datapoint (UTC)", + "type": "string" +} - added
Output schema / properties / stories / items / properties / meta / properties / citationAdded value: +{ + "type": "string" +} - added
Output schema / properties / stories / items / properties / meta / properties / pageAdded value: +{ + "description": "Canonical geotone.news page for this result — link it when citing", + "type": "string" +} - added
Output schema / properties / stories / items / properties / meta / properties / retrievedAtAdded value: +{ + "type": "string" +} - added
Output schema / properties / stories / items / properties / related / items / properties / meta / properties / asOfAdded value: +{ + "description": "Date of the latest datapoint (UTC)", + "type": "string" +} - added
Output schema / properties / stories / items / properties / related / items / properties / meta / properties / citationAdded value: +{ + "type": "string" +} - added
Output schema / properties / stories / items / properties / related / items / properties / meta / properties / pageAdded value: +{ + "description": "Canonical geotone.news page for this result — link it when citing", + "type": "string" +} - added
Output schema / properties / stories / items / properties / related / items / properties / meta / properties / retrievedAtAdded value: +{ + "type": "string" +}
- Changed
search_topics8 fields changed- added
Output schema / properties / meta / properties / asOfAdded value: +{ + "description": "Date of the latest datapoint (UTC)", + "type": "string" +} - added
Output schema / properties / meta / properties / citationAdded value: +{ + "type": "string" +} - added
Output schema / properties / meta / properties / pageAdded value: +{ + "description": "Canonical geotone.news page for this result — link it when citing", + "type": "string" +} - added
Output schema / properties / meta / properties / retrievedAtAdded value: +{ + "type": "string" +} - added
Output schema / properties / results / items / properties / meta / properties / asOfAdded value: +{ + "description": "Date of the latest datapoint (UTC)", + "type": "string" +} - added
Output schema / properties / results / items / properties / meta / properties / citationAdded value: +{ + "type": "string" +} - added
Output schema / properties / results / items / properties / meta / properties / pageAdded value: +{ + "description": "Canonical geotone.news page for this result — link it when citing", + "type": "string" +} - added
Output schema / properties / results / items / properties / meta / properties / retrievedAtAdded value: +{ + "type": "string" +}
1 tool update
- Changed
get_wire1 field changed- added
Output schema / properties / stories / items / properties / languagesAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +}
1 tool update
- Changed
get_country3 fields changed- added
Output schema / properties / conflictAdded value: +{ + "additionalProperties": true, + "description": "UCDP GED trailing-12-month organized-violence totals; recent months preliminary", + "properties": { + "civilianDeaths": { + "type": [ + "number", + "null" + ] + }, + "events": { + "type": [ + "number", + "null" + ] + }, + "fatalities": { + "type": [ + "number", + "null" + ] + }, + "source": { + "type": "string" + }, + "window": { + "type": "string" + } + }, + "type": [ + "object", + "null" + ] +} - added
Output schema / properties / coverageOriginAdded value: +{ + "additionalProperties": true, + "description": "Trailing-14d share of coverage about the country produced by domestic outlets (floor estimate)", + "properties": { + "knownSourceArticles14d": { + "type": [ + "number", + "null" + ] + }, + "localSharePct": { + "type": [ + "number", + "null" + ] + }, + "note": { + "type": "string" + } + }, + "type": [ + "object", + "null" + ] +} - added
Output schema / properties / displacementAdded value: +{ + "additionalProperties": true, + "description": "UNHCR year-end displacement stocks", + "properties": { + "asylumSeekers": { + "type": [ + "number", + "null" + ] + }, + "idps": { + "type": [ + "number", + "null" + ] + }, + "refugeesAbroad": { + "type": [ + "number", + "null" + ] + }, + "refugeesHosted": { + "type": [ + "number", + "null" + ] + }, + "source": { + "type": "string" + }, + "year": { + "type": [ + "number", + "null" + ] + } + }, + "type": [ + "object", + "null" + ] +}
8 tool updates
- Changed
get_briefing1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "properties": { + "bodyMarkdown": { + "type": "string" + }, + "date": { + "type": "string" + }, + "headline": { + "type": "string" + }, + "meta": { + "properties": { + "attribution": { + "type": "string" + }, + "license": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "type": "object" + }, + "page": { + "type": "string" + } + }, + "required": [ + "date", + "headline", + "bodyMarkdown" + ], + "type": "object" +}
- Changed
get_country1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "properties": { + "activeTopics": { + "items": { + "additionalProperties": true, + "properties": { + "meta": { + "properties": { + "attribution": { + "type": "string" + }, + "license": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "iso2": { + "type": "string" + }, + "meta": { + "properties": { + "attribution": { + "type": "string" + }, + "license": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "page": { + "type": "string" + }, + "snapshots": { + "items": { + "additionalProperties": true, + "properties": { + "date": { + "type": "string" + }, + "meta": { + "properties": { + "attribution": { + "type": "string" + }, + "license": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "type": "object" + }, + "toneAvg": { + "type": [ + "number", + "null" + ] + }, + "volIntensity": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" + }, + "type": "array" + }, + "stats": { + "additionalProperties": true, + "properties": { + "meta": { + "properties": { + "attribution": { + "type": "string" + }, + "license": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "type": "object" + }, + "wowChangePct": { + "type": [ + "number", + "null" + ] + }, + "zScore": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" + } + }, + "required": [ + "iso2", + "name", + "snapshots" + ], + "type": "object" +}
- Changed
get_relation1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "properties": { + "meta": { + "properties": { + "attribution": { + "type": "string" + }, + "license": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "type": "object" + }, + "pair": { + "type": "string" + }, + "snapshots": { + "items": { + "additionalProperties": true, + "properties": { + "coCoverageVol": { + "type": [ + "number", + "null" + ] + }, + "date": { + "type": "string" + }, + "meta": { + "properties": { + "attribution": { + "type": "string" + }, + "license": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "type": "object" + }, + "toneAvg": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "pair", + "snapshots" + ], + "type": "object" +}
- Changed
get_story_chain1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "properties": { + "country": { + "type": [ + "string", + "null" + ] + }, + "developments": { + "items": { + "additionalProperties": true, + "properties": { + "domain": { + "type": "string" + }, + "firstSeen": { + "type": "string" + }, + "meta": { + "properties": { + "attribution": { + "type": "string" + }, + "license": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "type": "object" + }, + "outlets": { + "type": "number" + }, + "title": { + "type": "string" + }, + "toneAvg": { + "type": "number" + }, + "topic": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "firstSeen": { + "type": "string" + }, + "id": { + "type": "number" + }, + "lastDevelopment": { + "type": "string" + }, + "meta": { + "properties": { + "attribution": { + "type": "string" + }, + "license": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "type": "object" + }, + "page": { + "type": "string" + } + }, + "required": [ + "id", + "developments" + ], + "type": "object" +}
- Changed
get_topic1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "properties": { + "articles": { + "items": { + "additionalProperties": true, + "properties": { + "meta": { + "properties": { + "attribution": { + "type": "string" + }, + "license": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "type": "object" + }, + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "meta": { + "properties": { + "attribution": { + "type": "string" + }, + "license": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "page": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "snapshots": { + "items": { + "additionalProperties": true, + "properties": { + "date": { + "type": "string" + }, + "meta": { + "properties": { + "attribution": { + "type": "string" + }, + "license": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "type": "object" + }, + "toneAvg": { + "type": [ + "number", + "null" + ] + }, + "volIntensity": { + "type": [ + "number", + "null" + ] + }, + "volRaw": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" + }, + "type": "array" + }, + "stats": { + "additionalProperties": true, + "properties": { + "meta": { + "properties": { + "attribution": { + "type": "string" + }, + "license": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "type": "object" + }, + "wowChangePct": { + "type": [ + "number", + "null" + ] + }, + "zScore": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" + } + }, + "required": [ + "slug", + "name", + "snapshots" + ], + "type": "object" +}
- Changed
get_trending1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "properties": { + "meta": { + "properties": { + "attribution": { + "type": "string" + }, + "license": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "type": "object" + }, + "movers": { + "items": { + "additionalProperties": true, + "properties": { + "latestVolIntensity": { + "type": [ + "number", + "null" + ] + }, + "meta": { + "properties": { + "attribution": { + "type": "string" + }, + "license": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "wowChange": { + "type": "number" + } + }, + "type": "object" + }, + "type": "array" + }, + "surging": { + "items": { + "additionalProperties": true, + "properties": { + "latestVolIntensity": { + "type": [ + "number", + "null" + ] + }, + "meta": { + "properties": { + "attribution": { + "type": "string" + }, + "license": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "zScore": { + "type": "number" + } + }, + "type": "object" + }, + "type": "array" + }, + "surgingCountries": { + "items": { + "additionalProperties": true, + "properties": { + "iso2": { + "type": "string" + }, + "meta": { + "properties": { + "attribution": { + "type": "string" + }, + "license": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "zScore": { + "type": "number" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
get_wire1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "properties": { + "meta": { + "properties": { + "attribution": { + "type": "string" + }, + "license": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "type": "object" + }, + "page": { + "type": "string" + }, + "stories": { + "items": { + "additionalProperties": true, + "properties": { + "chainId": { + "type": [ + "number", + "null" + ] + }, + "countries": { + "items": { + "type": "string" + }, + "type": "array" + }, + "domain": { + "type": "string" + }, + "firstSeen": { + "type": "string" + }, + "lastSeen": { + "type": "string" + }, + "meta": { + "properties": { + "attribution": { + "type": "string" + }, + "license": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "type": "object" + }, + "outlets": { + "type": "number" + }, + "rank": { + "type": "number" + }, + "related": { + "items": { + "additionalProperties": true, + "properties": { + "meta": { + "properties": { + "attribution": { + "type": "string" + }, + "license": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "type": "object" + }, + "outlets": { + "type": "number" + }, + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "timeline": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "toneAvg": { + "type": "number" + }, + "topic": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "stories" + ], + "type": "object" +}
- Changed
search_topics1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "properties": { + "meta": { + "properties": { + "attribution": { + "type": "string" + }, + "license": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "type": "object" + }, + "query": { + "type": "string" + }, + "results": { + "items": { + "additionalProperties": true, + "properties": { + "latestToneAvg": { + "type": [ + "number", + "null" + ] + }, + "latestVolIntensity": { + "type": [ + "number", + "null" + ] + }, + "meta": { + "properties": { + "attribution": { + "type": "string" + }, + "license": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "page": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "zScore": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "query", + "results" + ], + "type": "object" +}
8 tool updates
- First observed
get_briefing - First observed
get_country - First observed
get_relation - First observed
get_story_chain - First observed
get_topic - First observed
get_trending - First observed
get_wire - First observed
search_topics
Related MCP Connectors
News for agents: 100k+ articles/day deduplicated into situations with timelines. Free, no key.
Real-time corroborated news events + 5-year archive, for agents. Free tier, no key.
News momentum + what-changed outcome tools for agents. Signals + links, ~296 sources.
Real-time news search across 500,000+ sources in 60+ languages with sentiment and entities.
Related MCP Servers
- AlicenseAqualityBmaintenanceReal-time financial news for AI agents and trading bots — AI-enriched stories with per-ticker analysis, a 1–10 relevance score, SEC Form-4 insider transactions, plus trending and "actionable-now" feeds. Free tier, OAuth, no API key to paste.112MIT
- AlicenseNot gradedqualityCmaintenanceProvides news sentiment scores, media volume trends, and historical coverage data for any topic, enabling AI to analyze positive or negative coverage over time.1MIT
- AlicenseNot gradedqualityCmaintenanceProvides real-time trending topics, news headlines, article summaries, and full-text extraction for AI assistants across 250+ countries and categories.100 npm1ISC
- AlicenseNot gradedqualityCmaintenanceReal-time news events, clustered by AI from hundreds of sources, classified by topic and geography, ranked by importance.35MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.