Skip to main content
Glama

Map the niche on Instagram, YouTube, Reddit, X or Facebook

research_niche

What is working in the user's niche right now, from a few words for the topic (from get_brand_profile: the topic or type of business; the city only for a local business). network "instagram" (default, for reels): the reels Instagram ties to those words with the most views for the topic, and the accounts behind the top ones (followers, biggest first, small ones left out). network "youtube" (for LONG videos): videos of 4-20 minutes from the last year, ranked by views ÷ the channel's subscribers: the ones that beat their channel show a topic and a format pulling. network "reddit": the active public subreddits on the topic and, for the top 4, their rules, what they accept (text, links, media), activity, and this month's top posts with format, flair and hour — 50 AI credits. network "x": last month's on-topic posts ranked by engagement for the author's size, and the best accounts with the posts that beat their usual — 50 AI credits. network "facebook": last month's on-topic posts ranked by interactions (reactions + comments + 2×shares) against the topic's usual, and the pages that get the most out of it — 120 AI credits. The first analysis of an organization is free; then 120 AI credits. A YouTube search the brand already ran in the last 6 days comes back again for free. Tell the user the cost first. For one account use research_account, for one reel or post analyze_reel, and to reread an analysis already run, free, list_research then get_research. SPENDS AI CREDITS ONLY WITH confirm: true. Call it first without confirm: nothing runs and nothing is charged, you get the quote (what it will do and the credits). Tell the user, in your own words, exactly that — including the options you chose, so they can change them — and wait for a clear yes before calling again with the same arguments and confirm: true. One yes covers the plan they approved (e.g. every line of an approved voice-over with the chosen voice); anything new or different needs a new yes.

Input Schema

NameRequiredDescriptionDefault
queryYesA few words for the niche, in the language people search in: "hair salon Madrid", "marca personal storytelling", "fitness for mums", "finanzas personales".
confirmNotrue ONLY after the user said yes to the quote (what it does and the credits). Without it nothing runs and nothing is charged.
networkNo"instagram" (default) for reels; "youtube" for long horizontal videos; "reddit" for the subreddits on the topic and what works there; "x" for what works on X (Twitter); "facebook" for what works on Facebook.
creatorsNoInstagram only: how many accounts (3-10, default 8).
accountIdNoReddit only, optional and rarely needed: a connected Reddit account (id from list_accounts) adds each subreddit's flairs and whether the account belongs to it. Reddit accounts cannot be connected while Reddit's API is closed to third-party apps; the research works without one.
workspaceIdNoWorkspace to work on (an id from list_workspaces). Not needed when this connection is tied to one workspace, or when you pass an account: the account's workspace is used.
excludeHandleNoThe user's own handle on that network, so it is left out of the results.
idempotencyKeyNoOptional. A unique id for this action (16-128 chars: letters, digits, _ : . -). If you are unsure whether a call went through (timeout, network error), repeat it with the SAME idempotencyKey and the same arguments: you get the original result and nothing is done twice.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / accountId / description
      Previous value: -"Reddit only, optional: the connected Reddit account (id from list_accounts). With it you also get each subreddit's flairs and whether the account already belongs to it, and the posts come through that account. Without it, the first connected Reddit account of the workspace is used if there is one."New value: +"Reddit only, optional and rarely needed: a connected Reddit account (id from list_accounts) adds each subreddit's flairs and whether the account belongs to it. Reddit accounts cannot be connected while Reddit's API is closed to third-party apps; the research works without one."
  2. Changed1 schema field changed
    • changedInput schema / properties / network / description
      Previous value: -"\"instagram\" (default) for reels; \"youtube\" for long horizontal videos; \"reddit\" for where to post on Reddit and what works there; \"x\" for what works on X (Twitter); \"facebook\" for what works on Facebook."New value: +"\"instagram\" (default) for reels; \"youtube\" for long horizontal videos; \"reddit\" for the subreddits on the topic and what works there; \"x\" for what works on X (Twitter); \"facebook\" for what works on Facebook."
  3. Changed2 schema fields changed
    • changedInput schema / properties / network / description
      Previous value: -"\"instagram\" (default) for reels; \"youtube\" for long horizontal videos; \"reddit\" for where to post on Reddit and what works there; \"x\" for what works on X (Twitter)."New value: +"\"instagram\" (default) for reels; \"youtube\" for long horizontal videos; \"reddit\" for where to post on Reddit and what works there; \"x\" for what works on X (Twitter); \"facebook\" for what works on Facebook."
    • changedInput schema / properties / network / enum
      Previous value: -[
      -  "instagram",
      -  "youtube",
      -  "reddit",
      -  "x"
      -]New value: +[
      +  "instagram",
      +  "youtube",
      +  "reddit",
      +  "x",
      +  "facebook"
      +]
  4. Changed3 schema fields changed
    • addedInput schema / properties / accountId
      Added value: +{
      +  "description": "Reddit only, optional: the connected Reddit account (id from list_accounts). With it you also get each subreddit's flairs and whether the account already belongs to it, and the posts come through that account. Without it, the first connected Reddit account of the workspace is used if there is one.",
      +  "type": "string"
      +}
    • changedInput schema / properties / network / description
      Previous value: -"\"instagram\" (default) for reels; \"youtube\" for long horizontal videos."New value: +"\"instagram\" (default) for reels; \"youtube\" for long horizontal videos; \"reddit\" for where to post on Reddit and what works there; \"x\" for what works on X (Twitter)."
    • changedInput schema / properties / network / enum
      Previous value: -[
      -  "instagram",
      -  "youtube"
      -]New value: +[
      +  "instagram",
      +  "youtube",
      +  "reddit",
      +  "x"
      +]
  5. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=false, destructiveHint=false and openWorldHint=true; the description adds far more: per-network credit costs (50/120), the free first analysis per organization, the 6-day free YouTube re-search, and a precise two-call confirm protocol where nothing runs or is charged without confirm:true. That is exactly the mutation/cost context annotations cannot express.

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

Conciseness3/5

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

The query and network breakdown are front-loaded and informative, but the confirm/cost instructions are restated at length in a dense single block, and the closing sentence about voice-over plans is boilerplate that does not belong to this tool's decision. Every sentence is useful but the packaging is heavier than needed.

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

Completeness5/5

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

For an 8-parameter, credit-spending, open-world tool with no output schema, the description compensates by describing the return shape per network, the credit model, the idempotency/confirm safety flow, and which sibling to use for narrower asks. Nothing material is missing for correct invocation.

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 100%, so the baseline is 3; the description still adds real semantics beyond the schema by explaining what each network value returns (reels ranked by views, YouTube ranked by views ÷ subscribers, Reddit subreddits, X and Facebook engagement rankings). The creators, excludeHandle and workspaceId parameters are left to the schema, which is adequate given full coverage.

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?

States a specific verb and resource (map what is working in a niche) and enumerates what each network returns, so the agent knows exactly the shape of the output before calling. It explicitly distinguishes itself from research_account, analyze_reel, list_research and get_research by naming what each alternative is for.

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?

Gives explicit routing rules: 'For one account use research_account, for one reel or post analyze_reel, and to reread an analysis already run, free, list_research then get_research.' It also specifies the prerequisite source for the query (get_brand_profile) and the confirm-before-charge protocol, including when a repeat YouTube search is free.

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