ShortsIntel
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.
- 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
Scored across 34 tools
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.
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.
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.
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
- Operator website
- https://www.shortsintel.com
- Vendor relationship
- First-party
- Documentation
- https://www.shortsintel.com/docs/mcp
- 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 toolsact_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 collectionADestructiveIdempotentInspect
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 trackerADestructiveIdempotentInspect
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 historyARead-onlyIdempotentInspect
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 balanceARead-onlyIdempotentInspect
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 reportsARead-onlyIdempotentInspect
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 researchARead-onlyIdempotentInspect
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 runARead-onlyIdempotentInspect
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 trackerARead-onlyIdempotentInspect
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 AdsARead-onlyIdempotentInspect
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 historyARead-onlyIdempotentInspect
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 usageARead-onlyIdempotentInspect
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 collectionsARead-onlyIdempotentInspect
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 trackersARead-onlyIdempotentInspect
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 collectionAIdempotentInspect
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 collectionAIdempotentInspect
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 focusAIdempotentInspect
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 offAIdempotentInspect
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 trackerAIdempotentInspect
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
- AlicenseNot gradedqualityCmaintenanceRemote 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
- AlicenseCqualityCmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs117 npm46 PyPIMIT
- AlicenseAqualityDmaintenanceEnables 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.169 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityCmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.