fypnow

Model Context Protocol

The TikTok MCP server for Claude

Stop copying TikTok numbers into a chat window. Connect FYPNow to Claude once and ask it directly — what’s breaking out in crypto this week, and what hooks are they using? — and it pulls the videos, reads the teardowns and answers.

39 tools, OAuth in about thirty seconds, no API key to paste anywhere. Included on every paid plan.

Server URL

https://api.fypnow.com/mcp

Streamable HTTP, OAuth 2.1 with PKCE and dynamic client registration. Point an MCP client at it and it discovers the rest — no manual client registration, no secrets to manage.

Connect it in three steps

No API key, no config file, no terminal.

  1. 1

    In Claude, open Settings → Connectors

    Choose Add custom connector.

  2. 2

    Paste the server URL

    https://api.fypnow.com/mcp — leave authentication blank. Claude discovers it.

  3. 3

    Approve it on FYPNow

    Pick which workspace the connection acts on, choose read-only or read and write, and approve. The tools appear in Claude immediately.

Things worth asking it

Real prompts. The assistant picks the tools itself.

“What are the top videos in the Crypto niche right now, and what hooks do they use?”

“Analyze this TikTok URL and tell me how long the hook runs before the first scene change.”

“Which of my tracked creators had a video break out this week?”

“Find videos similar to this one in my library.”

“Search viral trends for #bitcoin over the last 30 days.”

“Write me a script in the format that worked best for my account last month.”

Trending videos, hashtags and hooks

Niche tools look inside one niche. These look across all of them, the curated niches plus your own, so the assistant can answer “what is breaking out this week?” without you picking a niche first. All of them are free reads.

get_trending_videos

The top videos that entered the catalogue in a window you choose, from 6 hours to 7 days, ranked by multiple or weighted score.

get_trending_hashtags

Hashtags more distinct creators are using than in the period before, so one busy account does not make a trend.

lookup_hashtag

One hashtag: a daily series of videos and median multiple, plus its top videos.

search_hooks

Search the hooks of analysed videos by text or hook type, each with a reusable fill-in template.

suggest_niche_keywords

Keyword ideas for a new niche, taken from the hashtags that appear alongside your topic in the catalogue.

Parameters and example responses are in the trending tools reference. Results describe what has happened to other videos; they are not a forecast.

Trends: what several creators are posting about

A trend is several creators in one niche posting about the same specific thing within a few days: a news story, a release, a match or a challenge. FYPNow detects them automatically from the niches once a day and gives each one a status: new, rising, peaking, fading or ended. Hashtag search is different: it looks up one hashtag on demand. Both trend tools are free reads.

get_trends

Open trends across every niche you can see, or one niche: the name, status, how many creators and videos, the best multiplier, a daily series, example videos with a ready url, suggested Agent keywords and the most shared hashtag.

get_trend

One trend by id, with the same fields plus every visible video in it, best multiplier first.

“What is rising in Fitness right now, and which videos started it?”

The multiplier on a trend is views ÷ followers, the same one the niche walls use. Trends in your own Agents are visible only to your workspace. Statuses, examples and the response shape are in the Trends reference.

Built-in prompts and the agent playbook

The server also offers ready-made workflows and reference text. Many clients list the prompts as commands; the resources are there for the assistant to read before it starts.

Prompts

  • weekly_content_plan
  • trend_scout
  • niche_deep_dive
  • creator_deep_dive

Resources

  • fypnow://docs/agent-playbook
  • fypnow://docs/metrics

The playbook says which tool answers which question, how the metrics are defined, which tools spend quota and how to poll long jobs. Details are on the prompts and resources page.

Ranking: multiple vs weighted score

Niche and trending videos rank by their multiple by default: views divided by the creator’s followers. Ask for the weighted score instead and a win on a larger audience counts for more.

weighted_score = ln(views / followers) × ln(followers)

Null when followers are 1 or fewer, or views are 0 or fewer. Bands: 35 and above exceptional, 25 and above very strong, 18 and above strong, 10 and above promising.

This is a different measure from a tracked-creator breakout, which is views divided by that creator’s usual views. The assistant is told to say which one it is quoting. Formula, examples and when to use each sort are in the ranking reference.

All 39 tools

Generated from the same route table the API dispatches on, so this list cannot describe a tool that does not exist. A read-only connection sees the 25 read tools only.

Read (25) — free beyond the request itself

get_analysis_result

Resolves the job handle returned by analyze_tiktok_video into the finished analysis. Status is processing, completed or failed, and the response carries a retry_after_seconds hint for how long to wait between attempts while it is still processing. A failed job also carries a machine-readable error_code (for example rate_limited or limit_reached; null when none was recorded) next to the error text.

get_script_result

Resolves the job handle returned by generate_script into the finished script. Status is processing, completed or failed, and the response carries a retry_after_seconds hint for how long to wait between attempts while it is still processing.

get_trend_search_result

Resolves the job handle returned by search_viral_trends into the finished results. Status is processing, completed or failed, and the response carries a retry_after_seconds hint for how long to wait between attempts. A search already in flight is resolved here; starting another for the same hashtag spends a second viral search from the monthly allowance. Off-topic results (judged by the relevance check) are left out by default and counted in hidden_count; pass include_hidden to get them. While the relevance check is still running the status stays processing and relevance_pending is true; poll again until it is false.

search_videos

Search analyzed videos and slideshows in this workspace by username, view count, date range, or format ('video' or 'slideshow'). Each row carries platform ('tiktok' or 'youtube') and post_format ('photo' carousel, 'slideshow' template, 'video', or null for a video).

get_video_analysis

Full AI analysis for one video or slideshow. A video returns hook, timing, scenes and transcript; a slideshow (schema_version carousel_v1) returns cover, slide-by-slide breakdown, narrative, aesthetic, audio, swipe and save drivers, and scores.

find_similar_videos

Find videos or slideshows similar to a given one using vector search. Each row carries post_format.

list_breakouts

List videos currently breaking out among tracked creators. Pass username to see one creator's breakouts.

browse_niche_catalog

Browse available niches and their metadata, including catalog_video_count (an approximate count of the videos the niche's catalogue holds, a cached counter updated by the nightly refresh). The workspace's own custom niches come first, then the global catalogue. Each niche has a status: 'active', or 'stopped' (no longer refreshing, but its videos are still there to read). auto_analyse_effective says how its videos get analysed automatically: a global niche ('winners', auto_analyse_shared true) has each refresh's top 10 analysed by fypnow for everyone, free; a custom niche runs 'off', 'winners' or 'all' into this workspace, one catalog slot per video (auto_analyse_mode is the stored choice, null = plan default), and auto_analyse_paused_reason 'catalog_full' means it stopped because the catalog is full (upgrade or free slots). Paginated: when meta.has_more is true, request the next page. Returns niches only, not videos, and carries no per-video AI analysis; that lives behind analyze_tiktok_video. Per-niche numbers (typical views, breakouts, top creators, hashtags) come from get_niche_stats.

suggest_niche_keywords

Suggest search keywords for a niche idea from what the catalogue already holds: the hashtags that co-occur with the topic (topic, up to 60 characters) in videos from the last 30 days across every niche you can see, ranked by distinct videos, with generic tags such as fyp and viral left out. Each keyword carries videos (how many videos use it) and source: hashtag, or topic when nothing in your niches mentions the topic yet (the topic itself then comes back with videos 0 and a note). matched_global_niche names an existing global niche that already covers the topic, if one does. limit is 1-20 (default 6). Keywords are sized for create_niche (1-3 short phrases). No AI call and no TikTok request is made.

get_niche_videos

Top videos in one niche, ranked by multiplier: the video's views divided by its creator's follower count (subscribers for YouTube). As an MCP tool it takes the niche's name (e.g. 'forex'; matched case-insensitively on name, then slug, then singular/plural ('protein noodle' finds 'Protein Noodles'), then the niche's keywords, preferring your own niche over a global one) or a niche id from browse_niche_catalog: pass the name directly rather than browsing first. Your stopped niches still answer; meta.niche gives the niche's status ('active' or 'stopped') and last_refreshed_at, so say when a stopped niche last refreshed. Over REST the id is in the path. Returns catalogue stats — views, likes, author, multiplier, platform — not per-video AI analysis. Niches mix TikToks and YouTube Shorts; platform is 'tiktok' or 'youtube'. A hook and scene teardown of a TikTok or a Short comes from analyze_tiktok_video, which takes its video_url. Rows carry no hook data; the top hooks in a niche come from get_niche_hooks. Each row carries post_format; the format input ('video' or 'slideshow') narrows the list to one. Each row also carries content_format (talking_head, voiceover_broll, slideshow, text_on_screen, skit, tutorial, pov, vlog, compilation or other, or null) and content_format_source: 'analysis' when the video has had a full analysis, 'estimated' when it is a guess from the caption, hashtags and cover only (the video itself was not watched). Estimates appear only for formats we have checked; unlabelled videos have null. The content_format input narrows the list to one, within the niche's top 1,000 videos.

get_niche_hooks

The top hooks in one niche: hook types from the niche's most viral videos (its top 100 catalogue rows by multiplier) that this workspace has analysed. Takes the niche's name (matched like get_niche_videos) or a niche id. Hooks come from videos this workspace has analysed with analyze_tiktok_video and, for a global niche, from the top videos fypnow analyses for everyone after each refresh (examples carry shared: true); catalogue rows carry no hook data, and other workspaces' analyses are never used. Returns hooks (per hook_type: videos, avg_multiplier, up to 3 examples with hook_text (best first) and up to 3 reusable fill-in templates [{template, count, example_video_id}], ordered by how many top videos use the hook), analysed_count, catalog_considered, and next_to_analyse: the next most viral unanalysed videos (slideshows left out, since their analysis has no hook), each with a ready video_url for analyze_tiktok_video. limit sizes next_to_analyse (default 10, max 25). When few or none are analysed, the answer is to offer analysing next_to_analyse; each analysis costs one catalog slot, and nothing is analysed without the user agreeing. meta.niche gives the niche and its status.

get_trending_videos

The top breakout videos across every niche you can see (the global catalogue plus your own niches) that entered the catalogue in the last N hours (hours, 6-168, default 48). Optional niche (id or name) narrows it to one niche, platform to 'tiktok' or 'youtube'. Ranked by multiplier (views / followers) by default, or order_by 'weighted' for ln(views / followers) x ln(followers), which favours big wins on larger accounts. Each row carries the niche, author, a ready url for analyze_tiktok_video, views, followers, multiplier, weighted_score, posted_at and first_seen_at. limit is 1-50 (default 20); the list is not paged. An empty window returns an empty list with meta.hours and meta.since. Catalogue stats only, not per-video analysis.

get_trending_hashtags

The hashtags gaining the most ground across every niche you can see (the global catalogue plus your own niches). Compares the distinct creators posting videos that entered the catalogue in the last N days (days, 1-30, default 7) with the N days before: each tag carries creators, prev_creators, growth ((creators - prev_creators) / max(prev_creators, 1)), videos, prev_videos, median_multiplier and top_video_id. Tags used by fewer than 3 creators in the window are left out, as are generic platform tags such as fyp and viral. Optional niche (id or name) narrows it to one niche. limit is 1-50 (default 20); the list is not paged. Catalogue stats only, not per-video analysis.

lookup_hashtag

One hashtag in the catalogue (a leading # and capital letters are ignored): a daily series of how many videos used it and their median multiplier over the last N days (days, 7-90, default 30), total_videos, and the top 5 videos with a ready url for analyze_tiktok_video. Optional niche (id or name) narrows it to one niche. A tag with no videos returns an empty series, not an error. Catalogue stats only, not per-video analysis.

search_hooks

Search the hooks of analysed videos across every niche you can see (the global catalogue plus your own niches): your own analyses and fypnow's shared ones, best multiplier first. Optional query is a case-insensitive text match on the hook (up to 80 characters), hook_type one of question, bold_claim, curiosity_gap, shock, relatable, tutorial_promise, story_opener or visual_spectacle, niche (id or name) narrows it to one niche. Each row has the hook text, a reusable fill-in hook_template (null for older analyses), the niche, author, a ready url for analyze_tiktok_video, views and multiplier. limit is 1-50 (default 20); the list is not paged. Videos nobody has analysed yet are not searched.

get_trends

Trends several creators are posting about right now, across every niche you can see (the global catalogue plus your own niches): a news event, a release, a match or a challenge, detected daily from the catalogue. Each trend has a status (new, rising, peaking, fading or ended) and status_since, the niche, videos, creators, best_multiplier (views / followers), first_seen and last_seen (dates of its first and latest video), detected_at, a daily series (videos and new creators per day, with that day's status), 3 to 6 example videos with a ready url for analyze_tiktok_video, suggested keywords for a niche agent, its most shared hashtag, and also_in (other niches with the same videos). Optional niche (id or name), status (comma list or open, default open: new, rising, peaking and fading) and days (1-60, default 14). limit is 1-50 (default 20; a value outside that range is clamped to it, not rejected); the list is not paged. meta carries as_of (the date of the latest daily check) and backfill_complete. Trend names are generated from captions. Catalogue stats only, not per-video analysis.

get_trend

One trend from get_trends by id, with the same fields plus members: every visible video in it (up to 50, best multiplier first, each with a ready url for analyze_tiktok_video). The multiplier is views / followers. An unknown id, or a trend outside the niches you can see, is a 404.

get_niche_stats

Stats for one niche from its nightly snapshot: typical post views, breakout posts (3x or more the creator's followers), active creators and views on this week's top posts, each next to the snapshot from a week earlier; top and rising creators, sounds in use, top hashtags, posting times, the top 3 posts this week, posts and breakouts per posting day, and the daily snapshot series. Takes a niche id from browse_niche_catalog. The numbers describe the top posts the nightly crawl keeps per niche (about 50 a night, about 100 for custom niches), not all of TikTok. latest is null until the first nightly snapshot, and week-over-week comparisons need a week of snapshots. format_mix counts the niche's videos posted in the window by content_format [{content_format, breakouts, all, source}] (breakouts = 3x or more the creator's followers), with source 'analysis', 'estimated' (a caption-and-cover guess, shown only for formats we have checked) or 'mixed'; format_mix_unlabelled counts videos with no usable format.

list_creators

List tracked creators in this workspace, with their ids.

get_creator_report

Profile, follower history, winning patterns, posting cadence and hit rate for one creator.

list_scripts

List generated scripts in this workspace.

get_script

Fetch one generated script by id.

list_library

List videos saved to the workspace library.

get_growth_scorecard

Grade the workspace own account against its niche benchmarks.

get_account_usage

Current plan allowances and consumption. Free and unmetered.

Write (14) — draw down a plan quota

analyze_tiktok_video

Analyze a TikTok video or photo slideshow (/video/ or /photo/ links) or a YouTube Short (youtube.com/shorts/, youtube.com/watch?v= or youtu.be/ links) by URL. Consumes one catalog slot.

Catalog slot — standing cap, does not reset; a slot frees at the end of the UTC day a video is dropped

create_niche

Create a Viral Content Agent that watches a niche by keyword.

Custom niche (Viral Content Agent) slot — standing cap

update_niche

Rename a Viral Content Agent, change its 1-3 keywords, and/or set auto_analyse_mode: 'off', 'winners' (each refresh's top 10 by multiplier) or 'all' (every new video), or 'default' for the plan default (off on Creator, all on other plans). Changed keywords re-seed the niche. Auto-analysis uses one catalog slot per video, highest multiplier first, and stops when the catalog is full.

stop_niche

Stop a Viral Content Agent. Its slot frees at the next UTC midnight and resume_niche reverses it.

resume_niche

Resume a stopped Viral Content Agent. Needs a free niche slot.

track_creator

Track a TikTok creator by username or profile URL (TikTok only: YouTube channels are not supported yet; analyse Shorts one at a time). Adds the creator to the workspace and scrapes their latest videos in the background; returns a job handle (202). A creator already tracked returns already_tracked, a stopped one is reported as creator_stopped.

stop_tracking_creator

Stop tracking a creator. Their videos are dropped from the catalog (analyses are kept, frozen); resume_tracking_creator reverses it.

resume_tracking_creator

Track a stopped creator again. Videos dropped since the last UTC midnight come back with it.

drop_video

Drop a video from the catalog. The analysis is kept, frozen, and the catalog slot frees at the next UTC midnight.

undrop_video

Restore a dropped video to the catalog. Needs a free catalog slot.

Catalog slot — standing cap, does not reset; a slot frees at the end of the UTC day a video is dropped

search_viral_trends

Search for breakout videos by hashtag. A cached hashtag returns full results right away. An uncached one returns a job handle (202) with no results yet; that handle is resolved by get_trend_search_result, which reports status processing, completed or failed and carries the results. A cached hashtag whose relevance check is still running also returns a job handle (202) too, so it is polled rather than searched again. Off-topic results (judged by the relevance check) are left out by default and counted in hidden_count; pass include_hidden to get them.

Trend search — monthly allowance, resets on your billing day

generate_script

Generate a script grounded in the workspace top performers. Returns a job handle (202) rather than the script itself, because generation takes up to a minute. The handle is resolved by get_script_result, which reports status completed or failed and carries the script.

Script — monthly allowance, resets on your billing day

save_video

Save a video to the workspace library. Works for TikToks and YouTube Shorts; pass platform ('tiktok' or 'youtube') from get_niche_videos, or omit it and a YouTube-shaped id is saved as a Short.

remove_from_library

Remove a video from the library.

What it does not do

  • It is not a TikTok scraper you point anywhere. A connection acts on one workspace, against that workspace’s plan limits.
  • AI teardowns are computed on request. The niche catalogue carries statistics for tens of thousands of videos; the hook and scene analysis runs when you ask for a specific video, and takes a minute or so.
  • It cannot post for you. The MCP server reads and analyses. Slideshow Studio in the FYPNow dashboard makes TikTok slideshows and sends them to your TikTok drafts. Neither the MCP server nor the REST API does that, and posting stays in your hands.
  • It needs a paid plan. API and MCP access require an active subscription — a free trial counts.

Questions

What is a TikTok MCP server?
MCP (Model Context Protocol) is an open standard that lets an AI assistant call external tools. A TikTok MCP server exposes TikTok data and analysis as tools the assistant can use, so instead of copying numbers into a chat you ask a question in plain language and the assistant fetches the data itself. FYPNow's MCP server is at https://api.fypnow.com/mcp.
Do I need an API key to connect FYPNow to Claude?
No. Claude connects over OAuth 2.1 — you point it at https://api.fypnow.com/mcp, approve the connection on a FYPNow screen, and choose which workspace it acts on and whether it may write. No key is created, copied or stored. API keys exist for clients that do not speak OAuth, such as Cursor, VS Code and Windsurf, and for calling the REST API from your own code.
Does it work with ChatGPT?
The OAuth flow ChatGPT's app directory requires is live, and a ChatGPT custom action can call the REST API today with a bearer key. FYPNow is not yet listed in the ChatGPT app directory, so there is no one-click install there yet. Claude works today as a custom connector.
What can the assistant actually do?
39 tools: browse niches, their stats and their top-performing videos, search your workspace's videos, get a full AI teardown of any TikTok URL (hook, scene timing, transcript, retention signals), find similar videos by vector search, list creator breakouts, see the trends detected in each niche, search viral trends by hashtag, generate a script from your own winning patterns, and read your usage. 14 of them change your workspace or spend quota; the rest are read-only.
Does the AI see my whole account?
A connection is bound to exactly one workspace, chosen when you approve it, and you pick read-only or read and write at the same time. A read-only connection cannot analyze a video, create a niche, search trends or generate a script — those tools are not even listed to it. You can revoke a connection at any time in Settings → API.
Does the MCP server cover YouTube Shorts?
For analysis, yes: analyze_tiktok_video accepts YouTube Shorts links (youtube.com/shorts/, youtube.com/watch?v= or youtu.be/) as well as TikTok links, for the same hook, scene and transcript breakdown, and niche video lists include Shorts. Creator tracking, breakouts and trend search are TikTok-only. See the YouTube Shorts analysis page.
Is the MCP server included in my plan?
Yes. REST API and MCP access are included on every paid plan at no extra cost — there is no separate API add-on. Reads do not draw down any quota beyond the request itself; the tools that reach TikTok or run AI analysis draw down the same quotas the dashboard uses.

Put TikTok research inside the assistant you already use

Included on every paid plan. Thirty seconds to connect, and you can revoke it just as fast.