Skip to main content
Glama

Server Details

Short-form video and ad intelligence for TikTok, Instagram Reels, YouTube Shorts and Facebook: research what works in a niche, track creators, hashtags, sounds and advertisers, and search the Meta and TikTok ad libraries.

Ownership verified
Status
Healthy
Uptime
100.0% over the last 24 hours
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4.2/5.0

Scored across 34 tools

Disambiguation5/5

Nearly every tool carries an explicit "Not for X: use Y" clause that steers the agent to the correct sibling (e.g. research vs breakdown vs search_videos vs get_keyword; get_tracker vs get_changes vs get_tracker_snapshots). Overlapping-looking pairs like get_ad/get_ad_snapshots and get_comments/get_comment_replies are cleanly separated by argument shape and purpose. No two tools appear interchangeable.

Naming Consistency4/5

The set is overwhelmingly snake_case verb_noun (get_*, list_*, create_*, delete_*, set_*, add_to_*, remove_from_*, search_*, act_on_*). The only deviations are the bare-noun domain actions track, research and breakdown, plus score_video, which are still readable and unambiguous. Minor inconsistency, not confusing.

Tool Count3/5

34 tools is heavy and sits above the comfortable range, even though the surface spans genuinely distinct domains (tracking, collections, video/creator analytics, ads, comments, research runs, billing). Several narrow readers (get_ad_snapshots, get_comment_replies, get_tracker_snapshots, get_run) would be plausible merges into their parent getters. The count is defensible for the scope but feels over-expanded.

Completeness4/5

Lifecycle coverage is strong: collections have full CRUD plus membership and bulk actions, trackers have create/get/list/delete/state/focus/intelligence, research and breakdown runs have start/poll/read, and billing and ads history are covered. The main gap is creator discovery — get_creator requires a handle or URL, and there is no search_creators equivalent to search_videos/search_ads, forcing agents to go through video search.

Publisher details

Operator
ShortsIntel · Publisher source
Vendor relationship
First-party
Trust center
Not available
Restrictions
Requires a free ShortsIntel account (OAuth sign-in). Paid tools draw from prepaid Credits; new accounts get a starter grant. No subscription.

Available Tools

34 tools
act_on_collectionAct on every memberAInspect

Use when pausing, resuming, refreshing or switching analysis for every Tracker in a Collection (by id or name) at once. Not for one Tracker: set_tracker_state, set_tracker_intelligence or track refresh=true. No focus action: set_tracker_focus. Price: Free for pause, resume, intelligence; refresh is a cycle per member: creator 6, hashtag 3, keyword 3, sound 6, advertiser 30 credits; +20 credits per new video analysed. intelligence takes intelligence true or false (on: +20 credits per new video or Ad later). Shared Trackers change in all their Collections (trackers_in_other_collections).

Inputs: action (required), collection (required), estimate, max_credits, +1 more. Returns: run, note, action, cached, +9 more

add_to_collectionAdd to a collectionAInspect

Use when putting a Tracker into a Collection (id or name): by tracker_id, or by platform + target, which starts a Tracker if not tracked yet. Not for a focus or a refresh: track (its collection argument files it too). Price: Free for a Tracker you have; a new target runs its first cycle: creator 6, hashtag 3, keyword 3, sound 6, advertiser 30 credits; +20 credits per new video analysed. A new name creates the Collection with the Tracker's kind (pass kind with a target); another kind is collection_kind_mismatch. Collections mix Meta, Google and TikTok Advertisers.

Inputs: collection (required), kind, target, estimate, +4 more. Returns: run, added, cached, created, +8 more

breakdownCreator BreakdownAInspect

Use when the Customer names Creators (handles, profile URLs or a Collection), asking what works: a Creator Breakdown reads and analyses their recent videos, scores each against its Creator's median, returns a Digest and ranked ids in result. Not for a niche or topic: use research. Not for one Creator's profile: use get_creator. Re-read with get_research (free). Price: 9 credits per creator plus 20 credits per video analysed, at most 4,090 credits. Up to 10 creators, 25 videos each by default (max 50, 200 in all). Waits up to 60 s, then returns a run id for get_run. estimate=true quotes.

Inputs: intent, creators, estimate, max_credits, +3 more. Returns: run, cached, result, poll_url, +1 more

create_collectionCreate a collectionAInspect

Use when the Customer wants an empty named Collection before adding Trackers. Not usually needed first: add_to_collection and track create a Collection from a name you have not used yet. Price: Free. kind (creator, hashtag, keyword, sound or advertiser) is fixed once created. A Collection is only a set: pausing, analysis and cycles are per Tracker, charged once per cycle however many Collections hold it.

Inputs: kind (required), name (required). Returns: collection

delete_collectionDelete a collectionA
DestructiveIdempotent
Inspect

Use when removing a Collection, by id or name. Not for taking one Tracker out: remove_from_collection. Not for pausing its Trackers: act_on_collection. Price: Free. Its Trackers keep running unless delete_trackers=true, which also deletes members in no other Collection (their Change Reports stay readable with get_changes). The answer lists the Trackers still being charged.

Inputs: collection (required), delete_trackers. Returns: collection, deleted_trackers, trackers_still_active

delete_trackerDelete a trackerA
DestructiveIdempotent
Inspect

Use when the Customer wants one Tracker gone for good: its cycles stop. Not for a break: set_tracker_state (paused). Not for leaving one Collection: remove_from_collection. Price: Free. Find it as in get_tracker. Its Change Reports stay readable; tracking the target again starts a new Tracker.

Inputs: kind, target, platform, tracker_id. Returns: tracker

get_adGet an Ad or AdvertiserAInspect

Use when you need one Ad or Advertiser, in exactly one of five modes: library_id (Meta Ad), page_id (Meta Advertiser), advertiser_id (TikTok or Google Advertiser), tiktok_ad_id (TikTok Ad) or google_ad_id (Google Ad). Not for finding Ads: use search_ads (advertiser=page_id). Price: Ad 3 credits, +20 credits with analyze; Advertiser 15 credits. Ads: copy, landing URL, media, dates, spend, reach; TikTok adds targeting. A removed Ad is from our copy. Unknown ids: not_found, free.

Inputs: analyze, page_id, estimate, platform, +6 more. Returns: run, cached, result, poll_url, +2 more

get_ad_snapshotsGet an Ad's historyA
Read-onlyIdempotent
Inspect

Use when you need one stored Ad's history: each observation's running state, placements, countries, and disclosed spend and reach. Not for the Ad's details: get_ad. Not for an Advertiser's Ads: get_tracker_ads. Price: Free. library plus the id search_ads or get_tracker_ads returned. An Ad never observed is not_found. next_cursor pages.

Inputs: id (required), library (required), limit, cursor. Returns: items, next_cursor

get_balanceGet balanceA
Read-onlyIdempotent
Inspect

Use when you need the Customer's prepaid Credits before spending: the balance plus each Grant (such as the Starter Grant) with its Credits left and expiry. Not for past charges: use get_usage. For one call's price, pass estimate=true to that tool. Price: Free. Grants are spent first.

Inputs: no named parameters. Returns: grants, balance_credits

get_changesGet change reportsA
Read-onlyIdempotent
Inspect

Use when you need what changed for a Tracker, or a Collection merged newest first: new videos, outliers, follower and view moves, velocity spikes, new top videos, new or stopped Ads, with before/after. Not for a Tracker's current state or sample: get_tracker. For fresh numbers now: track with refresh=true (charged). Price: Free. Pass tracker_id or collection (id or name), not both; since keeps later reports. New Ads carry analysis and analysis_status. With a focus, only in-focus videos are listed and off_focus_count counts the rest; include_off_focus=true lists them with verdicts.

Inputs: limit, since, cursor, collection, +2 more. Returns: items, next_cursor

get_comment_repliesGet a comment's repliesAInspect

Use when a comment get_comments returned has a thread (reply_count > 0 on TikTok and Facebook; Instagram may say 0 and still have one) and you need its replies. Not for top-level comments: use get_comments first; a comment it has not listed is comment_not_found, uncharged. Price: 3 credits per page. Pass the video (URL or platform + id) and comment_id. limit 1-100 (default 25); next_cursor is null at the end. A platform without replies is unsupported_platform.

Inputs: comment_id (required), id, url, limit, +5 more. Returns: run, cached, result, poll_url, +1 more

get_commentsGet a video's commentsAInspect

Use when you need what viewers say about one video: a page of its comments (text, likes, reply count, never the author), with analyze its sentiment and themes. Not for one comment's thread: use get_comment_replies. Not for the video itself: use get_video. Price: 3 credits per page; +10 credits with analyze. By URL or platform + id, on TikTok, Instagram, YouTube or Facebook. limit 1-100 (default 25); pass next_cursor as cursor.

Inputs: id, url, limit, cursor, +5 more. Returns: run, cached, result, poll_url, +1 more

get_creatorGet a creatorAInspect

Use when you need one creator's profile: followers, published contact, baseline (median views, engagement, cadence) and Scores; include: ['videos'] adds recent videos. Not for watching them over time: use track. Not for one of their videos: use get_video or score_video. Price: 6 credits; videos pages 3 credits; intelligence=true: free page, +20 credits per analysed video (top 20). contact is what the account publishes; follow anti-spam law when using it. next_cursor pages videos. intelligence: true analyses its stored videos (fetch include: ['videos'] first).

Inputs: handle (required), platform (required), limit, cursor, +6 more. Returns: run, items, cached, result, +3 more

get_hashtag_or_soundGet a hashtag or soundAInspect

Use when you need one hashtag's or sound's totals, trend direction, top videos and latest Snapshot (a sound adds artists, is_commercial for ads, release date). Not for a search phrase: use get_keyword. Not for watching it daily: use track. Price: hashtag 3 credits, sound 6 credits. kind hashtag or sound; ref is the tag or sound id. videos: true pages its videos instead, always fresh, at the same price per page; pass next_cursor as cursor.

Inputs: ref (required), kind (required), platform (required), cursor, +4 more. Returns: run, cached, result, poll_url, +1 more

get_keywordGet a keywordAInspect

Use when you need one search phrase's sample stats, trend since the last lookup and top 10 videos by views, on one platform (tiktok, instagram, youtube or facebook). Not for results across platforms: use search_videos. Not for an analysed niche answer: use research. To watch daily: track kind=keyword. Price: 3 credits; focus +3 credits per video judged, +1 credit per must_mention rejection. One page of the platform's search (relevance, past month): a sample, not platform totals; a lookup under 24 h old answers at the same price. focus hides off-focus top videos; stats stay unfiltered.

Inputs: phrase (required), platform (required), focus, estimate, +3 more. Returns: run, cached, result, poll_url, +1 more

get_researchRead a researchA
Read-onlyIdempotent
Inspect

Use when you have a research or breakdown run id and want its digest, or its videos, creators, hashtags or sounds as items, filtered or sorted (e.g. TikTok only, over 100k views, best outlier first). Not for collecting new data: use research or breakdown (charged, takes minutes). For a Run still running, use get_run. Price: Free. aspect picks the read (default videos). Each filter names the aspects that take it; others are refused. Numbers are as the research saw them; as_of=latest for the newest.

Inputs: run_id (required), sort, as_of, limit, +13 more. Returns: run, mode, as_of, items, +12 more

get_runGet a runA
Read-onlyIdempotent
Inspect

Use when a paid tool returned a run id still running: returns its status in run and, once completed or partial, the full result. Not for slicing a finished research: get_research. Not for past charges: get_usage. Price: Free. Never re-runs the work. wait (seconds, max 120) blocks until it settles or the wait runs out, instead of polling; without it, poll after 2 s, doubling the gap up to 10 s; research takes minutes.

Inputs: run_id (required), wait. Returns: run, result, poll_url

get_trackerGet a trackerA
Read-onlyIdempotent
Inspect

Use when you need one Tracker's kind, platform, target, state and analysis switch, and with a focus its latest in-focus sample. Not for what changed: get_changes. Not for starting one: track (an untracked target here is not_found). Price: Free. Find it by tracker_id, or by platform + target as track takes them. With a focus, off-focus videos are hidden and counted in off_focus_count (a creator Tracker returns recent_videos); include_off_focus=true shows every verdict.

Inputs: kind, target, platform, tracker_id, +1 more. Returns: sample, tracker, recent_videos

get_tracker_adsGet a tracker's stored AdsA
Read-onlyIdempotent
Inspect

Use when you need every Ad stored for a tracked Advertiser, stopped and removed Ads included. Not for an untracked Advertiser: search_ads. Not for what changed: get_changes. Price: Free. Advertiser Trackers only, paused too. Each Ad has a compact analysis or null; a filter on hook_type, angle, offer_type or format skips Ads with none. include=intelligence adds the full payload. next_cursor pages.

Inputs: tracker_id (required), angle, limit, cursor, +12 more. Returns: items, next_cursor

get_tracker_snapshotsGet a tracker's historyA
Read-onlyIdempotent
Inspect

Use when you need a Tracker's history over time: its target's Snapshots, or for an Advertiser the Ads running, started and stopped per day. Returns them in items. Not for what changed: get_changes. Not for the Ads themselves: get_tracker_ads. Price: Free. since and until (UTC days) apply to Advertisers. Their series counts only observed Ads, reaches back before the Tracker, and has running null on a day it cannot be known. next_cursor pages.

Inputs: tracker_id (required), limit, since, until, +1 more. Returns: items, coverage, next_cursor, coverage_note

get_usageGet usageA
Read-onlyIdempotent
Inspect

Use when you need what has already been paid for, before repeating work: recent charges, one per Run, with kind, status, charge and list price in Credits, plus the total. Not for the Credits left: get_balance. Not for one Run's result: get_run. Price: Free.

Inputs: limit, cursor. Returns: items, next_cursor, total_charged_credits

get_videoGet a videoAInspect

Use when you have one video (URL or platform + id) and need its metadata, stats, Scores, analysis, transcript or file. Returns the Video in result. Not for its comments: get_comments. Not for an outlier verdict: score_video. Price: 3 credits plain; include intelligence 23 credits instead; transcript only 10 credits instead; download 3 credits alone, else +3 credits. include intelligence: full analysis (hook, CTA, tone, timed transcript and scenes); transcript: speech only; download: file link (download_expires_at). Over 10 minutes: video_too_long; gone or private: media_unavailable; uncharged.

Inputs: id, url, include, refresh, +4 more. Returns: run, cached, result, poll_url, +1 more

list_collectionsList collectionsA
Read-onlyIdempotent
Inspect

Use when you need the Customer's Collections (named sets of Trackers such as 'Competitors'), each with its kind and member count. Not for its Trackers: list_trackers. Not for what changed in one: get_changes with collection. Price: Free. Each holds one kind: creator, hashtag, keyword, sound or advertiser (older ones may hold video). Filter by kind; next_cursor pages.

Inputs: kind, limit, cursor. Returns: items, order_by, collection, next_cursor

list_trackersList trackersA
Read-onlyIdempotent
Inspect

Use when you need the Customer's Trackers, with state, kind and next cycle time, e.g. to find a tracker_id. Not for one Tracker's detail or sample: use get_tracker. Not for what changed: use get_changes. Price: Free. Filter by state or kind; next_cursor pages.

Inputs: kind, limit, state, cursor. Returns: items, next_cursor

remove_from_collectionRemove from a collectionA
Idempotent
Inspect

Use when taking a Tracker (tracker_id) out of a Collection (by id or name); the Tracker keeps running and stays in its other Collections. Not for stopping the Tracker: set_tracker_state or delete_tracker. Price: Free.

Inputs: collection (required), tracker_id (required). Returns: tracker, collection

rename_collectionRename a collectionA
Idempotent
Inspect

Use when renaming a Collection, by id or current name; its Trackers are untouched. Not for changing its members: add_to_collection or remove_from_collection. Price: Free.

Inputs: name (required), collection (required). Returns: collection

researchResearch a nicheAInspect

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.

Inputs: intent (required), region, window, estimate, +5 more. Returns: run, cached, result, poll_url, +1 more

score_videoScore a videoAInspect

Use when you need whether one video is an outlier for its creator: outlier multiple (views over the creator's median), velocity (views per hour since posting) and percentile. Returns them in result. Not for the video's metadata or analysis: use get_video. Not for the creator's baseline: use get_creator. Price: 9 credits. By URL or platform + id. Fetches the creator's recent videos when no baseline exists yet.

Inputs: id, url, estimate, platform, +2 more. Returns: run, cached, result, poll_url, +1 more

search_adsSearch ad librariesAInspect

Use when you need Meta, TikTok or Google Ads by query or advertiser (one). Not for one Ad or an Advertiser's profile: use get_ad. To watch an Advertiser: track. Price: Meta 1 credit per Ad delivered; TikTok 3 credits per page; Google 3 credits per Ad; +20 credits per Ad analysed. Meta: status, kind, media_type, placements, started_after/before, limit; order_by winner. analyze: first 50. TikTok: EU/EEA, CH, UK and Turkey only; advertiser: id, library URL or name (advertiser_ambiguous: candidates, free).

Inputs: library (required), kind, limit, query, +13 more. Returns: run, cached, result, max_ads, +4 more

search_videosSearch videosAInspect

Use when you need a page of videos matching a query across TikTok, Instagram and YouTube (Facebook opt-in). Not for a ranked, analysed niche answer: use research. Not for one phrase's stats and trend on one platform: use get_keyword. Price: 3 credits per platform per page (9 credits for the default three); +20 credits per video analysed with intelligence=true (top 20); focus +3 credits per video judged, +1 credit per must_mention rejection. Up to 30 a page (default 25); next_cursor pages. Instagram and Facebook are best-effort. Videos over 10 minutes are not analysed.

Inputs: query (required), sort, focus, limit, +9 more. Returns: run, cached, result, poll_url, +1 more

set_tracker_focusSet, clear or preview a tracker's focusA
Idempotent
Inspect

Use when telling one creator, hashtag, sound or keyword Tracker which videos are relevant (plain language, exclusions, optional must_mention), or previewing a focus. Not for pausing or analysis: set_tracker_state or set_tracker_intelligence; act_on_collection has no focus action. Price: +3 credits per video judged, +1 credit per must_mention rejection; nothing for one already judged; clearing is free. Setting judges the latest sample now, so get_tracker hides off-focus videos. focus null clears it. preview=true returns verdicts without saving; saving after costs nothing more.

Inputs: focus (required), kind, target, preview, +5 more. Returns: run, focus, cached, sample, +5 more

set_tracker_intelligenceSwitch tracker analysis on or offA
Idempotent
Inspect

Use when switching analysis of new videos or Ads on or off for one Tracker, from its next cycle. Not for a whole Collection: act_on_collection. Not for which videos count: set_tracker_focus. Price: Free. Find it as in get_tracker. The switch is free; on, it spends Credits: +20 credits per new video or Ad analysed, on top of the cycle price.

Inputs: intelligence (required), kind, target, platform, +1 more. Returns: tracker

set_tracker_statePause or resume a trackerA
Idempotent
Inspect

Use when pausing or resuming one Tracker; a paused Tracker runs no cycles and is charged nothing. Not for a whole Collection: act_on_collection. To stop for good: delete_tracker. Price: Free. Find it as in get_tracker. Resuming restarts its daily cycles at the usual price.

Inputs: state (required), kind, target, platform, +1 more. Returns: tracker

trackTrack a targetAInspect

Use when a creator, hashtag, keyword, sound or Advertiser should be watched daily, with Change Reports. Not for filing into a Collection: add_to_collection (also starts a Tracker for a new target). Price: Per cycle, first on create: creator 6, hashtag 3, keyword 3, sound 6, advertiser 30 credits; +20 credits per new video or Ad analysed; focus +3 credits per video judged, +1 credit per must_mention rejection. Re-tracking: free, same Tracker. kind=keyword takes the phrase; TikTok Advertiser (kind=advertiser, platform tiktok): EU/EEA, CH, UK and Turkey. refresh=true + tracker_id: a cycle now.

Inputs: kind, focus, target, refresh, +7 more. Returns: run, cached, created, tracker, +12 more

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Remote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
      16
      9 npm
      1
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
      MIT
    Try in Browser

    Glama MCP Gateway

    Add one secure layer between your agents and this server.

    Resources