Hooklayer
Live TikTok creator intelligence for AI agents.
What it can do
- Analyze Account: Deep intelligence on a TikTok creator by handle. Returns viral DNA scores (viral_dna_score, replicability_score, originality_score, consistency_score, audience_fatigue), format finger
- Score Hook: Score a TikTok/Reels/Shorts hook against proven viral patterns. Returns a 0-100 score, percentile rank, matched viral pattern, three rewritten versions at higher quality, a one-sentence ve
- Viral Remix: Take a viral source video and produce a fresh script that mirrors its viral DNA — same scene structure, same energy pattern, different topic. Returns the extracted formula, scene-by-scene
What data it sees
Do you need an account
No: the server works without sign-in
Live TikTok creator intelligence for AI agents.
Hooklayer pulls real performance data from any TikTok handle in seconds: viral DNA scoring, replicability analysis, top-performing video breakdowns, format fingerprints, hook patterns, and a stealable steal_map.
7 MCP tools that chain automatically:
- analyze_account (5 credits) — TikTok creator deep dive. Returns viral_dna, steal_map, format_fingerprint, top 5 videos, content_gaps, and a
recommended_chainfield that pre-fills the next 3 tool calls. The agentic anchor. - score_hook (1 credit) — Score any hook 0-100 against proven viral patterns. Returns 3 rewrites at higher quality.
- viral_remix (3 credits) — URL or transcript → fresh scene-by-scene script with mirrored viral DNA.
- trend_pulse (1 credit) — Rising opportunities + saturated patterns per niche.
- find_viral_template (1 credit) — Niche-fit ranked templates with hook patterns and example URLs.
- match_voice (2 credits) — Extract a creator's voice DNA, rewrite a draft in their style.
- predict_virality (2 credits) — Score a draft script for viral potential before publishing.
The agentic chain pattern: call analyze_account once → agent reads recommended_chain → fires the next 3 tools with params pre-filled. No prompt engineering, no glue code.
Auth: Bearer (hl_live_*) OR OAuth 2.1 + PKCE + Dynamic Client Registration. RFC 8414, 9728, 7591, 6750, 7636 compliant.
Free tier: 100 lifetime credits, no card required. Mint instantly at https://hooklayer.dev/auth/signup
Paid tiers: $49 Starter / $149 Pro (most popular) / $499 Agency. 20% annual discount.
Listed on the Anthropic Official MCP Registry as io.github.khan-ashifur/hooklayer v1.0.0.
Docs: https://hooklayer.dev/docs Playground: https://hooklayer.dev/playground GitHub: https://github.com/khan-ashifur/hooklayer
How to connect
How to connect Hooklayer to Claude
The server address to paste into Claude settings:
https://hooklayer--khan-ashifur.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect Hooklayer to ChatGPT
The server address to paste into ChatGPT settings:
https://hooklayer--khan-ashifur.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect Hooklayer to Cursor
The server address to paste into Cursor settings:
https://hooklayer--khan-ashifur.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (7)
Raw names from tools/list. Only developers need these.
| analyze_account | Deep intelligence on a TikTok creator by handle. Returns viral DNA scores (viral_dna_score, replicability_score, originality_score, consistency_score, audience_fatigue), format fingerprint, top 5 videos with transcripts, content gaps, AND a `recommended_chain` field with pre-filled next tool calls. USE WHEN the user references a creator by @handle, asks "analyze X", wants competitor research, or needs creator context before generating content. The recommended_chain suggests which tools to call next (match_voice, trend_pulse, viral_remix) with parameters pre-filled — review and execute them as appropriate. TikTok only in v1. Costs 5 credits. 1-hour cache per handle. TOOL HEALTH: Every response includes a `quality` field with a level (full | partial | degraded) and a reason. If quality.level is partial or degraded, you MUST flag this to the user explicitly in chat (e.g. "Heads up — this call returned partial data: <reason>") before reporting any results. Never silently route around a degraded response. REPORTING: When you summarize this in chat, you MUST surface viral_dna.viral_dna_signals, viral_dna.replicability_signals, viral_dna.originality_signals (each as bullet lists with the cited evidence string verbatim) AND viral_dna.would_fail_because verbatim AND provenance.video_post_dates so the user can see freshness. Never hide the evidence array behind a paraphrase — these are the auditability layer. |
| score_hook | Score a TikTok/Reels/Shorts hook against proven viral patterns. Returns a 0-100 score, percentile rank, matched viral pattern, three rewritten versions at higher quality, a one-sentence verdict naming the closest calibration anchor (10/30/50/70/85/95), a 6-element signals[] array with evidence per sub-score, and a would_fail_because counterfactual. USE WHEN the user has a draft hook to validate, wants to A/B between alternatives, or needs to catch AI-generated slop before publishing. Pairs after viral_remix to verify the generated hook. Costs 1 credit. TOOL HEALTH: Every response includes a `quality: { level: "full" | "partial" | "degraded", reason?: string }` field. If quality.level is "partial" or "degraded", you MUST flag this to the user explicitly in chat ("Heads up — this call returned partial data: <reason>") before reporting any results. Never silently route around a degraded response. REPORTING: When you summarize this in chat, you MUST surface (a) the score paired with the closest anchor from the why field, (b) the signals[] array as a bullet list with each evidence string verbatim — never paraphrase or drop signals, and (c) the would_fail_because field verbatim. If you score multiple hooks in sequence, also explicitly compare their signals[], not just the numeric scores — that's how the user judges which one wins. |
| viral_remix | Take a viral source video and produce a fresh script that mirrors its viral DNA — same scene structure, same energy pattern, different topic. Returns the extracted formula, scene-by-scene script, camera shots, text overlays, and a `verify_hook` block prompting you to score the generated hook via score_hook. USE WHEN the user finds a video they want to copy the structure of, or chained from analyze_account.recommended_chain. Pass EITHER source_url (auto-extracts transcript) OR transcript directly — one is required. Costs 3 credits. NO SELF-RATING: viral_remix deliberately does NOT return a self-rated hook score. The script generator rating its own hook is structurally invalid (cardinal coupling). After every viral_remix call, you MUST call score_hook with the verify_hook.hook_text to get a structurally-independent quality signal before reporting to the user. Skipping this step is hiding the self-grading loop. |
| trend_pulse | Surface what is actually peaking in short-form video right now for a niche. Returns 3 rising opportunities (format/hook/style/topic) with growth rates, per-entry signal_strength (0-1), sources[] (Google Trends + YouTube velocity + Reddit hot + internal corpus), signal_window, plus 2 saturated patterns to avoid AND top-level provenance with cache_age_hours and cache_status. USE WHEN the user asks "what should I post about", "what's trending in [niche]", or before generating content for the first time. Pairs after analyze_account to validate a creator's formula against current trends. Costs 1 credit. 12-hour cache per niche. TOOL HEALTH: Every response includes a `quality: { level: "full" | "partial" | "degraded", reason?: string }` field. If quality.level is "partial" or "degraded", you MUST flag this to the user explicitly in chat ("Heads up — this call returned partial data: <reason>") before reporting any results. Never silently route around a degraded response. REPORTING: When you summarize this in chat, you MUST cite the data_sources array verbatim and surface cache_status (fresh|stale) — the user needs to know if they're looking at live data. For each rising/saturated entry, surface the growth percentage AND the signal_window verbatim. Never round growth percentages: if the response says "+178.4%", report "+178.4%" — never "+180%". |
| find_viral_template | Find proven viral templates in a niche with example videos. Returns niche-fit ranked templates with hook pattern, format structure, average views, and example URLs. USE WHEN the user asks "what's working in [niche]", "give me templates I can copy", or wants concrete copyable structures rather than abstract trends. Pairs with viral_remix for end-to-end script generation. Costs 1 credit. |
| match_voice | Extract a creator's voice DNA from 3+ reference samples (URLs or text) and rewrite a draft in their voice. Returns voice profile (energy, humor, vocabulary, signature moves), reusable prompt instructions, the rewritten draft, AND a deterministic voice_metrics block: vocab_diversity_ttr (type-token ratio), filler_rate_per_100_words, avg_sentence_length_words, total_words, and signature_phrases[] (top 5 recurring 2-3-grams with counts). USE WHEN the user wants to write in another creator's style, has reference content to match, or chained from analyze_account.recommended_chain (which pre-fills reference_samples from the analyzed creator's videos). Costs 2 credits. TOOL HEALTH: Every response includes a quality field (level: full | partial | degraded, plus a reason string). If quality.level is partial or degraded, you MUST flag this to the user explicitly in chat ('Heads up — this call returned partial data: <reason>') before reporting any results. Never silently route around a degraded response. REPORTING: When you summarize this in chat, you MUST surface the voice_metrics block as numbers — TTR, filler rate, avg sentence length, and the top signature_phrases with their counts. The qualitative voice_profile labels (energy, personality) alone are vibes; the numeric metrics are the reproducible signature. Cite both. |
| predict_virality | Score a draft script for viral potential. Returns a structurally-independent virality_score (the adversarial/skeptical pass — what the script realistically earns after attack vectors land), an optimistic_score (the upstream forensic-analyzer pass), score_range [low, high] showing honest variance, viral DNA breakdown, retention diagnosis, target emotion, share reason, a 6-element signals[] array with evidence per sub-score, a would_fail_because counterfactual, a calibration_check (anchor + agreement), AND attack_vectors[] naming specific failure modes. The two scores being side-by-side is the WHOLE POINT — historical Hooklayer demos hit 87 every run because the upstream score was self-graded. Now virality_score is the skeptical number; cite it. USE WHEN the user has a finished draft and wants pre-publish verification, or chained after viral_remix to validate the generated script. Pass either a script string or a video URL. Costs 2 credits. TOOL HEALTH: response includes a quality field (level: full | partial | degraded, plus reason). If level is partial or degraded, flag it in chat before reporting results. Never silently route around degraded data. REPORTING: When you summarize this in chat, you MUST surface (a) virality_score as the headline number with the score_range, (b) optimistic_score named explicitly as "upstream / self-graded" so the user sees both, (c) the calibration_check.anchor and agreement verbatim, (d) the signals[] array as a bullet list with each evidence string, (e) would_fail_because verbatim, (f) attack_vectors[] as a bullet list with severity. NEVER report optimistic_score alone — that recreates the self-grading loop the v3 ship was designed to break. |