Serveur MCP

Hottub News

news.hottub/hottub-news
Médias et contenu Recherche et exploration Public et accessible MCP 2026-07-28

Ce que fait ce MCP

Searches and synchronizes worldwide news, groups reports into stories, provides source and coverage data, and prices sponsored press-release placement.

find_entities
Find people, organizations and places
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.
Lecture seule Accès externe Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['q'], 'properties': {'q': {'type': 'string'}}, 'additionalProperties': False}
get_news_item
Get one item
Full record for one item id (n_… for news, s_… for sponsored).
Lecture seule Accès externe Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string'}}, 'additionalProperties': False}
get_story
All reports of one story
Every item in a story (the `story` id on items, st_…): all outlets and languages covering the same event, newest first.
Lecture seule Accès externe Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['story'], 'properties': {'story': {'type': 'string'}, 'format': {'enum': ['md', 'lines', 'ndjson', 'json'], 'type': 'string', 'default': 'md'}}, 'additionalProperties': False}
list_sources
List sources
Registered sources with their language, country, kind and health. Filter by q (name), country or lang.
Lecture seule Accès externe Idempotent
Schéma d’entrée
{'type': 'object', 'properties': {'q': {'type': 'string'}, 'lang': {'type': 'string'}, 'country': {'type': 'string'}}, 'additionalProperties': False}
list_stories
Top stories with briefs
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.
Lecture seule Accès externe Idempotent
Schéma d’entrée
{'type': 'object', 'properties': {'lang': {'type': 'string'}, 'limit': {'type': 'integer', 'default': 15, 'maximum': 50, 'minimum': 1}, 'entity': {'type': 'string'}, 'format': {'enum': ['md', 'json'], 'type': 'string', 'default': 'md'}, 'country': {'type': 'string'}, 'category': {'type': 'string'}}, 'additionalProperties': False}
news_stats
Coverage statistics
Item counts over the last 24 hours by kind, language, country and source, plus the current sync cursor.
Lecture seule Accès externe Idempotent
Schéma d’entrée
{'type': 'object', 'properties': {}, 'additionalProperties': False}
quote_placement
Price a sponsored press release
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.
Lecture seule Accès externe Idempotent
Schéma d’entrée
{'type': 'object', 'properties': {'days': {'type': 'integer', 'default': 7, 'maximum': 31, 'minimum': 1}, 'lang': {'type': 'string'}, 'topics': {'type': 'string', 'description': 'Comma-separated topics to target, e.g. "ai,business"; omit for run of network'}, 'country': {'type': 'string'}}, 'additionalProperties': False}
search_news
Search or browse news
Newest-first headlines from worldwide sources, optionally filtered by words, language, country, topic, source, kind and time.
Lecture seule Accès externe Idempotent
Schéma d’entrée
{'type': 'object', 'properties': {'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."}, 'kind': {'type': 'string', 'description': 'Comma-separated: article, press_release, official, community, research, sponsored'}, 'lang': {'type': 'string', 'description': 'Comma-separated ISO 639-1 codes, e.g. "en,es"'}, 'sort': {'enum': ['newest', 'hot', 'positive', 'negative'], 'type': 'string', '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)'}, 'limit': {'type': 'integer', 'default': 50, 'maximum': 500, 'minimum': 1}, 'match': {'enum': ['hybrid', 'keyword', 'semantic'], 'type': 'string', 'default': 'hybrid', 'description': 'keyword: exact words only; semantic: meaning only (cross-language)'}, 'since': {'type': 'string', 'description': 'Only items published at/after this: RFC 3339, a date, or an age like "6h", "2d"'}, 'topic': {'type': 'string', 'description': 'Comma-separated topics, e.g. "space,science"'}, 'until': {'type': 'string', 'description': 'Only items published at/before this'}, 'before': {'type': 'string', 'description': "Paging cursor from a previous result's next link"}, 'entity': {'type': 'string', 'description': 'Comma-separated Wikidata ids (from find_entities), e.g. "Q312"'}, 'format': {'enum': ['md', 'lines', 'ndjson', 'json'], 'type': 'string', 'default': 'md', 'description': 'md: readable with summaries; lines: tab-separated, fewest tokens; ndjson/json: full records'}, 'source': {'type': 'string', 'description': 'Comma-separated source ids (see list_sources) or publisher domains'}, 'country': {'type': 'string', 'description': 'Comma-separated ISO 3166-1 alpha-2 codes of the publisher\'s country, e.g. "US,GB"'}, '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'}, 'collapse': {'enum': ['story'], 'type': 'string', 'description': 'One item per story (best representative); related = other reports of it'}, 'tone_max': {'type': 'number', 'maximum': 1, 'minimum': -1}, 'tone_min': {'type': 'number', 'maximum': 1, 'minimum': -1, 'description': 'Only items with tone ≥ this (-1 most negative … 1 most positive)'}, 'political': {'type': 'boolean', 'description': 'true: political stories only (political score ≥ 0.5); false: non-political only'}, 'sentiment': {'type': 'string', 'description': 'Comma-separated: negative, neutral, positive'}, 'sponsored': {'enum': ['include', 'exclude', 'only'], 'type': 'string', 'default': 'include', 'description': 'Paid press releases are labeled; exclude to omit them'}}, 'additionalProperties': False}
sync_news
Get new items since a cursor
Incremental feed: returns items added after `after`, oldest first, plus a new cursor. Call again with that cursor to get only what is new.
Lecture seule Accès externe Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['after'], 'properties': {'kind': {'type': 'string', 'description': 'Comma-separated: article, press_release, official, community, research, sponsored'}, 'lang': {'type': 'string', 'description': 'Comma-separated ISO 639-1 codes, e.g. "en,es"'}, 'after': {'type': 'integer', 'description': 'The cursor returned by your previous sync_news call; 0 to start from the oldest retained item'}, 'limit': {'type': 'integer', 'default': 50, 'maximum': 500, 'minimum': 1}, 'since': {'type': 'string', 'description': 'Only items published at/after this: RFC 3339, a date, or an age like "6h", "2d"'}, 'topic': {'type': 'string', 'description': 'Comma-separated topics, e.g. "space,science"'}, 'until': {'type': 'string', 'description': 'Only items published at/before this'}, 'format': {'enum': ['md', 'lines', 'ndjson', 'json'], 'type': 'string', 'default': 'md', 'description': 'md: readable with summaries; lines: tab-separated, fewest tokens; ndjson/json: full records'}, 'source': {'type': 'string', 'description': 'Comma-separated source ids (see list_sources) or publisher domains'}, 'country': {'type': 'string', 'description': 'Comma-separated ISO 3166-1 alpha-2 codes of the publisher\'s country, e.g. "US,GB"'}, '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'}, 'tone_max': {'type': 'number', 'maximum': 1, 'minimum': -1}, 'tone_min': {'type': 'number', 'maximum': 1, 'minimum': -1, 'description': 'Only items with tone ≥ this (-1 most negative … 1 most positive)'}, 'political': {'type': 'boolean', 'description': 'true: political stories only (political score ≥ 0.5); false: non-political only'}, 'sentiment': {'type': 'string', 'description': 'Comma-separated: negative, neutral, positive'}, 'sponsored': {'enum': ['include', 'exclude', 'only'], 'type': 'string', 'default': 'include', 'description': 'Paid press releases are labeled; exclude to omit them'}}, 'additionalProperties': False}
Ajouté
news_stats
29 September 2026 02:40
Ajouté
quote_placement
29 September 2026 02:40
Ajouté
list_sources
29 September 2026 02:40
Ajouté
get_news_item
29 September 2026 02:40
Ajouté
get_story
29 September 2026 02:40
Ajouté
find_entities
29 September 2026 02:40
Ajouté
list_stories
29 September 2026 02:40
Ajouté
sync_news
29 September 2026 02:40
Ajouté
search_news
29 September 2026 02:40