Hottub News
Worldwide news for agents: search, sync and story clusters across outlets and languages. No key.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"hottub-news": {
"url": "https://hottub.news/mcp"
}
}
}Remote-Endpunkte
https://hottub.news/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (9)
🟢search_news(lang, country, topic, source, kind, ...)
Newest-first headlines from worldwide sources, optionally filtered by words, language, country, topic, source, kind and time.
Eingabe-Schema
{
"type": "object",
"properties": {
"lang": {
"type": "string",
"description": "Comma-separated ISO 639-1 codes, e.g. \"en,es\""
},
"country": {
"type": "string",
"description": "Comma-separated ISO 3166-1 alpha-2 codes of the publisher's country, e.g. \"US,GB\""
},
"topic": {
"type": "string",
"description": "Comma-separated topics, e.g. \"space,science\""
},
"source": {
"type": "string",
"description": "Comma-separated source ids (see list_sources) or publisher domains"
},
"kind": {
"type": "string",
"description": "Comma-separated: article, press_release, official, community, research, sponsored"
},
"category": {
"type": "string",
"description": "Comma-separated IPTC top-level categories: arts-culture-entertainment, conflict-war, crime-law, disaster-accident, economy-business, education, environment, health, human-interest, labour, lifestyle-leisure, politics, religion, science-technology, society, sport, weather"
},
"sentiment": {
"type": "string",
"description": "Comma-separated: negative, neutral, positive"
},
"political": {
"type": "boolean",
"description": "true: political stories only (political score ≥ 0.5); false: non-political only"
},
"tone_min": {
"type": "number",
"minimum": -1,
"maximum": 1,
"description": "Only items with tone ≥ this (-1 most negative … 1 most positive)"
},
"tone_max": {
"type": "number",
"minimum": -1,
"maximum": 1
},
"since": {
"type": "string",
"description": "Only items published at/after this: RFC 3339, a date, or an age like \"6h\", \"2d\""
},
"until": {
"type": "string",
"description": "Only items published at/before this"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 500,
"default": 50
},
"sponsored": {
"type": "string",
"enum": [
"include",
"exclude",
"only"
],
"default": "include",
"description": "Paid press releases are labeled; exclude to omit them"
},
"format": {
"type": "string",
"enum": [
"md",
"lines",
"ndjson",
"json"
],
"default": "md",
"description": "md: readable with summaries; lines: tab-separated, fewest tokens; ndjson/json: full records"
},
"q": {
"type": "string",
"description": "What you're looking for, in any language. Matches by meaning and by keyword (hybrid) over the last 7 days unless since is given; results carry a relevance score."
},
"match": {
"type": "string",
"enum": [
"hybrid",
"keyword",
"semantic"
],
"default": "hybrid",
"description": "keyword: exact words only; semantic: meaning only (cross-language)"
},
"entity": {
"type": "string",
"description": "Comma-separated Wikidata ids (from find_entities), e.g. \"Q312\""
},
"collapse": {
"type": "string",
"enum": [
"story"
],
"description": "One item per story (best representative); related = other reports of it"
},
"sort": {
"type": "string",
"enum": [
"newest",
"hot",
"positive",
"negative"
],
"default": "newest",
"description": "hot: most widely covered stories of the last 48h, one per story; positive/negative: most positive/negative tone first (last 24h unless since is given)"
},
"before": {
"type": "string",
"description": "Paging cursor from a previous result's next link"
}
},
"additionalProperties": false
}🟢sync_news(lang, country, topic, source, kind, ...)
Incremental feed: returns items added after `after`, oldest first, plus a new cursor. Call again with that cursor to get only what is new.
Eingabe-Schema
{
"type": "object",
"properties": {
"lang": {
"type": "string",
"description": "Comma-separated ISO 639-1 codes, e.g. \"en,es\""
},
"country": {
"type": "string",
"description": "Comma-separated ISO 3166-1 alpha-2 codes of the publisher's country, e.g. \"US,GB\""
},
"topic": {
"type": "string",
"description": "Comma-separated topics, e.g. \"space,science\""
},
"source": {
"type": "string",
"description": "Comma-separated source ids (see list_sources) or publisher domains"
},
"kind": {
"type": "string",
"description": "Comma-separated: article, press_release, official, community, research, sponsored"
},
"category": {
"type": "string",
"description": "Comma-separated IPTC top-level categories: arts-culture-entertainment, conflict-war, crime-law, disaster-accident, economy-business, education, environment, health, human-interest, labour, lifestyle-leisure, politics, religion, science-technology, society, sport, weather"
},
"sentiment": {
"type": "string",
"description": "Comma-separated: negative, neutral, positive"
},
"political": {
"type": "boolean",
"description": "true: political stories only (political score ≥ 0.5); false: non-political only"
},
"tone_min": {
"type": "number",
"minimum": -1,
"maximum": 1,
"description": "Only items with tone ≥ this (-1 most negative … 1 most positive)"
},
"tone_max": {
"type": "number",
"minimum": -1,
"maximum": 1
},
"since": {
"type": "string",
"description": "Only items published at/after this: RFC 3339, a date, or an age like \"6h\", \"2d\""
},
"until": {
"type": "string",
"description": "Only items published at/before this"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 500,
"default": 50
},
"sponsored": {
"type": "string",
"enum": [
"include",
"exclude",
"only"
],
"default": "include",
"description": "Paid press releases are labeled; exclude to omit them"
},
"format": {
"type": "string",
"enum": [
"md",
"lines",
"ndjson",
"json"
],
"default": "md",
"description": "md: readable with summaries; lines: tab-separated, fewest tokens; ndjson/json: full records"
},
"after": {
"type": "integer",
"description": "The cursor returned by your previous sync_news call; 0 to start from the oldest retained item"
}
},
"required": [
"after"
],
"additionalProperties": false
}🟢list_stories(limit, lang, country, category, entity, ...)
The most widely covered stories right now (last 48h), each with a neutral multi-source brief when available, outlet count, languages, entities and a representative report. Filter by lang, country, category, entity.
Eingabe-Schema
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 15
},
"lang": {
"type": "string"
},
"country": {
"type": "string"
},
"category": {
"type": "string"
},
"entity": {
"type": "string"
},
"format": {
"type": "string",
"enum": [
"md",
"json"
],
"default": "md"
}
},
"additionalProperties": false
}🟢find_entities(q)
Look up Wikidata ids for a name (e.g. "Tesla", "Lagos") with how many items mention each in the last 7 days; pass the id as `entity` to search_news or list_stories.
Eingabe-Schema
{
"type": "object",
"properties": {
"q": {
"type": "string"
}
},
"required": [
"q"
],
"additionalProperties": false
}🟢get_story(story, format)
Every item in a story (the `story` id on items, st_…): all outlets and languages covering the same event, newest first.
Eingabe-Schema
{
"type": "object",
"properties": {
"story": {
"type": "string"
},
"format": {
"type": "string",
"enum": [
"md",
"lines",
"ndjson",
"json"
],
"default": "md"
}
},
"required": [
"story"
],
"additionalProperties": false
}🟢get_news_item(id)
Full record for one item id (n_… for news, s_… for sponsored).
Eingabe-Schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
}
},
"required": [
"id"
],
"additionalProperties": false
}🟢list_sources(q, country, lang)
Registered sources with their language, country, kind and health. Filter by q (name), country or lang.
Eingabe-Schema
{
"type": "object",
"properties": {
"q": {
"type": "string"
},
"country": {
"type": "string"
},
"lang": {
"type": "string"
}
},
"additionalProperties": false
}🟢quote_placement(topics, lang, country, days)
Quote for placing a labeled, paid press release in the Hottub News mix via Hottub Business. Price varies by topic tier, current topic interest, demand, targeting reach and duration; the response itemizes each factor. Read-only: returns a price; books and charges nothing.
Eingabe-Schema
{
"type": "object",
"properties": {
"topics": {
"type": "string",
"description": "Comma-separated topics to target, e.g. \"ai,business\"; omit for run of network"
},
"lang": {
"type": "string"
},
"country": {
"type": "string"
},
"days": {
"type": "integer",
"minimum": 1,
"maximum": 31,
"default": 7
}
},
"additionalProperties": false
}🟢news_stats
Item counts over the last 24 hours by kind, language, country and source, plus the current sync cursor.
Eingabe-Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}Community
Nachweis