Skip to main content
Glama

Research a niche

research

Use when the Customer asks what is working in a niche: one Run searches TikTok, Instagram and YouTube (Facebook if in platforms), analyses and ranks the top videos, and returns a Digest (themes, hooks, formulas, gaps, angles) with ranked ids. Not for a quick page of videos or one phrase's stats: search_videos or get_keyword cost far less. Named Creators: breakdown. Re-read with get_research (free). Price: 1,036 credits for up to 50 enriched videos, then 20 credits each, at most 4,036 credits. 1-3 minutes for 50 videos: waits up to 60 s, then returns a run id for get_run. estimate=true quotes.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "intent": "<intent>"
    },
    "name": "research"
  }
}

Input Schema

NameRequiredDescriptionDefault
intentYesPlain-language goal, e.g. 'find what is working for no-equipment home workouts this month'
regionNoTwo-letter region code, e.g. US
windowNo
estimateNoQuote the price in Credits: no Run, no charge
keywordsNoOptional seed keywords, at most 4; derived from intent if omitted
platformsNoOmit for TikTok, Instagram and YouTube. `facebook` is opt-in: name it to research Facebook videos and Reels too
max_videosNo
max_creditsNo
idempotency_keyNoReuse on a retry: replays the original Run, not charged again

Output Schema

NameRequiredDescriptionDefault
runNo
cachedNo
resultNoA finished Research.
poll_urlNo
estimate_creditsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / estimate / description
      Previous value: -"Return the price, in Credits, without running the operation or creating a Run"New value: +"Quote the price in Credits: no Run, no charge"
    • changedInput schema / properties / idempotency_key / description
      Previous value: -"Reuse the same key when retrying: a repeat returns the original Run and is not charged again"New value: +"Reuse on a retry: replays the original Run, not charged again"
    • changedOutput schema / properties / run / additionalProperties
      Previous value: -trueNew value: +{}
    • removedOutput schema / properties / run / properties
      Removed value: -{}
  2. Changed1 schema field changed
    • addedInput schema / properties / max_credits
      Added value: +{
      +  "minimum": 0,
      +  "type": "integer"
      +}
  3. Changed1 schema field changed
    • addedOutput schema / properties / poll_url
      Added value: +{
      +  "format": "uri",
      +  "type": "string"
      +}
  4. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": true,
      +  "properties": {
      +    "cached": {
      +      "type": "boolean"
      +    },
      +    "estimate_credits": {
      +      "type": "integer"
      +    },
      +    "result": {
      +      "$ref": "#/properties/run",
      +      "description": "A finished Research."
      +    },
      +    "run": {
      +      "additionalProperties": true,
      +      "properties": {},
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
  5. First observed

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=false, openWorldHint=true and destructiveHint=false; the description goes well beyond them by disclosing real cost (1,036 credits for up to 50 enriched videos, 20 credits each thereafter, capped at 4,036) and latency (1–3 minutes, 60 s wait before returning a run id for get_run). A dry-run path via estimate=true is also disclosed, which is valuable for an expensive non-idempotent call. The only gap is that it does not say whether a partially completed Run is still charged.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is front-loaded with the trigger and outcome, then layers in alternatives, price and latency, with no filler sentences. It is dense and readable, though the capitalized product jargon ('Run', 'Digest', 'Customer') and the compressed clause 'estimate=true quotes' force a little re-parsing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter, high-cost, slow, potentially asynchronous tool, the description covers the things that matter most: what it produces, what it costs, how long it takes, what to do on timeout, and where to go for cheaper or free alternatives. An output schema exists so return values need no explanation, though region and window remain undocumented anywhere in prose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%, so the schema carries most of the load, but the description adds genuine meaning: it explains the platform default and that facebook is opt-in, ties max_videos/max_credits to concrete price tiers, and explains that a run id is returned for long jobs. It does not explain region or window semantics, which the schema leaves terse.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a concrete verb and resource chain: one Run searches TikTok, Instagram and YouTube, analyses and ranks videos, and returns a Digest with themes, hooks, formulas, gaps, angles and ranked ids. It explicitly names what it is not (search_videos, get_keyword, breakdown) so an agent can distinguish it from those siblings without opening their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit trigger ('Use when the Customer asks what is working in a niche'), explicit exclusions with cheaper alternatives ('Not for a quick page of videos or one phrase's stats: search_videos or get_keyword cost far less'), and names breakdown for Named Creators. It also routes follow-up reads to get_research (free) and async polling to get_run, covering both before and after use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources