MCP Server

Streaming Radar

com.streaming-lens.mcp/streaming-radar
Media & Content Search & Research Public & reachable MCP 2026-07-28

What this MCP does

Searches and retrieves Streaming Radar articles and experts while providing coverage checks and market-intelligence data discovery.

check_data_coverage
Check what sourced data Streaming Lens holds on a company, market, country or topic — WITHOUT returning the values. Returns how many datapoints match, which reports they sit in, which countries and years they cover, the confidence mix, when the most recent one was updated, and one sample datapoint with its metric name, unit, country, source and confidence but its value withheld. Use this to tell a user whether the answer to their question exists in the database and what it would take to read it. Matching is word-bounded, so short acronyms do not match inside longer words. Free access — no API key required. The values themselves are behind the paid MCP server; the response says where.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'maxLength': 60, 'minLength': 3, 'description': 'Company, market, country, platform or topic (e.g. "ReelShort", "mobile money", "Nigeria", "micro-drama").'}, 'country': {'type': 'string', 'description': 'Restrict to one country as spelled in the data (e.g. "Nigeria").'}, 'report_slug': {'type': 'string', 'description': 'Restrict to one report silo (e.g. "vertical-invasion-2026", "africa-streaming-2026").'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'description': 'Tool-specific result object. Inspect the `content` array for human-readable text and structured data.', 'additionalProperties': True}
get_chart_data
Get chart-ready data for Plotly or any charting library. Report charts require auth. Newsletter charts (expert_network, topic_heatmap, engagement_funnel, geo_coverage, keyword_trends, article_bridge, expert_leaderboard, timeline) are available without signing in.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['chart_type'], 'properties': {'silo': {'type': 'string', 'description': 'Report slug filter (e.g. "africa-streaming-2026"). Required for export_table. Omit for all active silos on other chart types.'}, 'limit': {'type': 'number', 'maximum': 200, 'minimum': 1, 'description': 'Max rows (default 20, max 200). For topic_heatmap/keyword_trends: top N keywords.'}, 'country': {'type': 'string', 'description': 'Country filter — applies to export_table (e.g. "Nigeria", "NG")'}, 'category': {'type': 'string', 'description': 'Category filter — applies to category_breakdown, top_metrics, coverage, export_table'}, 'chart_type': {'enum': ['silo_overview', 'category_breakdown', 'top_metrics', 'coverage', 'confidence', 'country', 'timeline', 'year_distribution', 'export_table', 'citation_graph', 'expert_network', 'topic_heatmap', 'engagement_funnel', 'geo_coverage', 'keyword_trends', 'article_bridge', 'expert_leaderboard'], 'type': 'string', 'description': 'Chart type to retrieve'}}}
Output schema
{'type': 'object', 'properties': {'data': {'type': 'array', 'items': {'type': 'object'}, 'description': 'Plotly-ready data array.'}, 'layout': {'type': 'object', 'description': 'Plotly layout hints.'}, 'chart_type': {'type': 'string', 'description': 'The chart type that was rendered.'}, 'report_slug': {'type': 'string'}}, 'additionalProperties': True}
search_tools
Search the full MCP catalog for tools not in the core set. Returns matching tools with their full schemas, ready to call via tools/call. Use when the user request maps to a capability not in the core set. Keywords can be: tool name fragment (e.g. "ingest_bulk"), domain (silo, africa, vertical, piracy, creator, sports, crm, admin), or action (list, get, create, compare).
Read only Idempotent
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'number', 'maximum': 20, 'minimum': 1, 'description': 'Max tools to return (default 8, max 20).'}, 'query': {'type': 'string', 'description': 'Whitespace-separated keywords; case-insensitive.'}}}
Output schema
{'type': 'object', 'description': 'Tool-specific result object. Inspect the `content` array for human-readable text and structured data.', 'additionalProperties': True}
sr_get_article
Get a single Streaming Radar article by ID or edition number, including content_markdown when the full body exists in hub.published_pieces, linked experts, and editorial angle. Free access — no API key required.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Article UUID'}, 'number': {'type': 'number', 'description': 'Edition number (e.g. 42)'}}}
Output schema
{'type': 'object', 'description': 'Tool-specific result object. Inspect the `content` array for human-readable text and structured data.', 'additionalProperties': True}
sr_get_articles
List Streaming Radar newsletter articles with optional filters. Returns title, subtitle, status, type, views, open_rate, editorial_angle, and clickable links. Free access — no API key required.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'type': {'type': 'string', 'description': 'Filter by content type: edition, analysis, special'}, 'limit': {'type': 'number', 'maximum': 50, 'minimum': 1, 'description': 'Max results (default 20, max 50)'}, 'offset': {'type': 'number', 'minimum': 0, 'description': 'Pagination offset (default 0)'}, 'status': {'enum': ['published', 'draft', 'archived'], 'type': 'string', 'description': 'Filter by status: published, draft, archived'}}}
Output schema
{'type': 'object', 'description': 'Tool-specific result object. Inspect the `content` array for human-readable text and structured data.', 'additionalProperties': True}
sr_get_expert
Get a single expert by ID or name (partial match), including their linked articles. Free access — no API key required.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Expert UUID'}, 'name': {'type': 'string', 'description': 'Expert name (partial match, e.g. "Ludovic")'}}}
Output schema
{'type': 'object', 'description': 'Tool-specific result object. Inspect the `content` array for human-readable text and structured data.', 'additionalProperties': True}
sr_get_experts
List experts cited in the Streaming Radar newsletter with optional filters by tier or country. Free access — no API key required.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'tier': {'enum': [1, 2, 3], 'type': 'number', 'description': 'Expert tier (1 = top, 2 = mid, 3 = emerging)'}, 'limit': {'type': 'number', 'maximum': 50, 'minimum': 1, 'description': 'Max results (default 20, max 50)'}, 'country': {'type': 'string', 'description': 'ISO 3166-1 alpha-2 country code (e.g. "NG", "KE", "ZA")'}}}
Output schema
{'type': 'object', 'description': 'Tool-specific result object. Inspect the `content` array for human-readable text and structured data.', 'additionalProperties': True}
sr_get_new_since
Get published articles since a given date, ordered by publication date descending. Only published articles are returned. Free access — no API key required; the views and open_rate fields are returned only with an admin key.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['since_date'], 'properties': {'limit': {'type': 'number', 'maximum': 50, 'minimum': 1, 'description': 'Max results (default 20, max 50)'}, 'since_date': {'type': 'string', 'description': 'ISO 8601 date or datetime (e.g. "2026-02-01" or "2026-02-01T00:00:00Z")'}}}
Output schema
{'type': 'object', 'description': 'Tool-specific result object. Inspect the `content` array for human-readable text and structured data.', 'additionalProperties': True}
sr_get_tags
List tags used in the Streaming Radar newsletter, optionally filtered by category. Free access — no API key required.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'number', 'maximum': 200, 'minimum': 1, 'description': 'Max results (default 50)'}, 'category': {'type': 'string', 'description': 'Tag category (e.g. "company", "country", "topic", "format")'}}}
Output schema
{'type': 'object', 'description': 'Tool-specific result object. Inspect the `content` array for human-readable text and structured data.', 'additionalProperties': True}
sr_search_articles
Search Streaming Radar articles, or — with mode=coverage — check whether a topic is already covered in the published corpus using semantic similarity. mode=search (default): case-insensitive substring match of the WHOLE query on title, subtitle and editorial_angle of published articles only. This is not full-text search: a multi-word query matches only if those words appear together, in that order, as one phrase. Use short queries (one or two words). Free access, no API key required. mode=coverage: semantic anti-redite + auto-citation check over the published corpus. Returns a channel-weighted verdict (DÉJÀ TRAITÉ / EFFLEURÉ / NEUF — only PUBLISHED pieces can block; briefs are non-blocking signals), plus citable hits (url + excerpt) for self-citation. Also returns a facts array: passages already published in the body of a piece that carry the same rare terms as the query (non-blocking). Free access.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'mode': {'enum': ['search', 'coverage'], 'type': 'string', 'description': 'search (default) = full-text search | coverage = semantic corpus coverage check'}, 'limit': {'type': 'number', 'maximum': 30, 'minimum': 1, 'description': 'Max results (default 10, max 30) — mode=search only'}, 'query': {'type': 'string', 'minLength': 2, 'description': 'mode=search: text matched as one contiguous, case-insensitive substring (e.g. "Canal+"; "Netflix Africa" only matches where those two words are adjacent). mode=coverage: free-text description of the angle or topic to check (a sentence is fine).'}, 'top_k': {'type': 'number', 'maximum': 30, 'minimum': 1, 'description': 'Number of vector neighbours to retrieve (default 10, max 30) — mode=coverage only'}, 'channels': {'type': 'array', 'items': {'type': 'string'}, 'description': 'mode=coverage only — restrict to channels (substack, linkedin_story, linkedin_post, guest_article, vdtv, brief). Default: all.'}}}
Output schema
{'type': 'object', 'properties': {'count': {'type': 'integer'}, 'articles': {'type': 'array', 'items': {'type': 'object'}}}, 'additionalProperties': True}
story_list_genres
List all available genre tiers (Proven / Growing / Emerging) and hybrid combinations for the vertical drama story bible generator.
Read only Idempotent
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Output schema
{'type': 'object', 'description': 'Tool-specific result object. Inspect the `content` array for human-readable text and structured data.', 'additionalProperties': True}
story_list_markets
List all target markets with audience profiles and top genres for the vertical drama story bible generator.
Read only Idempotent
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Output schema
{'type': 'object', 'description': 'Tool-specific result object. Inspect the `content` array for human-readable text and structured data.', 'additionalProperties': True}
Changed
search_tools
Oct. 1, 2026, 2:54 a.m.
Changed
story_list_markets
Oct. 1, 2026, 2:54 a.m.
Changed
story_list_genres
Oct. 1, 2026, 2:54 a.m.
Changed
sr_get_expert
Oct. 1, 2026, 2:54 a.m.
Changed
sr_get_new_since
Oct. 1, 2026, 2:54 a.m.
Changed
sr_get_tags
Oct. 1, 2026, 2:54 a.m.
Changed
sr_get_experts
Oct. 1, 2026, 2:54 a.m.
Changed
sr_search_articles
Oct. 1, 2026, 2:54 a.m.
Changed
sr_get_article
Oct. 1, 2026, 2:54 a.m.
Changed
sr_get_articles
Oct. 1, 2026, 2:54 a.m.
Changed
get_chart_data
Oct. 1, 2026, 2:54 a.m.
Changed
check_data_coverage
Oct. 1, 2026, 2:54 a.m.
Changed
sr_search_articles
Sept. 27, 2026, 2:53 a.m.
Changed
search_tools
Sept. 25, 2026, 3:03 a.m.
Added
get_chart_data
Sept. 25, 2026, 3:03 a.m.
Changed
sr_get_article
Sept. 21, 2026, 3:01 a.m.
Added
search_tools
Sept. 17, 2026, 12:37 p.m.
Added
story_list_markets
Sept. 17, 2026, 12:37 p.m.
Added
story_list_genres
Sept. 17, 2026, 12:37 p.m.
Added
sr_get_expert
Sept. 17, 2026, 12:37 p.m.
Added
sr_get_new_since
Sept. 17, 2026, 12:37 p.m.
Added
sr_get_tags
Sept. 17, 2026, 12:37 p.m.
Added
sr_get_experts
Sept. 17, 2026, 12:37 p.m.
Added
sr_search_articles
Sept. 17, 2026, 12:37 p.m.
Added
sr_get_article
Sept. 17, 2026, 12:37 p.m.
Added
sr_get_articles
Sept. 17, 2026, 12:37 p.m.
Added
check_data_coverage
Sept. 17, 2026, 12:37 p.m.