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 via GET /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.