{"serverId":"mcp-registry/com.scraptik/tiktok","tools":[{"name":"tiktok_resolve_username","fixed":{"name":"tiktok_resolve_username","description":"Resolve a TikTok @username to its stable numeric user_id and sec_uid. Cheap utility — call this first when you only have a handle and need an id for other tools.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["username"],"properties":{"expand":{"type":"boolean","description":"Return the full untrimmed payload. Default false = compact JSON."},"username":{"type":"string","description":"@username (with or without the @)"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":154,"tokensAfter":154},{"name":"tiktok_search_creators","fixed":{"name":"tiktok_search_creators","description":"Search TikTok creators by keyword/name, returning matching profiles. Use for influencer discovery and account lookup. Paginate with `cursor`.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["keyword"],"properties":{"count":{"type":"integer","default":20,"maximum":30,"minimum":1,"description":"Number of items to return, <=30"},"cursor":{"type":"string","description":"Pagination cursor — pass the `cursor`/`max_cursor`/`has_more` value from a prior response."},"expand":{"type":"boolean","description":"Return the full untrimmed payload. Default false = compact JSON."},"keyword":{"type":"string","description":"Search query text"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":212,"tokensAfter":212},{"name":"tiktok_search_hashtags","fixed":{"name":"tiktok_search_hashtags","description":"Search TikTok hashtags/challenges by keyword, returning matching challenges with their cid and video counts. Use to find the right hashtag before pulling its videos. Paginate with `cursor`.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["keyword"],"properties":{"count":{"type":"integer","default":20,"maximum":30,"minimum":1,"description":"Number of items to return, <=30"},"cursor":{"type":"string","description":"Pagination cursor — pass the `cursor`/`max_cursor`/`has_more` value from a prior response."},"expand":{"type":"boolean","description":"Return the full untrimmed payload. Default false = compact JSON."},"keyword":{"type":"string","description":"Search query text"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":225,"tokensAfter":225},{"name":"tiktok_search_lives","fixed":{"name":"tiktok_search_lives","description":"Search live TikTok streams by keyword. Use for real-time/live-content discovery. Paginate with `cursor`.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["keyword"],"properties":{"count":{"type":"integer","default":20,"maximum":30,"minimum":1,"description":"Number of items to return, <=30"},"cursor":{"type":"string","description":"Pagination cursor — pass the `cursor`/`max_cursor`/`has_more` value from a prior response."},"expand":{"type":"boolean","description":"Return the full untrimmed payload. Default false = compact JSON."},"keyword":{"type":"string","description":"Search query text"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":200,"tokensAfter":200},{"name":"tiktok_search_sounds","fixed":{"name":"tiktok_search_sounds","description":"Search TikTok sounds/tracks by keyword, returning matching music with usage counts. Use for audio/trend discovery. Paginate with `cursor`.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["keyword"],"properties":{"count":{"type":"integer","default":20,"maximum":30,"minimum":1,"description":"Number of items to return, <=30"},"cursor":{"type":"string","description":"Pagination cursor — pass the `cursor`/`max_cursor`/`has_more` value from a prior response."},"expand":{"type":"boolean","description":"Return the full untrimmed payload. Default false = compact JSON."},"keyword":{"type":"string","description":"Search query text"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":210,"tokensAfter":210},{"name":"tiktok_search_videos","fixed":{"name":"tiktok_search_videos","description":"Search TikTok videos by keyword, returning matching posts with stats. Use for topic/trend discovery and competitive research. Paginate with `cursor`.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["keyword"],"properties":{"count":{"type":"integer","default":20,"maximum":30,"minimum":1,"description":"Number of items to return, <=30"},"cursor":{"type":"string","description":"Pagination cursor — pass the `cursor`/`max_cursor`/`has_more` value from a prior response."},"expand":{"type":"boolean","description":"Return the full untrimmed payload. Default false = compact JSON."},"keyword":{"type":"string","description":"Search query text"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":213,"tokensAfter":213},{"name":"tiktok_sound_info","fixed":{"name":"tiktok_sound_info","description":"Fetch metadata for a sound/track: title, author, duration, and how many videos use it. Use to size a sound's reach before pulling its videos.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["music_id"],"properties":{"expand":{"type":"boolean","description":"Return the full untrimmed payload. Default false = compact JSON."},"music_id":{"type":"string","description":"Numeric TikTok music_id"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":144,"tokensAfter":144},{"name":"tiktok_video_download_url","fixed":{"name":"tiktok_video_download_url","description":"Resolve a watermark-free download URL for a TikTok video. Use to obtain the clean MP4 for archival or analysis. Accepts a numeric `video_id` or a full TikTok video URL.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["video_id"],"properties":{"expand":{"type":"boolean","description":"Return the full untrimmed payload. Default false = compact JSON."},"video_id":{"type":"string","description":"aweme_id or a /video/<id> URL"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":155,"tokensAfter":155},{"name":"tiktok_video_stats","fixed":{"name":"tiktok_video_stats","description":"Fetch a single TikTok video's stats and metadata: play/like/comment/share/save counts, author, sound, duration, description, hashtags, and create time. Use to measure a specific post's performance. Accepts a numeric `video_id` (aweme_id) or a full TikTok video URL.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["video_id"],"properties":{"expand":{"type":"boolean","description":"Return the full untrimmed payload. Default false = compact JSON."},"video_id":{"type":"string","description":"aweme_id or a tiktok.com/.../video/<id> URL"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":184,"tokensAfter":184}],"toolsChanged":9,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}