research_content_gaps
Return ranked content opportunities for a YouTube niche.
MCP
research_content_gaps
5 credits
REST equivalent: GET /v1/research/content-gaps
REST vs MCP response shape
MCP tool responses include two extra fields that the REST endpoint does not return:
score_id— an immutable identifier for the call, useful for client-side correlation and replay.credits_remaining— your balance after this call. REST clients fetch the balance viaGET /v1/usage/.
benchmark_channel and benchmark_video additionally wrap the response body under a payload field, so the envelope is {score_id, credits_remaining, payload}. The other tools merge the fields at the top level.
This is intentional. Tool-using agents typically want both pieces of state inline; HTTP clients usually do not.
Parameters
| Parameter | Type | Description |
|---|---|---|
|
niche
required
|
string (≤100 chars) | Niche slug — from the list_niches tool. |
|
gap_type
|
array of strings | Subset of ["underserved", "stale", "competitive"]. Default ["underserved", "stale"]. "competitive" is opt-in. Comma-separated strings are NOT accepted — pass each value as a separate array element. |
|
limit
|
integer (1–50) | Number of gaps to return. Default 20. |
|
min_score
|
integer (0–100) | Minimum opportunity_score. Default 0. |
Example call
Tool invocation via an MCP client (JSON arguments):
{
"niche": "tech-tutorials",
"gap_type": [
"underserved",
"stale"
],
"limit": 5,
"min_score": 60
}
Example response
{
"score_id": "01J7K6...",
"niche": {
"slug": "tech-tutorials",
"name": "Tech Tutorials"
},
"gaps": [
{
"canonical_title": "Tauri vs Electron for AI agent UIs",
"opportunity_score": 88,
"gap_type": "underserved",
"components": {
"demand": 0.84,
"supply": 0.21,
"recency": 0.66
},
"explanation": "High autocomplete and trends demand, very few quality competitors, freshest top result is 11 months old.",
"suggested_angles": [
"Side-by-side IPC overhead benchmark",
"Memory footprint at 100 concurrent agents"
],
"evidence": {
"newest_quality_video_age_days": 332,
"trends_appearance_count": 7,
"autocomplete_rank": 3,
"residual_outlier_count": 0,
"top_competitors": [
{
"title": "Tauri 2.0 in 100 seconds",
"channel_title": "Fireship",
"subscriber_count": 3100000,
"view_count": 412000,
"age_days": 412,
"published_at": "2025-03-02T14:20:00Z"
}
],
"related_queries": [
"tauri ai agent",
"rust gui agent",
"tauri vs electron 2026"
]
}
}
],
"credits_remaining": 329
}
Client setup
See Client setup for Claude Desktop and Cursor configuration. Once configured, ask your client to call research_content_gaps.