Skip to main content
Glama

Geotone — Global News Signals

Topic statistics

get_topic
Read-only

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
slugYesTopic slug, e.g. 'ukraine-war'
response_formatNoconcise (default): summary stats + the latest 30 days of the series. detailed: the full 90-day series and article sample (~3x the tokens).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
metaNo
nameYes
pageNo
slugYes
statsNo
articlesNo
snapshotsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed17 schema fields changed
    • addedInput schema / properties / response_format
      Added 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"
      +}
    • addedOutput schema / properties / articles / items / properties / meta / properties / asOf
      Added value: +{
      +  "description": "Date of the latest datapoint (UTC)",
      +  "type": "string"
      +}
    • addedOutput schema / properties / articles / items / properties / meta / properties / citation
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / articles / items / properties / meta / properties / page
      Added value: +{
      +  "description": "Canonical geotone.news page for this result — link it when citing",
      +  "type": "string"
      +}
    • addedOutput schema / properties / articles / items / properties / meta / properties / retrievedAt
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / meta / properties / asOf
      Added value: +{
      +  "description": "Date of the latest datapoint (UTC)",
      +  "type": "string"
      +}
    • addedOutput schema / properties / meta / properties / citation
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / meta / properties / page
      Added value: +{
      +  "description": "Canonical geotone.news page for this result — link it when citing",
      +  "type": "string"
      +}
    • addedOutput schema / properties / meta / properties / retrievedAt
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / snapshots / items / properties / meta / properties / asOf
      Added value: +{
      +  "description": "Date of the latest datapoint (UTC)",
      +  "type": "string"
      +}
    • addedOutput schema / properties / snapshots / items / properties / meta / properties / citation
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / snapshots / items / properties / meta / properties / page
      Added value: +{
      +  "description": "Canonical geotone.news page for this result — link it when citing",
      +  "type": "string"
      +}
    • addedOutput schema / properties / snapshots / items / properties / meta / properties / retrievedAt
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / stats / properties / meta / properties / asOf
      Added value: +{
      +  "description": "Date of the latest datapoint (UTC)",
      +  "type": "string"
      +}
    • addedOutput schema / properties / stats / properties / meta / properties / citation
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / stats / properties / meta / properties / page
      Added value: +{
      +  "description": "Canonical geotone.news page for this result — link it when citing",
      +  "type": "string"
      +}
    • addedOutput schema / properties / stats / properties / meta / properties / retrievedAt
      Added value: +{
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • changedOutput 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"
      +}
  3. First observed

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources