MCP servercom.hookdetector/hookdetector
Real TikTok and Instagram hooks that already work, in any language, with why each travelled.
Overview
Score?
UNRATED 0.423
of what a free look can see, on 10 looks
Looks
11
last 10 hr ago
Tools
33
changed 10 hr ago
More info
URL
api.hookdetector.com/mcp
streamable-http
Says it is
hookdetector
protocol 2025-06-18
In the record since
8 days ago
Among servers18,413 with a card
0median 0.606 · this server 0.423 · highest on record 0.8561
Toolsfrom sha256:c13a3d058d…020093 · +0 −0 10 hr ago
| Tool | Schema |
|---|---|
| admin_adjust_credits Owner only: add or remove an account's credits, as POST
/v1/admin/accounts/{account_id}/credits. A change that would take the balance below
zero is 422 credits_below_zero a |
input · output |
| admin_list_accounts Owner only: every account, newest first, as GET /v1/admin/accounts: {total,
accounts: [{id, email, name, label, credits, created_at, last_seen_at, runs, hooks,
charged_tota |
input · output |
| admin_list_actions Owner only: the audit of password sign-ins and credit changes, newest first, as GET
/v1/admin/actions: {actions: [{id, action, actor_email, target_account_id, detail,
creat |
input · output |
| admin_list_runs Owner only: every account's research runs, newest first, as GET /v1/admin/runs:
{runs: [{run_id, account_id, email, topic, language, country, status, requested,
hooks, rese |
input · output |
| admin_overview Owner only: the whole service at a glance, as GET /v1/admin/overview. Counts of
accounts and people; runs (total, last_24h, last_7d, failed_24h, in_flight); hooks;
credits |
input · output |
| approve_access_request Owner only: approve an access request. Makes a one-use code, marks the request
approved and emails the code. The code is in this result once, with emailed true or
false; wh |
input · output |
| balance Your account and remaining credits right now: account_id, credits, key_prefix and
key_id of the key making this call, label, created_at, and that key's scopes,
credit_limit |
input · output |
| chat One conversational turn, for an agent relaying a person's words. It either asks
ONE clarifying question (action "clarify"), answers about delivered hooks or the tool
(actio |
input · output |
| clear_decision Undo keep_hook: the hook goes back to having no verdict, so it leaves list_keeps and
its export row carries none. Returns {"hook_id", "verdict": null}. Clearing a hook with
|
input · output |
| create_access_code Owner only: make an access code to hand out. max_uses 1 to 100000 (default 1),
expires_in_days 1 to 365 (optional), note your own. email binds it to one person: then
only G |
input · output |
| create_account Create an account and get an API key with free credits. Needs a beta access code
(access_code, HD-XXXX-XXXX; case and dashes do not matter): without one the error is
403 ac |
input · output |
| create_key Create another API key on your account, for example one per agent or machine, so
you can revoke one without touching the others. name is up to 60 characters.
Give the key |
input · output |
| delete_account Erase your account and everything in it, for good: every API key, run, hook, keep
or reject decision, conversation and message. Unspent credits go with it. It cannot
be und |
input · output |
| embed_hook Official TikTok or Instagram embed HTML for a hook, so the clip plays inside your
own page. kind is "embed", or "fallback" when the creator disabled embedding or the
clip i |
input · output |
| export_run A finished run's hooks as a file a creator can open: format "csv" (default; one row
per hook, opens in any spreadsheet, formula-like cells defused with a leading quote),
"j |
input · output |
| find_hooks Start hook research on a topic across TikTok, Instagram and YouTube Shorts (Shorts
only, never long-form YouTube; platform "youtube").
What it does: searches both platform |
input · output |
| get_conversation One chat conversation: every message in order (role, content, run_id, created_at)
and every run it holds, with their hooks, plus nullable language and country search
picker |
input · output |
| get_hook One hook with every field: its opening line, transcript, watch_url and the
vertical player_url (null only for an unusable id or a photo post found before
2026-09-26; runs d |
input · output |
| get_run A research run: its status, progress, charge and every hook it produced.
wait_seconds 0 to 50: wait up to that long for the run to finish, returning the
moment it is done |
input · output |
| keep_hook Keep or reject a hook: verdict is "keep" (default) or "reject", and the last
verdict wins. Kept hooks come back from list_keeps, across all runs. Free. |
input · output |
| list_access_codes Owner only: every access code, newest first, with code_id, code_prefix, email,
note, source, max_uses, uses, expires_at, revoked_at, created_at and usable. Never the
code i |
input · output |
| list_access_requests Owner only: every access request, newest first, optionally only one status
(pending, approved, rejected). Each has request_id, email, note, status, code_id,
code_prefix, cr |
input · output |
| list_conversations Your chat conversations, most recently active first, limit 1 to 100 (default 30)
per page: conversation_id, title, created_at, updated_at, language, country and
messages (t |
input · output |
| list_keeps The hooks you kept with keep_hook, newest decision first, across all runs or within
one run_id, limit 1 to 100 (default 100) per page. Returns {"kept": [...], "count": n
on |
input · output |
| list_keys Your API keys and what each may do. keys: key_id, name, prefix, created_at,
last_used_at and current (true for the key making this call). access, per key_id:
scopes, credit |
input · output |
| list_runs Your research runs, newest first, without their hooks, limit 1 to 100 (default 20)
per page. Returns {"runs": [...], "next_cursor"}: pass next_cursor back as cursor for
the |
input · output |
| reject_access_request Owner only: reject a pending access request. Nothing is emailed. An approved or
rejected request is 409 request_already_decided. Free. |
input · output |
| remix_hook Make it mine: write up to n new opening lines (1 to 5, default 3) for your niche
that keep a real hook's structure, the device that made it travel, with the subject
swapped |
input · output |
| request_access Ask for the beta access code a new account needs (create_account's access_code).
email is where the code is sent; note is optional (who you are, up to 500
characters). The |
input · output |
| revoke_access_code Owner only: revoke an access code (code_id from list_access_codes). It admits
nobody from now on; accounts it already made keep working. 404 access_code_not_found
for an un |
input · output |
| revoke_key Revoke one of your API keys at once: key_id from list_keys, or "original" for the
signup key. Any key may revoke itself (the result says so, and that key stops working
imme |
input · output |
| showcase Real hooks this service has delivered, for a wait screen: talking heads only, each
hook_id, still_url (a JPEG, no key needed), platform, creator, views and line (the
banner |
input · output |
| usage Your credits and what you have spent: credits (balance now), spent_total,
reserved_now (credits held by runs still in flight, refunded in part when they
finish), runs_total |
input · output |
Verify it yourself
npx teppi-check https://api.hookdetector.com/mcpcurl -s https://api.teppi.xyz/v1/trust/mcp/mcs_01M3E48YTPPNCT32PFF1M886M7