Skip to main content
Glama

HubVibe: Pay-per-Call Agent Tools: Web Search, Email Verify, KYC Screening, Stocks, Crypto, News

Current news on any topic, in any language

hubvibe_news_search
Read-onlyIdempotent

News search API: current news on any topic in any language from the GDELT Project, which reads the world's press every 15 minutes. Titles matched in their original script, newest first, with publisher, language and link; filter to one language; a US stock ticker searches the company's name. Window up to 30 days (default 72 hours). Input: query and/or symbol; optional language, limit, since_hours. $0.25 per call. Returns: query, symbol, language, edition{}, sources_searched[], sources_ok[], sources_failed[], articles[{title, url, source_name, source_url, published_at, summary, feed}], article_count, limit, since_hours, notes[], checked_at.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoDefault 20.
queryNoTopic words in any language (半導体, 반도체, tarifs douaniers).
regionNoAccepted for compatibility; GDELT does not record a publisher's country, so use language.
symbolNoOptional US ticker (AAPL, MSFT): searches the company's name from the SEC ticker table.
languageNoOptional answer language, BCP-47 (en, ja, pt-BR). Default: the input's.
since_hoursNoOnly articles published within this many hours.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
statusYes
workerYes
price_usdYes
provenanceYes
receipt_idYes
attributionNo
receipt_urlYes
billing_warningNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed24 schema fields changed
    • changedInput schema / properties / language / description
      Previous value: -"Optional BCP-47 language tag (en, ja, pt-BR, zh-Hant): every prose field of the answer is written in this language. Default: the language of the material or question."New value: +"Optional answer language, BCP-47 (en, ja, pt-BR). Default: the input's."
    • removedOutput schema / description
      Removed value: -"The 200 body of every paid /work call. `result` is the worker's own output (its schema is per route); everything else is the same on every /work route. A receipt for the job is at `receipt_url`."
    • removedOutput schema / properties / attribution / description
      Removed value: -"Present only when the result's text was machine-translated: the credit to show with it."
    • removedOutput schema / properties / attribution / items / description
      Removed value: -"A credit."
    • removedOutput schema / properties / attribution / items / properties
      Removed value: -{
      -  "text": {
      -    "description": "Credit.",
      -    "examples": [
      -      "Translated by Google"
      -    ],
      -    "type": "string"
      -  },
      -  "url": {
      -    "description": "Link.",
      -    "examples": [
      -      "https://translate.google.com"
      -    ],
      -    "type": "string"
      -  }
      -}
    • removedOutput schema / properties / attribution / items / required
      Removed value: -[
      -  "text",
      -  "url"
      -]
    • removedOutput schema / properties / attribution / items / type
      Removed value: -"object"
    • removedOutput schema / properties / billing_warning / description
      Removed value: -"Present only when the charge was recorded with a caveat."
    • removedOutput schema / properties / billing_warning / examples
      Removed value: -[
      -  "settlement pending"
      -]
    • removedOutput schema / properties / price_usd / description
      Removed value: -"What this call cost, in USD."
    • removedOutput schema / properties / price_usd / examples
      Removed value: -[
      -  0.02
      -]
    • removedOutput schema / properties / provenance / description
      Removed value: -"How the result was produced: which providers ran and how long each took."
    • removedOutput schema / properties / provenance / properties
      Removed value: -{
      -  "attempts": {
      -    "description": "Provider attempts made, including retries and failovers.",
      -    "examples": [
      -      1
      -    ],
      -    "type": "integer"
      -  },
      -  "elapsed_ms": {
      -    "description": "Wall-clock milliseconds for the whole job.",
      -    "examples": [
      -      340
      -    ],
      -    "type": "integer"
      -  },
      -  "providers_used": {
      -    "description": "Providers that served the job.",
      -    "examples": [
      -      [
      -        "coinbase-advanced-trade-public"
      -      ]
      -    ],
      -    "items": {
      -      "description": "Provider name.",
      -      "examples": [
      -        "coinbase-advanced-trade-public"
      -      ],
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "steps": {
      -    "description": "Every step the job ran, in order.",
      -    "items": {
      -      "description": "One step of the job.",
      -      "properties": {
      -        "ms": {
      -          "description": "Milliseconds the step took.",
      -          "examples": [
      -            312
      -          ],
      -          "type": "integer"
      -        },
      -        "ok": {
      -          "description": "Whether the step succeeded.",
      -          "examples": [
      -            true
      -          ],
      -          "type": "boolean"
      -        },
      -        "provider": {
      -          "description": "Provider that served the step.",
      -          "examples": [
      -            "coinbase-advanced-trade-public"
      -          ],
      -          "type": "string"
      -        },
      -        "reason": {
      -          "description": "Failure reason, on a failed step.",
      -          "examples": [
      -            "provider_timeout"
      -          ],
      -          "type": "string"
      -        },
      -        "step": {
      -          "description": "Step name inside the worker.",
      -          "examples": [
      -            "quote"
      -          ],
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "step",
      -        "ok",
      -        "ms"
      -      ],
      -      "type": "object"
      -    },
      -    "type": "array"
      -  }
      -}
    • removedOutput schema / properties / provenance / required
      Removed value: -[
      -  "steps",
      -  "providers_used",
      -  "attempts",
      -  "elapsed_ms"
      -]
    • removedOutput schema / properties / receipt_id / description
      Removed value: -"Receipt id for this job."
    • removedOutput schema / properties / receipt_id / examples
      Removed value: -[
      -  "rcpt_9f1c2b3a4d5e6f70"
      -]
    • removedOutput schema / properties / receipt_url / description
      Removed value: -"Where to fetch the machine-readable receipt (free, no payment)."
    • removedOutput schema / properties / receipt_url / examples
      Removed value: -[
      -  "/work/receipts/rcpt_9f1c2b3a4d5e6f70"
      -]
    • removedOutput schema / properties / result / properties
      Removed value: -{
      -  "article_count": {
      -    "description": "Articles returned.",
      -    "examples": [
      -      20
      -    ],
      -    "type": "integer"
      -  },
      -  "articles": {
      -    "description": "Articles, newest first, duplicates by title removed.",
      -    "items": {
      -      "description": "One article.",
      -      "properties": {
      -        "feed": {
      -          "description": "Which source it came from.",
      -          "enum": [
      -            "gdelt"
      -          ],
      -          "examples": [
      -            "gdelt"
      -          ],
      -          "type": "string"
      -        },
      -        "language": {
      -          "description": "Article language (BCP-47).",
      -          "examples": [
      -            "ja"
      -          ],
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "published_at": {
      -          "description": "When GDELT first saw it (UTC, 15-minute batches).",
      -          "examples": [
      -            "2026-09-27T02:30:00Z"
      -          ],
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "source_name": {
      -          "description": "Publisher domain.",
      -          "examples": [
      -            "nikkei.com"
      -          ],
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "source_url": {
      -          "description": "Publisher site.",
      -          "examples": [
      -            "https://nikkei.com"
      -          ],
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "summary": {
      -          "description": "Summary; GDELT carries none, so null.",
      -          "examples": [
      -            null
      -          ],
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "title": {
      -          "description": "Headline in its original language.",
      -          "examples": [
      -            "半導体株が反発、関税協議の進展で"
      -          ],
      -          "type": "string"
      -        },
      -        "url": {
      -          "description": "The publisher's article link.",
      -          "examples": [
      -            "https://www.nikkei.com/article/DGXZQO..."
      -          ],
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "title",
      -        "url",
      -        "source_name",
      -        "source_url",
      -        "published_at",
      -        "summary",
      -        "language",
      -        "feed"
      -      ],
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  "attribution": {
      -    "description": "The citation GDELT's licence requires with every use.",
      -    "properties": {
      -      "text": {
      -        "description": "Required citation.",
      -        "examples": [
      -          "Source: The GDELT Project"
      -        ],
      -        "type": "string"
      -      },
      -      "url": {
      -        "description": "Required link.",
      -        "examples": [
      -          "https://www.gdeltproject.org/"
      -        ],
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "text",
      -      "url"
      -    ],
      -    "type": "object"
      -  },
      -  "checked_at": {
      -    "description": "When this node read the source (UTC). Nothing here is cached.",
      -    "examples": [
      -      "2026-09-26T18:00:00Z"
      -    ],
      -    "format": "date-time",
      -    "type": "string"
      -  },
      -  "language": {
      -    "description": "BCP-47 language asked for; null when none.",
      -    "examples": [
      -      "ja"
      -    ],
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "language_filter": {
      -    "description": "Language the articles were limited to; null when every language was searched.",
      -    "examples": [
      -      "ja"
      -    ],
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "limit": {
      -    "description": "Most articles asked for.",
      -    "examples": [
      -      20
      -    ],
      -    "type": "integer"
      -  },
      -  "notes": {
      -    "description": "Caveats; empty when none.",
      -    "examples": [
      -      []
      -    ],
      -    "items": {
      -      "description": "A caveat.",
      -      "examples": [
      -        "GDELT does not record a publisher's country, so region is not a filter."
      -      ],
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "query": {
      -    "description": "Topic searched, as given; null when only a symbol was asked.",
      -    "examples": [
      -      "半導体"
      -    ],
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "since_hours": {
      -    "description": "Window searched, in hours.",
      -    "examples": [
      -      72
      -    ],
      -    "type": "integer"
      -  },
      -  "sources_failed": {
      -    "description": "Searches that did not answer, with the reason; never silently dropped.",
      -    "examples": [
      -      []
      -    ],
      -    "items": {
      -      "description": "A search that failed for this call.",
      -      "properties": {
      -        "reason": {
      -          "description": "Why it did not answer this call.",
      -          "examples": [
      -            "Symbol news covers US-listed tickers"
      -          ],
      -          "type": "string"
      -        },
      -        "source": {
      -          "description": "Search id.",
      -          "examples": [
      -            "gdelt:symbol:7203.T"
      -          ],
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "source",
      -        "reason"
      -      ],
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  "sources_ok": {
      -    "description": "Searches that answered.",
      -    "examples": [
      -      [
      -        "gdelt:query"
      -      ]
      -    ],
      -    "items": {
      -      "description": "Search id.",
      -      "examples": [
      -        "gdelt:query"
      -      ],
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "sources_searched": {
      -    "description": "Searches this call ran.",
      -    "examples": [
      -      [
      -        "gdelt:query"
      -      ]
      -    ],
      -    "items": {
      -      "description": "Search id.",
      -      "examples": [
      -        "gdelt:query"
      -      ],
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "symbol": {
      -    "description": "Ticker whose company name was searched; null when none.",
      -    "examples": [
      -      "AAPL"
      -    ],
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  }
      -}
    • removedOutput schema / properties / result / required
      Removed value: -[
      -  "query",
      -  "symbol",
      -  "language",
      -  "language_filter",
      -  "sources_searched",
      -  "sources_ok",
      -  "sources_failed",
      -  "articles",
      -  "article_count",
      -  "limit",
      -  "since_hours",
      -  "attribution",
      -  "notes",
      -  "checked_at"
      -]
    • removedOutput schema / properties / status / description
      Removed value: -"Present only on a delivered result."
    • removedOutput schema / properties / worker / description
      Removed value: -"Catalog name of the worker that ran."
    • removedOutput schema / properties / worker / examples
      Removed value: -[
      -  "market.quote"
      -]
    • removedOutput schema / title
      Removed value: -"news.search response"
  2. Changed1 schema field changed
    • addedOutput schema / properties / attribution
      Added value: +{
      +  "description": "Present only when the result's text was machine-translated: the credit to show with it.",
      +  "items": {
      +    "description": "A credit.",
      +    "properties": {
      +      "text": {
      +        "description": "Credit.",
      +        "examples": [
      +          "Translated by Google"
      +        ],
      +        "type": "string"
      +      },
      +      "url": {
      +        "description": "Link.",
      +        "examples": [
      +          "https://translate.google.com"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "text",
      +      "url"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  3. Changed42 schema fields changed
    • changedInput schema / properties / region / description
      Previous value: -"ISO 3166-1 alpha-2 country whose publishers to search (JP, KR, GB). Default: the language's home edition."New value: +"Accepted for compatibility; GDELT does not record a publisher's country, so use language."
    • changedInput schema / properties / symbol / description
      Previous value: -"Optional ticker (AAPL, 7203.T, 005930.KS) for that stock's own news feed."New value: +"Optional US ticker (AAPL, MSFT): searches the company's name from the SEC ticker table."
    • changedOutput schema / properties / result / properties / articles / items / properties / feed / description
      Previous value: -"Which feed it came from."New value: +"Which source it came from."
    • changedOutput schema / properties / result / properties / articles / items / properties / feed / enum
      Previous value: -[
      -  "google_news",
      -  "yahoo_finance"
      -]New value: +[
      +  "gdelt"
      +]
    • changedOutput schema / properties / result / properties / articles / items / properties / feed / examples
      Previous value: -[
      -  "google_news"
      -]New value: +[
      +  "gdelt"
      +]
    • addedOutput schema / properties / result / properties / articles / items / properties / language
      Added value: +{
      +  "description": "Article language (BCP-47).",
      +  "examples": [
      +    "ja"
      +  ],
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / result / properties / articles / items / properties / published_at / description
      Previous value: -"Publication time (UTC)."New value: +"When GDELT first saw it (UTC, 15-minute batches)."
    • changedOutput schema / properties / result / properties / articles / items / properties / published_at / examples
      Previous value: -[
      -  "2026-09-27T02:32:00Z"
      -]New value: +[
      +  "2026-09-27T02:30:00Z"
      +]
    • changedOutput schema / properties / result / properties / articles / items / properties / source_name / description
      Previous value: -"Publisher."New value: +"Publisher domain."
    • changedOutput schema / properties / result / properties / articles / items / properties / source_name / examples
      Previous value: -[
      -  "日本経済新聞"
      -]New value: +[
      +  "nikkei.com"
      +]
    • changedOutput schema / properties / result / properties / articles / items / properties / source_url / examples
      Previous value: -[
      -  "https://www.nikkei.com"
      -]New value: +[
      +  "https://nikkei.com"
      +]
    • changedOutput schema / properties / result / properties / articles / items / properties / summary / description
      Previous value: -"Plain-text summary when the feed carries one."New value: +"Summary; GDELT carries none, so null."
    • changedOutput schema / properties / result / properties / articles / items / properties / summary / examples
      Previous value: -[
      -  "半導体関連株が..."
      -]New value: +[
      +  null
      +]
    • changedOutput schema / properties / result / properties / articles / items / properties / title / description
      Previous value: -"Headline, publisher suffix removed."New value: +"Headline in its original language."
    • changedOutput schema / properties / result / properties / articles / items / properties / url / description
      Previous value: -"Article link (Google News links resolve to the publisher)."New value: +"The publisher's article link."
    • changedOutput schema / properties / result / properties / articles / items / properties / url / examples
      Previous value: -[
      -  "https://news.google.com/rss/articles/CBMi..."
      -]New value: +[
      +  "https://www.nikkei.com/article/DGXZQO..."
      +]
    • changedOutput schema / properties / result / properties / articles / items / required
      Previous value: -[
      -  "title",
      -  "url",
      -  "source_name",
      -  "source_url",
      -  "published_at",
      -  "summary",
      -  "feed"
      -]New value: +[
      +  "title",
      +  "url",
      +  "source_name",
      +  "source_url",
      +  "published_at",
      +  "summary",
      +  "language",
      +  "feed"
      +]
    • addedOutput schema / properties / result / properties / attribution
      Added value: +{
      +  "description": "The citation GDELT's licence requires with every use.",
      +  "properties": {
      +    "text": {
      +      "description": "Required citation.",
      +      "examples": [
      +        "Source: The GDELT Project"
      +      ],
      +      "type": "string"
      +    },
      +    "url": {
      +      "description": "Required link.",
      +      "examples": [
      +        "https://www.gdeltproject.org/"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "text",
      +    "url"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / properties / result / properties / edition
      Removed value: -{
      -  "description": "The Google News edition used; null when no query was given.",
      -  "properties": {
      -    "ceid": {
      -      "description": "Edition id.",
      -      "examples": [
      -        "JP:ja"
      -      ],
      -      "type": "string"
      -    },
      -    "gl": {
      -      "description": "Country edition.",
      -      "examples": [
      -        "JP"
      -      ],
      -      "type": "string"
      -    },
      -    "hl": {
      -      "description": "Google News language code.",
      -      "examples": [
      -        "ja"
      -      ],
      -      "type": "string"
      -    },
      -    "verified": {
      -      "description": "True for the 71 editions verified to answer; false for a pair tried on request.",
      -      "examples": [
      -        true
      -      ],
      -      "type": "boolean"
      -    }
      -  },
      -  "required": [
      -    "hl",
      -    "gl",
      -    "ceid",
      -    "verified"
      -  ],
      -  "type": [
      -    "object",
      -    "null"
      -  ]
      -}
    • changedOutput schema / properties / result / properties / language / description
      Previous value: -"BCP-47 language the edition was chosen for."New value: +"BCP-47 language asked for; null when none."
    • changedOutput schema / properties / result / properties / language / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / result / properties / language_filter
      Added value: +{
      +  "description": "Language the articles were limited to; null when every language was searched.",
      +  "examples": [
      +    "ja"
      +  ],
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / result / properties / notes / items / examples
      Previous value: -[
      -  "Edition XX:yy returned nothing for this query; results are from the en/US edition."
      -]New value: +[
      +  "GDELT does not record a publisher's country, so region is not a filter."
      +]
    • changedOutput schema / properties / result / properties / since_hours / description
      Previous value: -"Window applied, in hours; null when none."New value: +"Window searched, in hours."
    • changedOutput schema / properties / result / properties / since_hours / examples
      Previous value: -[
      -  24
      -]New value: +[
      +  72
      +]
    • changedOutput schema / properties / result / properties / since_hours / type
      Previous value: -[
      -  "integer",
      -  "null"
      -]New value: +"integer"
    • changedOutput schema / properties / result / properties / sources_failed / description
      Previous value: -"Feeds that did not answer, with the reason; never silently dropped."New value: +"Searches that did not answer, with the reason; never silently dropped."
    • changedOutput schema / properties / result / properties / sources_failed / items / description
      Previous value: -"A feed that failed for this call."New value: +"A search that failed for this call."
    • changedOutput schema / properties / result / properties / sources_failed / items / properties / reason / examples
      Previous value: -[
      -  "Yahoo Finance RSS (7203.T) timed out"
      -]New value: +[
      +  "Symbol news covers US-listed tickers"
      +]
    • changedOutput schema / properties / result / properties / sources_failed / items / properties / source / description
      Previous value: -"Feed id."New value: +"Search id."
    • changedOutput schema / properties / result / properties / sources_failed / items / properties / source / examples
      Previous value: -[
      -  "yahoo_finance:7203.T"
      -]New value: +[
      +  "gdelt:symbol:7203.T"
      +]
    • changedOutput schema / properties / result / properties / sources_ok / description
      Previous value: -"Feeds that answered."New value: +"Searches that answered."
    • changedOutput schema / properties / result / properties / sources_ok / examples
      Previous value: -[
      -  [
      -    "google_news:JP:ja"
      -  ]
      -]New value: +[
      +  [
      +    "gdelt:query"
      +  ]
      +]
    • changedOutput schema / properties / result / properties / sources_ok / items / description
      Previous value: -"Feed id."New value: +"Search id."
    • changedOutput schema / properties / result / properties / sources_ok / items / examples
      Previous value: -[
      -  "google_news:JP:ja"
      -]New value: +[
      +  "gdelt:query"
      +]
    • changedOutput schema / properties / result / properties / sources_searched / description
      Previous value: -"Feeds this call asked."New value: +"Searches this call ran."
    • changedOutput schema / properties / result / properties / sources_searched / examples
      Previous value: -[
      -  [
      -    "google_news:JP:ja"
      -  ]
      -]New value: +[
      +  [
      +    "gdelt:query"
      +  ]
      +]
    • changedOutput schema / properties / result / properties / sources_searched / items / description
      Previous value: -"Feed id."New value: +"Search id."
    • changedOutput schema / properties / result / properties / sources_searched / items / examples
      Previous value: -[
      -  "google_news:JP:ja"
      -]New value: +[
      +  "gdelt:query"
      +]
    • changedOutput schema / properties / result / properties / symbol / description
      Previous value: -"Ticker whose own feed was read; null when none."New value: +"Ticker whose company name was searched; null when none."
    • changedOutput schema / properties / result / properties / symbol / examples
      Previous value: -[
      -  "7203.T"
      -]New value: +[
      +  "AAPL"
      +]
    • changedOutput schema / properties / result / required
      Previous value: -[
      -  "query",
      -  "symbol",
      -  "language",
      -  "edition",
      -  "sources_searched",
      -  "sources_ok",
      -  "sources_failed",
      -  "articles",
      -  "article_count",
      -  "limit",
      -  "since_hours",
      -  "notes",
      -  "checked_at"
      -]New value: +[
      +  "query",
      +  "symbol",
      +  "language",
      +  "language_filter",
      +  "sources_searched",
      +  "sources_ok",
      +  "sources_failed",
      +  "articles",
      +  "article_count",
      +  "limit",
      +  "since_hours",
      +  "attribution",
      +  "notes",
      +  "checked_at"
      +]
  4. Added

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, openWorld, non-destructive), and the description layers on genuinely additive behavior: $0.25 per call cost, the 15-minute ingestion cadence, result ordering, the window limits, and the presence of sources_failed[]/notes[] signals when sources error out. That is exactly the context annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense paragraph is front-loaded with the source and behavior, which is good, but the trailing 'Returns: ...' enumeration re-lists every output field even though a full output schema already exists. That block is redundant filler for this tool and dilutes an otherwise tight description.

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?

With an output schema present, the description needn't define return values, and the input semantics, cost, freshness and failure signaling are all covered. The only real gap is routing guidance against related search/research siblings, and the redundant return-field listing occupies space without adding information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description restates the input set (query and/or symbol, optional language, limit, since_hours) and adds that language acts as an output-language filter, but it omits the region parameter's compatibility caveat, leaving the structured schema to do the heavy lifting.

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?

States a specific verb and resource (news search over the GDELT press corpus) and pins down scope: any topic, any language, titles in original script, newest first. It is clearly distinguishable from siblings like hubvibe_search_web or hubvibe_social_x_pulse because it names the underlying source and its refresh cadence.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies when the tool fits (current news, up to a 30-day window, default 72 hours) and explains that a ticker symbol searches a company name, but never states when to prefer it over hubvibe_search_web, hubvibe_research_web or the social tools. Usage is inferable rather than explicit.

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.