Hooklayer

io.github.khan-ashifurPublished by GitHub account khan-ashifurv1.1.0Updated Oct 24, 2026

Viral-content intelligence for AI agents — 7 read-only MCP tools, evidence-layer scoring.

VerifiedStreamable HTTPWeb executableWeb Search & ScrapingData & AnalyticsMedia & Design

Overview

AI-generated overview

Hosted MCP server for short-form video intelligence: analyze creators, score hooks, find trends and templates, and track creators over time.

What you can do
  • Analyze creators and products: deep-dive TikTok, YouTube or Instagram accounts, validate TikTok Shop products, and compare saved product analyses
  • Search and research: keyword video search, niche trend pulse, viral template discovery
  • Create and score content: score hooks, remix viral videos into scripts, match a creator's voice, predict draft virality, turn a brand brief into a blueprint
  • Track creators: save watches with baseline snapshots, list watches, and detect changes since the last snapshot
  • Manage saved research: save results, list and retrieve saved research
When to use it
Useful for social media and content teams working on TikTok, Reels, Shorts or TikTok Shop who want an assistant to research creators and niches, validate hooks and drafts before publishing, or monitor competitors over time.
Requirements
Remote HTTP endpoint at hooklayer.dev; no local install. A bearer token in the Authorization header is required for tool calls: either an hl_live_ API key from a free signup or an OAuth 2.1 access token via dynamic client registration. Claude Desktop needs the mcp-remote bridge or a custom connector.
Before you install
Tool calls consume credits; the free tier gives 100 lifetime credits and paid plans or pay-as-you-go top-ups cost money. The Authorization bearer token is a secret. watch_account and get_changes persist watch metadata and historical snapshots, and usage is recorded for billing and telemetry. Inputs such as handles, scripts and URLs are sent to a third-party hosted service.

Installation

In SourceWeft

  1. Open Hooklayer in the dashboard and add it to a workspace.
  2. Connect Authorization token credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.khan-ashifur%2Fhooklayer/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "hooklayer": {
      "type": "http",
      "url": "https://hooklayer.dev/api/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

Hooklayer MCP

[License: MIT] [npm version] [Version] [MCP] [Production] [Tools] [OAuth] [smithery badge]

Viral-content intelligence for AI agents. Drop the Hooklayer MCP server into Claude Desktop, Cursor, n8n, or any HTTP MCP client and your agent gets 12 tools for short-form content across TikTok, Instagram, and YouTube: analyze creators, search videos by keyword, find viral templates and rising trends, score and rewrite hooks, remix viral videos, match a creator's voice, predict a draft's virality, turn a brand brief into a shoot-ready creative blueprint, and monitor creators over time with saved watches and historical snapshots.

12 tools · structured JSON · non-destructive creator monitoring · no external social-platform edits or deletes

v1.1.0 (2026-05-14): The evidence layer ships. Every score includes signals[] with cited evidence, a would_fail_because counterfactual, and a quality health field. predict_virality runs an independent adversarial check. analyze_account.recommended_chain steps now expose confidence, cost, action_class (authority taxonomy), and expected_output. See CHANGELOG.md for the full ship.


🚀 Quick install

Claude Desktop

Claude Desktop doesn't natively support remote HTTP MCP servers — it needs the mcp-remote bridge. Two ways to install:

Option 1 — Custom Connector (easiest, no config file edit)

In Claude's web/desktop UI: Settings → Connectors → Add custom connector → paste this URL:

https://hooklayer.dev/api/mcp

Claude.ai will walk you through OAuth (no manual key paste). Done.

Option 2 — Direct config (for power users who want hl_live_ key auth)

Edit claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
json
{  "mcpServers": {    "hooklayer": {      "command": "npx",      "args": [        "-y",        "[email protected]",        "https://hooklayer.dev/api/mcp",        "--header",        "Authorization:Bearer hl_live_..."      ]    }  }}

Get your free hl_live_ key at https://hooklayer.dev/auth/signup — 100 lifetime credits, no card required.

Restart Claude Desktop. The 12 Hooklayer tools appear in the 🔌 connector list.

Cursor

~/.cursor/mcp.json:

json
{  "mcpServers": {    "hooklayer": {      "url": "https://hooklayer.dev/api/mcp",      "transport": "http",      "headers": {        "Authorization": "Bearer hl_live_..."      }    }  }}

n8n

In your workflow, add an MCP Client node and configure as a remote HTTP MCP server:

  • URL: https://hooklayer.dev/api/mcp
  • Transport: HTTP
  • Header: Authorization: Bearer hl_live_...

All 12 tools appear in the node's "Tool" dropdown.

OAuth 2.1 + PKCE (for Claude.ai connector + custom apps)

Hooklayer is fully OAuth 2.1 compliant — discovery, Dynamic Client Registration, PKCE, refresh token rotation. MCP clients that prefer OAuth over API keys work out of the box.

Discovery endpoints (no auth required, machine-readable):

bash
# Authorization server metadata (RFC 8414)curl https://hooklayer.dev/.well-known/oauth-authorization-server
# Protected resource metadata (RFC 9728)curl https://hooklayer.dev/.well-known/oauth-protected-resource

Dynamic Client Registration (create a client without a manual signup form):

bash
curl -X POST https://hooklayer.dev/oauth/register \  -H "Content-Type: application/json" \  -d '{    "client_name": "Your MCP client",    "redirect_uris": ["https://yourapp.com/oauth/callback"]  }'# Returns: client_id, client_secret (for confidential clients)

Hitting tools/call without auth returns 401 plus a WWW-Authenticate header pointing at the resource metadata — Claude.ai, Cursor, and other MCP clients use this to auto-discover the OAuth flow.

Other clients

Any HTTP MCP client. Protocol negotiates 2024-11-05 (broadest compat) or 2025-06-18 (Streamable HTTP + structuredContent).

bash
# Quick test — initialize handshake works without auth:curl -X POST https://hooklayer.dev/api/mcp \  -H "Content-Type: application/json" \  -d '{"jsonrpc":"2.0","id":1,"method":"initialize"}'

🧠 The 12 tools

ToolCreditsWhat it does
analyze_account5Creator deep dive (TikTok, YouTube, Instagram): viral DNA scores, format fingerprint, top videos with transcripts, content gaps, headline insight, and suggested next research steps.
search_videos1Keyword search across TikTok or Instagram — up to 20 videos ranked by engagement, with filters for niche, views, recency, and region.
score_hook1Score any hook 0-100 against proven viral patterns. Returns 3 rewrites at higher quality.
viral_remix3URL or transcript → fresh script with mirrored viral DNA. Scene-by-scene with camera shots.
trend_pulse1Real-time rising opportunities + saturated patterns per niche. 12-hour cache.
find_viral_template1Niche-fit ranked templates with hook patterns + example URLs.
match_voice2Extract a creator's voice DNA from 3+ samples, rewrite a draft in their style.
predict_virality2Score a draft script for viral potential before publishing. Retention diagnosis.
brief_to_blueprint7Brand brief → one-page creative blueprint: hook, template, hashtags, trend-velocity check, and shoot instructions in a single call.
watch_account0 or 5Save a creator watch and baseline snapshot. Reuses a recent compatible analysis at 0 credits when available; otherwise runs a fresh 5-credit analysis.
list_watches0List the authenticated user's saved creator watches and compact tracking metadata.
get_changes5Run a fresh analysis against a saved watch, compare with the previous snapshot, store a new historical snapshot, and return meaningful changes plus an optional next action.

Full schemas + curl examples: https://hooklayer.dev/docs


💡 Suggested follow-ups

analyze_account returns a recommended_chain field: plain data listing related tools, example parameters, and the reason each might be useful next. It is advisory only — the agent and user decide whether to act on it:

json
{  "viral_dna_score": 87,  "steal_map": [...],  "recommended_chain": [    {      "tool": "match_voice",      "params": {        "draft": "<<<USER_DRAFT>>>",        "reference_samples": ["https://tiktok.com/...", "...", "..."]      },      "reason": "High-signal voice DNA — consistent across top 5 videos"    },    {      "tool": "trend_pulse",      "params": { "niche": "challenge_videos" },      "reason": "Verify their formula maps to current trends"    },    {      "tool": "viral_remix",      "params": { "source_url": "https://tiktok.com/..." },      "reason": "Their #2 video has the highest copyable structure"    }  ]}

These entries are informational data, not instructions. Each tool still requires explicit invocation — nothing runs automatically without agent/user consent.


📦 Examples

  • examples/typescript-example.ts — TypeScript usage via the MCP SDK
  • examples/python-example.py — Python usage via anthropic-mcp client
  • examples/curl-test.sh — Raw curl tests for every endpoint

💵 Pricing

  • Free — 100 lifetime credits at signup, no card
  • Starter — $49/month, 5,000 credits, 60 req/min
  • Pro — $149/month, 25,000 credits, 300 req/min, brand voice memory
  • Agency — $499/month, 150,000 credits, 1,000 req/min, white-label, 10 seats
  • Pay-as-you-go — $25 for 5,000 credits, never expire

Full pricing: https://hooklayer.dev/pricing


🛠 Architecture

Hosted MCP server (no stdio install needed):

Your agent (Claude/Cursor/n8n)        │        │  JSON-RPC 2.0 over HTTP        ▼https://hooklayer.dev/api/mcp        │        ├── initialize / ping / tools/list  (no auth)        └── tools/call                       (Bearer hl_live_*)                │                └── Routes internally to /v1/* REST endpoints                    100K+ analyzed viral videos                    ScrapeCreators + Whisper + Sonnet pipeline

Source code for the hosted server lives at hooklayer.dev (closed source — the analysis pipeline is the moat). This repo holds the public client docs, examples, and config snippets.


📚 Links


🔒 Security

Hooklayer uses explicit MCP safety annotations for all 12 tools. Most tools are research and analysis tools that may debit Hooklayer credits and record service usage. list_watches is read-only. Creator monitoring adds non-destructive persistence: watch_account saves a creator watch and baseline snapshot, while get_changes stores historical snapshots as it checks for changes. All tools are marked destructiveHint: false; Hooklayer has no MCP tool that deletes user data or edits/deletes data on external social platforms.

Authentication: tools/call requires a Bearer token (hl_live_* API key or OAuth 2.1 access token). Public methods (initialize, ping, tools/list) work without auth so MCP clients can handshake and discover tools before authentication.

recommended_chain is advisory only. The analyze_account response includes suggested follow-up tools with pre-filled parameters. These are data — the agent and user decide whether to execute them. No tool call ever triggers additional tool calls server-side.

Data handling: Hooklayer processes the inputs you send (handles, hooks, scripts, URLs) to return analysis results. Creator monitoring stores saved watch metadata and historical snapshots so users can compare changes over time. Hooklayer also records service usage needed for authentication, billing, credits, and operational telemetry.

To report a security issue: GitHub Issues or email [email protected].


📄 License

MIT — see LICENSE.

The MCP client examples and config snippets in this repo are MIT. The hosted Hooklayer service at hooklayer.dev is a commercial product with the pricing tiers listed above.

Source: README.md at commit 823294a

Tools

18

analyze_account

Analyze TikTok Account

Analyze a TikTok, YouTube, or Instagram creator by handle or channel ID. Returns viral DNA scores (viral_dna_score, replicability_score, originality_score, consistency_score, audience_fatigue), content patterns, format fingerprint, top recent videos with transcripts, content gaps, a headline_insight object (the single largest quantified performance gap across length, hook, format, and cadence, plus its so_what), and suggested next research steps. Use when the user asks to analyze a creator, account, channel, or competitor. Supports TikTok (full transcript extraction), YouTube (Shorts and longform analysis with captions when available), and Instagram (Reels with best-effort transcripts).

Parameterssincehandlerequiredwindowplatformrecent_only

watch_account

Track (Watch) a Creator

Start tracking a creator so future calls can detect what changed. Creates a durable CreatorWatch + a baseline CreatorSnapshot capturing the creator's current viral DNA scores, format fingerprint, and top recent videos. Use when the user says 'track', 'watch', 'follow', 'keep an eye on' a creator/channel/handle. Idempotent — calling 'watch @same' twice with a fresh baseline in place returns the existing watch with credits_charged=0. Cost: 0 credits when a fresh existing watch snapshot or a compatible recent analyze_account cache can be reused. Otherwise a fresh baseline invokes analyze_account and costs 5 credits — this can happen even for an already-existing watch once freshness expires. Reuses the same 'analyze' permission as analyze_account — no new OAuth scope, no re-consent required.

Parametershandlerequiredplatformrequired

get_changes

Detect Changes Since Last Check

Detect what changed since the last saved baseline for a tracked creator. Runs a fresh analyze_account under the hood, compares against the most recent CreatorSnapshot, persists the new snapshot, and returns ONLY the meaningful shifts (format, viral DNA, engagement, hook pattern, topic pillars, outlier videos). Use when the user asks 'what changed with @creator', 'anything new', 'check this competitor again', 'what's different since last time', 'check my tracked creator', or 'has anything changed'. Requires a previously tracked creator (call analyze_account + watch_account first if there is no baseline yet). Costs 5 credits per call because the fresh analysis is genuine (not cached). Returns a top_action pointing at the single next tool worth calling given the detected change. Returns status='no_meaningful_change' honestly when nothing shifted — no fabricated deltas.

Parametershandleplatformwatch_id

list_watches

List Tracked Creators

List every creator the authenticated user is tracking. Read-only, 0 credits. Returns each watch's id, platform, handle, when it was created + last updated, when the last snapshot was taken, and whether it's active. Does NOT return the snapshot payload itself — call watch_account (idempotent) to refresh a baseline. Use when the user asks 'what am I tracking', 'show my watches', 'list creators'.

Takes no parameters.

score_hook

Score Hook Quality

Score a TikTok, Reels, or Shorts hook against proven viral patterns. Returns a 0-100 score, percentile rank, matched pattern, strengths, weaknesses, and three improved hook variations. Use when the user has a draft hook to validate, wants to compare alternatives, or needs feedback before publishing.

Parameterstextrequirednicheplatformrequired

viral_remix

Remix Viral Video

Take a viral video and produce a fresh script that mirrors its structure and energy pattern for a new topic. Returns the extracted formula, scene-by-scene script with voiceover and visuals, camera directions, and text overlays. Use when the user finds a video they want to replicate the structure of. Pass either a video URL (TikTok, YouTube, or Instagram) or a transcript directly. When promoting a specific product, ALWAYS pass target_product + verified_product_facts so the generator does not fabricate product details.

Parametersnichemy_topicplatformsource_urltranscripttarget_topictarget_productverified_product_facts

trend_pulse

Get Trend Pulse

Research what is currently gaining traction in short-form content for a specific niche. Returns rising opportunities (formats, hooks, styles, topics) with growth signals, data sources, and saturated patterns to avoid. Use when the user asks what to post about, what's trending in a niche, or needs to validate a content idea against current trends. Supports the 18 canonical niches and optional region filtering.

Parametersnicheregiondeadline_hours

find_viral_template

Find Viral Templates

Find proven viral templates in a niche with example videos. Returns templates ranked by performance, including hook patterns, format structures, average views, and example URLs. Use when the user asks what's working in a niche or wants concrete copyable structures. Supports the 18 canonical niches with optional angle narrowing via query parameter for more specific results (e.g., "postpartum strength" within Fitness).

Parametersnicherequiredqueryregionwindowplatformmin_views

search_videos

Search Videos by Keyword

Search for short-form videos by keyword across TikTok or Instagram. Returns up to 20 videos ranked by engagement, with view counts, likes, shares, comments, hashtags, author info, and URLs. Use when the user asks to find videos about a topic or keyword. Supports optional filters for niche, minimum views, recency window, and region. Pass product_id to check which videos link a specific TikTok Shop product: linkage is exact_product_link only when the video carries that product link; keyword_match videos are NOT verified for that product, and evidence_summary.product_linkage.status is VIDEO_LINKAGE_UNVERIFIED when none link it. Region counts as verified only from the provider-reported video region; otherwise it is unknown. View counts are cumulative and do not show current acceleration.

Parameterslimitnichequeryrequiredregionwindowplatformmin_viewsproduct_id

match_voice

Match Creator Voice

Extract a creator's voice DNA from reference samples and rewrite a draft in their style. Requires at least 3 reference samples (video URLs or text). Returns voice profile (energy, humor, vocabulary, signature phrases), reusable prompt instructions, and the rewritten draft. Use when the user wants to write in another creator's style or match a specific voice.

Parametersdraftrequiredreference_samplesrequired

predict_virality

Predict Virality Score

Score a draft script for viral potential with adversarial verification. Returns a virality score, recommendation (ship/rework/no-go), viral DNA breakdown with evidence, attack vectors analysis, and calibration metrics. Use when the user has a finished draft and wants pre-publish verification. Pass either a script string or a video URL.

Parametersnichescriptrequired

brief_to_blueprint

Brief to Blueprint (24-48hr Panic Button)

Turn a brand brief that just landed into a one-page creative blueprint the manager can forward to the creator and to the brand contact — hook + template + hashtag combo + trend-velocity check + shoot instructions, in one call. Use when a brand sends a product and needs content on a tight turnaround (e.g. "product arrived, need content in 48 hours") and the manager needs a defensible direction with no research time. Chains find_viral_template + trend_pulse + score_hook + predict_virality upstream but exposes them as one MCP tool so agents don't stitch them manually. Cost 7 credits (bundle discount vs firing the chain manually). Returns a blueprint object with verdict (GO | NEEDS_MORE_DATA | NO_GO) and verdict_reason, a hook (text + trend_still_alive: up-slope | plateau | fading | unknown), script, hashtags, shoot notes, risk flags, and manager talking points, plus a quality object (level + reason) describing completeness; when quality.level is not "full", or verdict is NEEDS_MORE_DATA or NO_GO, the blueprint is a starting point rather than a shippable direction.

Parametersnicherequiredregionproductrequiredplatformcreator_handledeadline_hoursproduct_categoryrequired

product_scout

Product Scout - Rank TikTok Shop Opportunities

Find and rank current TikTok Shop / social-commerce product opportunities using evidence rather than opinion. Use it to answer questions like 'what skincare products are breaking out in the US under $40', 'show me products with strong reviews but low competition', or 'what is worth testing in this niche right now'. Returns products ranked by a deterministic 9-component engine (demand, momentum, creator_adoption, competition, saturation, review_strength, price_attractiveness, creator_concentration, freshness), each carrying an opportunity status (emerging | promising | crowded | mature | cooling | insufficient_data), a qualification record (what passed, failed and is unknown), a confidence band, evidence-cited why_now[], risks[], insufficient_signals[] and history_coverage. Status comes from a qualification gate, never from the score: emerging needs measured sold-count growth across 3+ dated observations spanning 7+ days plus an independent signal (review growth or creator adoption over time); mature means established demand without verified growth; insufficient_data means trajectory cannot be verified yet, however high the score. verification_summary.outcome is NO_VERIFIED_OPPORTUNITIES whenever no returned product passed the gate - say so plainly instead of presenting the list as opportunities, and use verification_summary.by_status to explain whether the category or the filters were the limit. Amazon competition is never measured (AMAZON_COMPETITION_UNVERIFIED); never describe a product as unsaturated on Amazon. The ranking is deterministic and contains no model output - read qualification, why_now, risks and components to explain to the user WHY something ranked where it did, and never present the score on its own. Provider-reported fields live under provider_reported.* and are null when TikTok did not expose them; null means unknown, never zero, and sold counts are never multiplied by price to imply revenue. There is no revenue or GMV field. To validate a single

Parameterssortlimitnichequerymarketcategorymax_soldmin_soldprice_maxprice_minmax_ratingmin_rating+9 more

analyze_product

Analyze Product - Deep Buyer-Evidence Validation

Deeply validate ONE TikTok Shop product before committing money or content to it. Give it a product_id from product_scout (or any TikTok Shop product URL) and it reads the listing, samples reviews across the full depth rather than only the most recent page, pulls comparable competitors, and returns what buyers actually say. You get: provider-reported sold / review / rating / price evidence; buyer voice split into what buyers praise and what they complain about; unmet needs and purchase objections in buyers' own words; return and fulfilment signal; a Why Now read; competitor intelligence and where rivals are weak; risks separated into product risks, market risks and data-confidence risks; and a 'how to beat this' synthesis of concrete differentiation angles traced back to specific review evidence. Every section states whether it resolved - provider facts, HookLayer analysis and genuinely unavailable evidence are distinguishable, and thin evidence is reported as thin rather than filled in. There is no revenue or GMV output and sold counts are never multiplied by price. Use product_scout first to find candidates, then this to decide between them. Cost: 10 credits. Requires the shop_intelligence entitlement.

Parametersmarketproduct_idproduct_urlinclude_competitors

save_research

Save Research to HookMafia

Save a HookLayer result the user already received in this conversation so it appears under Saved Research in their HookMafia dashboard. 0 credits: this stores the result you already hold, it never re-runs the research tool. After a research result, offer once in one line to save it to HookMafia; call this only when the user says yes or asks to save, keep or bookmark a result. Pass the tool's structured result as `result` (billing and chain fields are dropped server-side), the kind that matches the tool, a short title, and a stable `request_id` so a retried save is deduplicated instead of duplicated. Returns the saved id and a dashboard link. Use list_saved_research / get_saved_research to read it back and compare_saved_products for 2-4 saved analyze_product results.

Parameterskindrequiredtitlerequiredresultrequiredtool_namerequiredproduct_idrequest_idproduct_urlinput_summarysource_timestamp

list_saved_research

List Saved Research

List the authenticated user's saved HookLayer research (newest first by default). Read-only, 0 credits. Filter by kind, search titles, choose sort newest|oldest|title, include archived, and page with the returned cursor. Returns summaries (id, kind, title, timestamps, dashboard link), not the full result; call get_saved_research for one. Use when the user asks 'what have I saved', 'show my saved products', 'find the analysis I saved for @handle'.

Parameterskindsortlimitquerycursorarchived

get_saved_research

Get Saved Research

Retrieve one saved result in full (the stored research payload, what was asked, timestamps) by its saved_id. Read-only, 0 credits. Only the authenticated user's own results resolve; any other id is not found. Use when the user wants to reuse, re-read or build on something they saved earlier instead of paying to run the tool again.

Parameterssaved_idrequired

compare_saved_products

Compare Saved Products

Compare 2 to 4 saved analyze_product results side by side using only the stored evidence (identity, market proof, economics, competition, creator content, verdict). Read-only, 0 credits, no new analysis. Fields the source never reported are returned as not present, never estimated, and a freshness warning is included when the evidence ages differ by more than two days. Ids the user does not own come back in missing[]. Use after list_saved_research when the user asks which of their saved products to pursue.

Parameterssaved_idsrequired

Version history

1
  1. v1.1.0LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts