io. github. khan-ashifur/ hooklayer
by khan-ashifur · remote · no sign-in to list tools · v1.1.0 · published by GitHub user khan-ashifur
Viral-content intelligence for AI agents — 7 read-only MCP tools, evidence-layer scoring.
18 tools: 14 change things and 4 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things14Claude Code: ask: see these tools
- Only reads4Claude Code: allow: see these tools
8 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http hooklayer https://hooklayer.dev/api/mcp --header 'Authorization: <your-authorization>'Findings
Matches of fixed checks, with the text they matched.
- Warnanalyze_account
The server marks "analyze_account" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "analyze_account" says "analyze": a word for reading.
- Warnget_changes
The server marks "get_changes" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "get_changes" says "get": a word for reading.
The server marks "find_viral_template" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "find_viral_template" says "find": a word for reading.
- Warnsearch_videos
The server marks "search_videos" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "search_videos" says "search": a word for reading.
- Warnproduct_scout
The server marks "product_scout" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "find": a word for reading.
- Warnanalyze_product
The server marks "analyze_product" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "analyze_product" says "analyze": a word for reading.
Show 2 more findingsShow fewer
- Infoproduct_scout
The description is 2,326 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...ranteed-sales claim. Cost: 5 credits. Requires the shop_intelligence entitlement."
- Infosave_research
The input schema at properties.input_summary.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.input_summary.description: "...product URL. Up to 4 KB. Never include credentials."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
18 tools
Changes things 14Claude Code: ask
analyze_accountAnalyze a TikTok, YouTube, or Instagram creator by handle or channel ID.1 finding
Why it is in this group
- The name "analyze_account" says "analyze": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "analyze_account" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "analyze_account" says "analyze": a word for reading.
Description, as the server wrote it 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).
Annotations the server declares
- title: Analyze TikTok Account
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHintJustification: This tool may debit the authenticated user's HookLayer credit balance and records usage/request telemetry, which changes service-side user state. It does not modify external social-platform content.
- openWorldHintJustification: This tool may query external public sources, third-party APIs, or HookLayer's current content-intelligence data.
- destructiveHintJustification: This tool does not delete, overwrite, revoke, publish, or modify external social-platform content or accounts. Any service-side writes are limited to non-destructive billing and usage records.
analyze_productDeeply validate ONE TikTok Shop product before committing money or content to it.1 finding
Why it is in this group
- The name "analyze_product" says "analyze": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "analyze_product" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "analyze_product" says "analyze": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Analyze Product - Deep Buyer-Evidence Validation
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
- readOnlyHintJustification: This tool debits the authenticated user's HookLayer credit balance and records usage telemetry. It does not modify external social-platform content.
- openWorldHintJustification: This tool queries ScrapeCreators TikTok Shop product, review and search endpoints, and calls Anthropic to write the analyst narrative from the evidence those endpoints returned.
- destructiveHintJustification: This tool does not delete, overwrite, revoke, publish, or modify external content or accounts. Service-side writes are limited to non-destructive billing and usage records.
brief_to_blueprintTurn 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-vel…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- title: Brief to Blueprint (24-48hr Panic Button)
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
- readOnlyHintJustification: This tool may debit the authenticated user's HookLayer credit balance and records usage/request telemetry, which changes service-side user state. It does not modify external social-platform content.
- openWorldHintJustification: This tool may query external public sources, third-party APIs, or HookLayer's current content-intelligence data.
- destructiveHintJustification: This tool does not delete, overwrite, revoke, publish, or modify external social-platform content or accounts. Any service-side writes are limited to non-destructive billing and usage records.
find_viral_templateFind proven viral templates in a niche with example videos.1 finding
Why it is in this group
- The name "find_viral_template" says "find": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "find_viral_template" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "find_viral_template" says "find": a word for reading.
Description, as the server wrote it 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).
Annotations the server declares
- title: Find Viral Templates
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHintJustification: This tool may debit the authenticated user's HookLayer credit balance and records usage/request telemetry, which changes service-side user state. It does not modify external social-platform content.
- openWorldHintJustification: This tool may query external public sources, third-party APIs, or HookLayer's current content-intelligence data.
- destructiveHintJustification: This tool does not delete, overwrite, revoke, publish, or modify external social-platform content or accounts. Any service-side writes are limited to non-destructive billing and usage records.
get_changesDetect what changed since the last saved baseline for a tracked creator.1 finding
Why it is in this group
- The name "get_changes" says "get": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "get_changes" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "get_changes" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Detect Changes Since Last Check
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
- readOnlyHintJustification: This tool runs a fresh analysis, may debit credits, stores a new historical snapshot, and updates the saved watch's check metadata.
- openWorldHintJustification: This tool retrieves current creator data from external social-platform data sources to compare against the saved baseline.
- destructiveHintJustification: This tool only appends non-destructive internal tracking history. It does not delete or modify external social-platform content or accounts.
match_voiceExtract a creator's voice DNA from reference samples and rewrite a draft in their style.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- title: Match Creator Voice
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
- readOnlyHintJustification: This tool may debit the authenticated user's HookLayer credit balance and records usage/request telemetry, which changes service-side user state. It does not modify external social-platform content.
- openWorldHintJustification: This tool may query external public sources, third-party APIs, or HookLayer's current content-intelligence data.
- destructiveHintJustification: This tool does not delete, overwrite, revoke, publish, or modify external social-platform content or accounts. Any service-side writes are limited to non-destructive billing and usage records.
predict_viralityScore a draft script for viral potential with adversarial verification.No findings
Why it is in this group
- The input takes a statement or command to run (input.script), which can change anything it can reach.
Description, as the server wrote it 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.
Annotations the server declares
- title: Predict Virality Score
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHintJustification: This tool may debit the authenticated user's HookLayer credit balance and records usage/request telemetry, which changes service-side user state. It does not modify external social-platform content.
- openWorldHintJustification: This tool may query external public sources, third-party APIs, or HookLayer's current content-intelligence data.
- destructiveHintJustification: This tool does not delete, overwrite, revoke, publish, or modify external social-platform content or accounts. Any service-side writes are limited to non-destructive billing and usage records.
product_scoutFind and rank current TikTok Shop / social-commerce product opportunities using evidence rather than opinion.2 findings
Why it is in this group
- The description's first verb is "find": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Info
The description is 2,326 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...ranteed-sales claim. Cost: 5 credits. Requires the shop_intelligence entitlement."
- Warn
The server marks "product_scout" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "find": a word for reading.
Description, as the server wrote it 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 product in depth once you have a shortlist, call analyze_product - product_scout ranks a field of candidates, analyze_product interrogates one. Not for generic video search (use search_videos), creator analysis (use analyze_account), or any guaranteed-sales claim. Cost: 5 credits. Requires the shop_intelligence entitlement.
Annotations the server declares
- title: Product Scout - Rank TikTok Shop Opportunities
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
- readOnlyHintJustification: This tool debits the authenticated user's HookLayer credit balance and records usage telemetry plus demand-driven commerce history snapshots. It does not modify external social-platform content.
- openWorldHintJustification: This tool queries ScrapeCreators TikTok Shop endpoints (shop search, shop products, product details, product reviews) and HookLayer commerce history.
- destructiveHintJustification: This tool does not delete, overwrite, revoke, publish, or modify external content or accounts. Service-side writes are limited to non-destructive billing, telemetry, and historical snapshots.
save_researchSave a HookLayer result the user already received in this conversation so it appears under Saved Research in their HookMafia dashboard.1 finding
Why it is in this group
- The name "save_research" says "save": a word for a change.
Findings
- Info
The input schema at properties.input_summary.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.input_summary.description: "...product URL. Up to 4 KB. Never include credentials."
Description, as the server wrote it 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.
Annotations the server declares
- title: Save Research to HookMafia
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHintJustification: This tool writes one saved-research record owned by the authenticated user. It does not debit credits and does not re-run any research tool.
- openWorldHintJustification: This tool reads and writes HookLayer's own stored saved-research records for the authenticated user. It does not query live external social-platform or commerce data.
- destructiveHintJustification: This tool only creates a record. It never modifies or deletes an existing saved result or any external resource; a repeated request_id returns the existing record.
score_hookScore a TikTok, Reels, or Shorts hook against proven viral patterns.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- title: Score Hook Quality
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHintJustification: This tool may debit the authenticated user's HookLayer credit balance and records usage/request telemetry, which changes service-side user state. It does not modify external social-platform content.
- openWorldHintJustification: This tool may query external public sources, third-party APIs, or HookLayer's current content-intelligence data.
- destructiveHintJustification: This tool does not delete, overwrite, revoke, publish, or modify external social-platform content or accounts. Any service-side writes are limited to non-destructive billing and usage records.
search_videosSearch for short-form videos by keyword across TikTok or Instagram.1 finding
Why it is in this group
- The name "search_videos" says "search": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "search_videos" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "search_videos" says "search": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Search Videos by Keyword
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHintJustification: This tool may debit the authenticated user's HookLayer credit balance and records usage/request telemetry, which changes service-side user state. It does not modify external social-platform content.
- openWorldHintJustification: This tool may query external public sources, third-party APIs, or HookLayer's current content-intelligence data.
- destructiveHintJustification: This tool does not delete, overwrite, revoke, publish, or modify external social-platform content or accounts. Any service-side writes are limited to non-destructive billing and usage records.
trend_pulseResearch what is currently gaining traction in short-form content for a specific niche.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- title: Get Trend Pulse
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHintJustification: This tool may debit the authenticated user's HookLayer credit balance and records usage/request telemetry, which changes service-side user state. It does not modify external social-platform content.
- openWorldHintJustification: This tool may query external public sources, third-party APIs, or HookLayer's current content-intelligence data.
- destructiveHintJustification: This tool does not delete, overwrite, revoke, publish, or modify external social-platform content or accounts. Any service-side writes are limited to non-destructive billing and usage records.
viral_remixTake a viral video and produce a fresh script that mirrors its structure and energy pattern for a new topic.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- title: Remix Viral Video
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
- readOnlyHintJustification: This tool may debit the authenticated user's HookLayer credit balance and records usage/request telemetry, which changes service-side user state. It does not modify external social-platform content.
- openWorldHintJustification: This tool may query external public sources, third-party APIs, or HookLayer's current content-intelligence data.
- destructiveHintJustification: This tool does not delete, overwrite, revoke, publish, or modify external social-platform content or accounts. Any service-side writes are limited to non-destructive billing and usage records.
watch_accountStart tracking a creator so future calls can detect what changed.No findings
Why it is in this group
- The description's first verb is "start": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Track (Watch) a Creator
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHintJustification: This tool saves a creator watch and baseline snapshot and may run a fresh analysis that debits credits when no reusable analysis is available.
- openWorldHintJustification: This tool may retrieve current creator data from external social platforms and third-party data sources.
- destructiveHintJustification: This tool only adds non-destructive internal tracking state. It does not delete or modify external social-platform content or accounts.
Only reads 4Claude Code: allow
compare_saved_productsCompare 2 to 4 saved analyze_product results side by side using only the stored evidence (identity, market proof, economics, competition, creator content, verdict).No findings
Why it is in this group
- The name "compare_saved_products" says "compare": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Compare Saved Products
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHintJustification: This tool only reads the authenticated user's existing saved product analyses and derives a comparison table from them. It does not debit credits or modify stored state.
- openWorldHintJustification: This tool reads HookLayer's own stored saved-research records for the authenticated user. It does not query live external social-platform or commerce data.
- destructiveHintJustification: This tool does not create, modify, or delete any stored or external resource.
get_saved_researchRetrieve one saved result in full (the stored research payload, what was asked, timestamps) by its saved_id.No findings
Why it is in this group
- The name "get_saved_research" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Get Saved Research
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHintJustification: This tool only reads one of the authenticated user's existing saved-research records. It does not debit credits or modify stored state.
- openWorldHintJustification: This tool reads HookLayer's own stored saved-research records for the authenticated user. It does not query live external social-platform or commerce data.
- destructiveHintJustification: This tool does not create, modify, or delete any stored or external resource.
list_saved_researchList the authenticated user's saved HookLayer research (newest first by default).No findings
Why it is in this group
- The name "list_saved_research" says "list": a word for reading.
Description, as the server wrote it 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'.
Annotations the server declares
- title: List Saved Research
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHintJustification: This tool only reads the authenticated user's existing saved-research records. It does not debit credits or modify stored state.
- openWorldHintJustification: This tool reads HookLayer's own stored saved-research records for the authenticated user. It does not query live external social-platform or commerce data.
- destructiveHintJustification: This tool does not create, modify, or delete any stored or external resource.
list_watchesList every creator the authenticated user is tracking.No findings
Why it is in this group
- The name "list_watches" says "list": a word for reading.
Description, as the server wrote it 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'.
Annotations the server declares
- title: List Tracked Creators
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHintJustification: This tool only reads the authenticated user's existing saved watch records. It does not debit credits or modify stored state.
- openWorldHintJustification: This tool reads HookLayer's own stored watch metadata and does not query live external social-platform data.
- destructiveHintJustification: This tool does not create, modify, or delete any stored or external resource.
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.1.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http hooklayer https://hooklayer.dev/api/mcp --header 'Authorization: <your-authorization>'Run in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__hooklayer__list_watches",
"mcp__hooklayer__list_saved_research",
"mcp__hooklayer__get_saved_research",
"mcp__hooklayer__compare_saved_products"
],
"ask": [
"mcp__hooklayer__analyze_account",
"mcp__hooklayer__watch_account",
"mcp__hooklayer__get_changes",
"mcp__hooklayer__score_hook",
"mcp__hooklayer__viral_remix",
"mcp__hooklayer__trend_pulse",
"mcp__hooklayer__find_viral_template",
"mcp__hooklayer__search_videos",
"mcp__hooklayer__match_voice",
"mcp__hooklayer__predict_virality",
"mcp__hooklayer__brief_to_blueprint",
"mcp__hooklayer__product_scout",
"mcp__hooklayer__analyze_product",
"mcp__hooklayer__save_research"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as hooklayer. Review it before you use it.
