Streaming Radar
Streaming market intelligence: vertical drama, African OTT, piracy, sports, creator economy.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"streaming-radar": {
"url": "https://mcp.streaming-lens.com/public"
}
}
}Remote endpoints
https://mcp.streaming-lens.com/publicstreamable-httpWhat it can do
Tool inventory
Tools (12)
π’check_data_coverage(query, report_slug, country)
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. Read-only: it never returns the values, and the response says which reports hold them.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Company, market, country, platform or topic (e.g. \"ReelShort\", \"mobile money\", \"Nigeria\", \"micro-drama\").",
"minLength": 3,
"maxLength": 60
},
"report_slug": {
"type": "string",
"description": "Restrict to one report silo (e.g. \"vertical-invasion-2026\", \"africa-streaming-2026\")."
},
"country": {
"type": "string",
"description": "Restrict to one country as spelled in the data (e.g. \"Nigeria\")."
}
},
"required": [
"query"
],
"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(chart_type, silo, category, country, limit)
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.
Input Schema
{
"type": "object",
"properties": {
"chart_type": {
"type": "string",
"description": "Chart type to retrieve",
"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"
]
},
"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."
},
"category": {
"type": "string",
"description": "Category filter β applies to category_breakdown, top_metrics, coverage, export_table"
},
"country": {
"type": "string",
"description": "Country filter β applies to export_table (e.g. \"Nigeria\", \"NG\")"
},
"limit": {
"type": "number",
"description": "Max rows (default 20, max 200). For topic_heatmap/keyword_trends: top N keywords.",
"minimum": 1,
"maximum": 200
}
},
"required": [
"chart_type"
]
}Output Schema
{
"type": "object",
"properties": {
"chart_type": {
"type": "string",
"description": "The chart type that was rendered."
},
"report_slug": {
"type": "string"
},
"data": {
"type": "array",
"description": "Plotly-ready data array.",
"items": {
"type": "object"
}
},
"layout": {
"type": "object",
"description": "Plotly layout hints."
}
},
"additionalProperties": true
}π’sr_get_articles(status, type, limit, offset)
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.
Input Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Filter by status: published, draft, archived",
"enum": [
"published",
"draft",
"archived"
]
},
"type": {
"type": "string",
"description": "Filter by content type: edition, analysis, special"
},
"limit": {
"type": "number",
"description": "Max results (default 20, max 50)",
"minimum": 1,
"maximum": 50
},
"offset": {
"type": "number",
"description": "Pagination offset (default 0)",
"minimum": 0
}
}
}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(id, number)
Get a Streaming Radar article by sr_articles ID, published_pieces ID, or edition number. Returns the published body when available; internal briefs return metadata only. Free access β no API key required.
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_search_articles(query, limit, mode, top_k, channels)
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 whole-query substring match on article metadata, plus indexed full-text search of published piece bodies. Multi-word body queries require all terms. Use short queries for names. 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.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "mode=search: short name or phrase; metadata matches a contiguous substring, published bodies match all search terms. mode=coverage: free-text description of the angle or topic to check.",
"minLength": 2
},
"limit": {
"type": "number",
"description": "Max results (default 10, max 30) β mode=search only",
"minimum": 1,
"maximum": 30
},
"mode": {
"type": "string",
"description": "search (default) = case-insensitive substring match on title, subtitle and editorial angle (not full-text) | coverage = semantic corpus coverage check",
"enum": [
"search",
"coverage"
]
},
"top_k": {
"type": "number",
"description": "Number of vector neighbours to retrieve (default 10, max 30) β mode=coverage only",
"minimum": 1,
"maximum": 30
},
"channels": {
"type": "array",
"items": {
"type": "string"
},
"description": "mode=coverage only β restrict to channels (substack, linkedin_story, linkedin_post, guest_article, vdtv, brief). Default: all."
}
},
"required": [
"query"
]
}Output Schema
{
"type": "object",
"properties": {
"articles": {
"type": "array",
"items": {
"type": "object"
}
},
"count": {
"type": "integer"
}
},
"additionalProperties": true
}π’sr_get_experts(tier, country, limit)
List experts cited in the Streaming Radar newsletter with optional filters by tier or country. Free access β no API key required.
Input Schema
{
"type": "object",
"properties": {
"tier": {
"type": "number",
"description": "Expert tier (1 = top, 2 = mid, 3 = emerging)",
"enum": [
1,
2,
3
]
},
"country": {
"type": "string",
"description": "ISO 3166-1 alpha-2 country code (e.g. \"NG\", \"KE\", \"ZA\")"
},
"limit": {
"type": "number",
"description": "Max results (default 20, max 50)",
"minimum": 1,
"maximum": 50
}
}
}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(category, limit)
List tags used in the Streaming Radar newsletter, optionally filtered by category. Free access β no API key required.
Input Schema
{
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Tag category (e.g. \"company\", \"country\", \"topic\", \"format\")"
},
"limit": {
"type": "number",
"description": "Max results (default 50)",
"minimum": 1,
"maximum": 200
}
}
}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(since_date, limit)
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.
Input Schema
{
"type": "object",
"properties": {
"since_date": {
"type": "string",
"description": "ISO 8601 date or datetime (e.g. \"2026-02-01\" or \"2026-02-01T00:00:00Z\")"
},
"limit": {
"type": "number",
"description": "Max results (default 20, max 50)",
"minimum": 1,
"maximum": 50
}
},
"required": [
"since_date"
]
}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(id, name)
Get a single expert by ID or name (partial match), including their linked articles. Free access β no API key required.
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
}π’story_list_genres
List all available genre tiers (Proven / Growing / Emerging) and hybrid combinations for the vertical drama story bible generator.
Input Schema
{
"type": "object",
"properties": {},
"required": []
}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.
Input Schema
{
"type": "object",
"properties": {},
"required": []
}Output Schema
{
"type": "object",
"description": "Tool-specific result object. Inspect the `content` array for human-readable text and structured data.",
"additionalProperties": true
}π’search_tools(query, limit)
Search the tools available to your account by keyword. Returns matching tools with their names, descriptions and input schemas: the same tools tools/list advertises to you, nothing more. Use it to find which tool fits a request. Keywords can be: a tool name fragment (e.g. "chart"), a domain (africa, vertical, piracy, creator, sports), or an action (list, get, compare).
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Whitespace-separated keywords; case-insensitive."
},
"limit": {
"type": "number",
"description": "Max tools to return (default 8, max 20).",
"minimum": 1,
"maximum": 20
}
},
"required": [
"query"
]
}Output Schema
{
"type": "object",
"description": "Tool-specific result object. Inspect the `content` array for human-readable text and structured data.",
"additionalProperties": true
}Community
Evidence