{
  "name": "shortsintel",
  "title": "ShortsIntel",
  "version": "1.0.0",
  "description": "Short-form video intelligence: search, enrich, score and track public videos on TikTok, Instagram Reels and YouTube Shorts. Priced per operation and prepaid; every paid tool accepts `estimate` so an agent can quote a price before spending.",
  "websiteUrl": "https://www.shortsintel.com",
  "documentationUrl": "https://www.shortsintel.com/docs/mcp",
  "privacyPolicyUrl": "https://www.shortsintel.com/privacy",
  "termsOfServiceUrl": "https://www.shortsintel.com/terms",
  "contactEmail": "support@shortsintel.com",
  "remotes": [
    {
      "type": "streamable-http",
      "url": "https://www.shortsintel.com/api/mcp"
    }
  ],
  "capabilities": {
    "tools": {
      "listChanged": false
    }
  },
  "authorization": {
    "schemes": [
      "bearer",
      "oauth2"
    ],
    "bearer": {
      "description": "An API key from the console, sent as `Authorization: Bearer sk_live_...`.",
      "tokenSource": "https://www.shortsintel.com/console/keys"
    },
    "oauth2": {
      "protectedResourceMetadata": "https://www.shortsintel.com/.well-known/oauth-protected-resource/api/mcp",
      "authorizationServerMetadata": "https://www.shortsintel.com/.well-known/oauth-authorization-server"
    }
  },
  "tools": [
    {
      "name": "research",
      "title": "Research a niche",
      "description": "Run a Research: searches TikTok, Instagram Reels and YouTube Shorts for an intent, de-duplicates, enriches the top videos with Intelligence, ranks them and returns a Digest (themes, hooks that work, sentiment, recommended angles) plus the ranked videos, outlier creators, hashtags and sounds. Costs $0.50 for up to 50 enriched videos, then $0.01 each (at most $2.00). Takes 2 to 10 minutes: this tool waits up to 60 s, then returns a run id to poll with get_run.",
      "price": "$0.50 for up to 50 enriched videos, then $0.01 each, at most $2.00",
      "paid": true
    },
    {
      "name": "search_videos",
      "title": "Search videos",
      "description": "Keyword search across platforms. Returns up to 30 normalised videos per page with stats. Cheap ($0.01/page). Add intelligence=true to enrich the top 20 with Intelligence ($0.02 each, async); a search that finds no videos still completes and is charged the page fee. Instagram results are best-effort (coverage: partial).",
      "price": "$0.01 per page; +$0.02 per enriched video with intelligence=true (top 20)",
      "paid": true
    },
    {
      "name": "get_video",
      "title": "Get a video",
      "description": "Look up one video by URL or by platform + id. Returns metadata, stats, the latest Snapshot and Scores when history exists ($0.005, $0.00125 cached). include: ['intelligence'] adds the full Intelligence object (hook, CTA, tone, visual, safety) and is charged $0.02 fresh, $0.005 cached, instead of the lookup price, not on top of it. include: ['transcript'] alone adds the transcript for a flat $0.005, also instead of the lookup price. Each call is charged one price.",
      "price": "$0.005 plain ($0.00125 cached); with include=intelligence $0.02 ($0.005 cached) instead; transcript only $0.005 instead",
      "paid": true
    },
    {
      "name": "score_video",
      "title": "Score a video",
      "description": "Judge a video (by URL or platform + id) against its creator's baseline: outlier multiple (views vs the creator's median), velocity (views per hour since posting) and percentile. Fetches the creator's recent videos if no baseline exists ($0.05).",
      "price": "$0.05",
      "paid": true
    },
    {
      "name": "get_creator",
      "title": "Get a creator",
      "description": "Creator profile with follower stats, baseline metrics (median views, engagement rate, posting cadence) and Scores; pass include: ['videos'] to add recent videos ($0.02, cheaper cached).",
      "price": "$0.02",
      "paid": true
    },
    {
      "name": "get_hashtag_or_sound",
      "title": "Get a hashtag or sound",
      "description": "Look up a hashtag or a sound (TikTok music / Instagram audio): totals, trend direction, top videos and the latest Snapshot ($0.02, cheaper cached).",
      "price": "$0.02",
      "paid": true
    },
    {
      "name": "search_ads",
      "title": "Search ad libraries",
      "description": "Search the Meta or TikTok ad library by keyword or advertiser. Normalised ads with headline, media type, active flag and landing URL ($0.02/page). No enrichment. Pass exactly one of query or advertiser; the TikTok library is global and does not accept country.",
      "price": "$0.02 per page",
      "paid": true
    },
    {
      "name": "track",
      "title": "Track a target",
      "description": "Create a daily Tracker on a creator (the only kind available today; video, hashtag and sound return unsupported_kind, and Facebook returns unsupported_platform). Creating runs the first cycle immediately and charges it ($0.05); with too little balance nothing is created and you get insufficient_balance. Each daily cycle takes a Snapshot and produces a Change Report only when something notable happens (new videos, outliers, followers +/-10%, velocity spikes). Pass refresh=true with an existing tracker_id to run a cycle now, at the same price. estimate=true quotes the base cycle price only: the +$0.02 per new video with intelligence depends on what the cycle finds. idempotency_key applies to refresh only; create is already idempotent by target.",
      "price": "$0.05 per cycle, including the first one run on create; +$0.02 per new video with intelligence",
      "paid": true
    },
    {
      "name": "list_trackers",
      "title": "List trackers",
      "description": "List this Customer's Trackers with state, kind and next cycle time. Free.",
      "price": "Free",
      "paid": false
    },
    {
      "name": "get_changes",
      "title": "Get change reports",
      "description": "Change Reports for a Tracker: new videos, outliers, follower moves and velocity spikes with before/after numbers. Free.",
      "price": "Free",
      "paid": false
    },
    {
      "name": "get_run",
      "title": "Get a run",
      "description": "Poll a Run by id. Returns status and, once completed or partial, the full result. Free, and never re-runs the work. Poll every 5 to 15 s for research, 2 to 5 s for enrichment.",
      "price": "Free",
      "paid": false
    },
    {
      "name": "get_usage",
      "title": "Get usage",
      "description": "Recent charges, one per charged Run, with the Run behind each one: kind, status, charge, list price and when, plus the total charged. Use it to see what has already been paid for before repeating work. Free.",
      "price": "Free",
      "paid": false
    },
    {
      "name": "get_balance",
      "title": "Get balance",
      "description": "Prepaid balance in USD, currency and when any starter credit expires. Free.",
      "price": "Free",
      "paid": false
    }
  ],
  "pricing": {
    "model": "prepaid-per-operation",
    "currency": "USD",
    "estimateSupported": true,
    "description": "Prepaid balance in USD, charged per operation. Cached results cost 25% of fresh. Before any work starts, the Balance is checked against the operation's quoted price (for Research and enriched searches, the worst-case quote). If it cannot cover that, the call is a `402 insufficient_balance` and no Run is created or charged. A multi-item Run (Research, enriched search) settles per item when it finishes. If the Balance no longer covers every completed item, the completed items are charged in order up to the Balance, the rest fail with `insufficient_balance`, and the Run ends `partial`. A Run that cannot afford any of its work ends `failed` and is not charged.",
    "detailsUrl": "https://www.shortsintel.com/llms.txt"
  }
}