TikTok Video, Comments, Creators & Ads API MCP Server
io.tiktokapi/mcp-servertiktokapi.iostreamable-httpv1.0.1Scanned
Real-time TikTok videos, profiles, comments, trends & Creative Center ads MCP. OAuth or API key.
16 tools: 1 do something that can't be undone, 4 change things and 11 only read.
- Reads private data · 0
- Reads text others write · 16
- Can send data out · 7
- 5 findings
With Anlyon
1 tool here does something that can't be undone. Govern it.
- Anlyon lists the tools and adopts none.
- Each tool you adopt gets approvals and receipts.
- Your agent never holds the key.
A tool your agent calls directly is not routed through Anlyon and is not governed by it. anlyon.dev only lists and labels, and these labels are the same either way.
What the TikTok Video, Comments, Creators & Ads API MCP Server can do
The TikTok Video, Comments, Creators & Ads API MCP Server is published by tiktokapi.io, a domain the MCP Registry verified. It has 16 tools. It can do things that cannot be undone, such as sending, paying or publishing (tiktok_comment_replies) and create or change data (4 tools: tiktok_user_posts, tiktok_comment_list, tiktok_challenge_posts and tiktok_music_posts), but cannot delete data. 11 tools only read.
16 tools bring in text other people can write (tiktok_video_detail, tiktok_video_search, tiktok_trending_feed and 13 more); 7 tools can send data out of your system (tiktok_video_detail, tiktok_user_posts, tiktok_comment_list and 4 more).
The fixed checks matched 5 findings (annotation-conflict). Each one comes with the text it matched.
Last scanned Nov 5, 2026, version 1.0.1.
Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
16 tools
Can't be undone 1Claude Code: ask
tiktok_comment_repliesFetch nested reply threads for a specific comment on a TikTok video (1 credit per reply).Reads text others writeCan send data out1 finding
Why it is in this group
- The name "tiktok_comment_replies" says "comment": a word for a change.
- The name "tiktok_comment_replies" also says "reply": a word for sending, and what is sent cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe name "tiktok_comment_replies" says "reply": it sends or publishes something to other people.
Findings
- Warn
The server marks "tiktok_comment_replies" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "tiktok_comment_replies" says "comment": a word for a change.
Description, as the server wrote it Fetch nested reply threads for a specific comment on a TikTok video (1 credit per reply).
Annotations the server declares
- title: Get Comment Replies
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
Changes things 4Claude Code: ask
tiktok_challenge_postsFetch public videos tagged with a TikTok hashtag challenge_id (2 credits per video).Reads text others writeCan send data out1 finding
Why it is in this group
- The name "tiktok_challenge_posts" says "post": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe name "tiktok_challenge_posts" says "post": it sends or publishes something to other people.
Findings
- Warn
The server marks "tiktok_challenge_posts" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "tiktok_challenge_posts" says "post": a word for a change.
Description, as the server wrote it Fetch public videos tagged with a TikTok hashtag challenge_id (2 credits per video).
Annotations the server declares
- title: Get Hashtag Videos
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
tiktok_comment_listFetch top-level comments on a TikTok video (up to 50 comments per call, 1 credit per comment).Reads text others writeCan send data out1 finding
Why it is in this group
- The name "tiktok_comment_list" says "comment": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Findings
- Warn
The server marks "tiktok_comment_list" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "tiktok_comment_list" says "comment": a word for a change.
Description, as the server wrote it Fetch top-level comments on a TikTok video (up to 50 comments per call, 1 credit per comment).
Annotations the server declares
- title: Get Video Comments
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
tiktok_music_postsFetch public TikTok videos using a specific numeric music_id (2 credits per video).Reads text others writeCan send data out1 finding
Why it is in this group
- The name "tiktok_music_posts" says "post": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe name "tiktok_music_posts" says "post": it sends or publishes something to other people.
Findings
- Warn
The server marks "tiktok_music_posts" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "tiktok_music_posts" says "post": a word for a change.
Description, as the server wrote it Fetch public TikTok videos using a specific numeric music_id (2 credits per video).
Annotations the server declares
- title: Get Videos Using Sound
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
tiktok_user_postsFetch public videos posted by a TikTok creator with no-watermark MP4 streams and engagement stats (2 credits per video).Reads text others writeCan send data out1 finding
Why it is in this group
- The name "tiktok_user_posts" says "post": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe name "tiktok_user_posts" says "post": it sends or publishes something to other people.
Findings
- Warn
The server marks "tiktok_user_posts" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "tiktok_user_posts" says "post": a word for a change.
Description, as the server wrote it Fetch public videos posted by a TikTok creator with no-watermark MP4 streams and engagement stats (2 credits per video).
Annotations the server declares
- title: Get Creator Video Posts
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
Only reads 11Show 11 read-only tools
tiktok_ad_detailGet full creative telemetry, 1080p ad video URL, CTR curve, and landing page URL for a TikTok Creative Center ad ID (10 credits).Reads text others writeNo findings
Why it is in this group
- The description's first verb is "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "get" and "url": it reads web pages, which anyone can write.
Description, as the server wrote it Get full creative telemetry, 1080p ad video URL, CTR curve, and landing page URL for a TikTok Creative Center ad ID (10 credits).
Annotations the server declares
- title: Get Commercial Ad Detail
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
tiktok_challenge_infoGet TikTok hashtag challenge metadata, numeric challenge_id, and total view/video counts (10 credits).Reads text others writeNo findings
Why it is in this group
- The description's first verb is "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Get TikTok hashtag challenge metadata, numeric challenge_id, and total view/video counts (10 credits).
Annotations the server declares
- title: Get Hashtag Challenge Info
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
tiktok_music_infoGet TikTok sound/music metadata, MP3 playback URL, author, duration, and usage count.Reads text others writeCan send data outNo findings
Why it is in this group
- The description's first verb is "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "get" and "url": it reads web pages, which anyone can write.
- untrusted-inputThe input takes a URL (input.url), and the tool reads it: it reads web pages, which anyone can write.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Claude Code: ask, because it is tagged outbound.
Description, as the server wrote it Get TikTok sound/music metadata, MP3 playback URL, author, duration, and usage count. Accepts a music ID, music URL, or video URL (10 credits).
Annotations the server declares
- title: Get Sound Metadata
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
tiktok_top_adsSearch top-performing commercial ads from TikTok Creative Center by keyword, country, period, and CTR/impression rank.Reads text others writeNo findings
Why it is in this group
- The description's first verb is "search": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Search top-performing commercial ads from TikTok Creative Center by keyword, country, period, and CTR/impression rank.
Annotations the server declares
- title: Search Top Commercial Ads
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
tiktok_trending_feedGet currently trending public TikTok videos for a target two-letter country code (2 credits per video).Reads text others writeNo findings
Why it is in this group
- The description's first verb is "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Get currently trending public TikTok videos for a target two-letter country code (2 credits per video).
Annotations the server declares
- title: Get Trending TikTok Feed
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
tiktok_user_followersGet paginated follower accounts of a TikTok creator (up to 200 per call, 1 credit per follower).Reads text others writeNo findings
Why it is in this group
- The description's first verb is "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Get paginated follower accounts of a TikTok creator (up to 200 per call, 1 credit per follower).
Annotations the server declares
- title: Get Creator Followers
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
tiktok_user_followingGet paginated accounts followed by a TikTok creator (up to 200 per call, 1 credit per user).Reads text others writeNo findings
Why it is in this group
- The description's first verb is "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Get paginated accounts followed by a TikTok creator (up to 200 per call, 1 credit per user).
Annotations the server declares
- title: Get Creator Following
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
tiktok_user_infoRetrieve a TikTok creator profile (numeric user_id, secUid, bio, verification, business category) and real-time follower/heart/video counts (10 credits).Reads text others writeNo findings
Why it is in this group
- The description's first verb is "retrieve": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Retrieve a TikTok creator profile (numeric user_id, secUid, bio, verification, business category) and real-time follower/heart/video counts (10 credits).
Annotations the server declares
- title: Get TikTok Creator Profile
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
tiktok_user_searchSearch TikTok creators by niche keyword with follower-tier and verified badge filters (1 credit per creator).Reads text others writeNo findings
Why it is in this group
- The name "tiktok_user_search" says "search": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Search TikTok creators by niche keyword with follower-tier and verified badge filters (1 credit per creator).
Annotations the server declares
- title: Search TikTok Creators
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
tiktok_video_detailFetch full metadata, engagement metrics, creator info, music track, and 1080p HD no-watermark MP4 stream URLs (hdplay) for a TikTok video URL or ID (10 credits).Reads text others writeCan send data outNo findings
Why it is in this group
- The description's first verb is "fetch": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "fetch" and "url": it reads web pages, which anyone can write.
- untrusted-inputThe input takes a URL (input.url), and the tool reads it: it reads web pages, which anyone can write.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Claude Code: ask, because it is tagged outbound.
Description, as the server wrote it Fetch full metadata, engagement metrics, creator info, music track, and 1080p HD no-watermark MP4 stream URLs (hdplay) for a TikTok video URL or ID (10 credits).
Annotations the server declares
- title: Get TikTok Video Detail
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
tiktok_video_searchSearch public TikTok videos by keyword with region, sort order, and publish window filters.Reads text others writeNo findings
Why it is in this group
- The name "tiktok_video_search" says "search": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Search public TikTok videos by keyword with region, sort order, and publish window filters. Costs 2 credits per video ($0.20 / 1,000 videos).
Annotations the server declares
- title: Search TikTok Videos
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
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.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged private-data.
- Reads private data0
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write16
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out7
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Findings
Matches of fixed checks, with the text they matched.
The server marks "tiktok_user_posts" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "tiktok_user_posts" says "post": a word for a change.
The server marks "tiktok_comment_list" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "tiktok_comment_list" says "comment": a word for a change.
The server marks "tiktok_comment_replies" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "tiktok_comment_replies" says "comment": a word for a change.
The server marks "tiktok_challenge_posts" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "tiktok_challenge_posts" says "post": a word for a change.
The server marks "tiktok_music_posts" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "tiktok_music_posts" says "post": a word for a change.
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 1.0.1. Values in angle brackets are yours to fill in.
claude mcp add --transport http tiktokapi https://api.tiktokapi.io/mcpclaude mcp add --transport http tiktokapi https://api.tiktokapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__tiktokapi__tiktok_video_search",
"mcp__tiktokapi__tiktok_trending_feed",
"mcp__tiktokapi__tiktok_user_info",
"mcp__tiktokapi__tiktok_user_followers",
"mcp__tiktokapi__tiktok_user_following",
"mcp__tiktokapi__tiktok_user_search",
"mcp__tiktokapi__tiktok_challenge_info",
"mcp__tiktokapi__tiktok_top_ads",
"mcp__tiktokapi__tiktok_ad_detail"
],
"ask": [
"mcp__tiktokapi__tiktok_video_detail",
"mcp__tiktokapi__tiktok_user_posts",
"mcp__tiktokapi__tiktok_comment_list",
"mcp__tiktokapi__tiktok_comment_replies",
"mcp__tiktokapi__tiktok_challenge_posts",
"mcp__tiktokapi__tiktok_music_info",
"mcp__tiktokapi__tiktok_music_posts"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as tiktokapi. Review it before you use it.
Capability tags behind 16 rules
- mcp__tiktokapi__tiktok_video_detail untrusted-input, outbound
- mcp__tiktokapi__tiktok_video_search untrusted-input
- mcp__tiktokapi__tiktok_trending_feed untrusted-input
- mcp__tiktokapi__tiktok_user_info untrusted-input
- mcp__tiktokapi__tiktok_user_posts untrusted-input, outbound
- mcp__tiktokapi__tiktok_user_followers untrusted-input
- mcp__tiktokapi__tiktok_user_following untrusted-input
- mcp__tiktokapi__tiktok_user_search untrusted-input
- mcp__tiktokapi__tiktok_comment_list untrusted-input, outbound
- mcp__tiktokapi__tiktok_comment_replies untrusted-input, outbound
- mcp__tiktokapi__tiktok_challenge_info untrusted-input
- mcp__tiktokapi__tiktok_challenge_posts untrusted-input, outbound
- mcp__tiktokapi__tiktok_music_info untrusted-input, outbound
- mcp__tiktokapi__tiktok_music_posts untrusted-input, outbound
- mcp__tiktokapi__tiktok_top_ads untrusted-input
- mcp__tiktokapi__tiktok_ad_detail untrusted-input
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/io.tiktokapi/mcp-server/verify?hash=614fdc73b96b17885f3b61fb3deb89bc358c4abbaadb4b8a5ac7705bdbe50875" | jq -e '.changed == false'Pinned hash 614fdc73b96b, from Nov 5, 2026, 15:18 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/io.tiktokapi/mcp-server/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/io.tiktokapi/mcp-server)Source: MCP Registry. Synced Nov 5, 2026, 15:18 UTC.
TikTok Video, Comments, Creators & Ads API MCP Server: questions and answers
Answered from the scan above, not from the publisher's description.
Is the TikTok Video, Comments, Creators & Ads API MCP Server safe?
- No scan can promise that. What its definitions show: 16 tools, 5 of which can change, send or delete something, and 5 findings from fixed checks. Allow the reads, ask before each change, and deny the deletes; the permissions block on this page does that.
Can the TikTok Video, Comments, Creators & Ads API MCP Server delete data?
- No tool is classed as destructive: going by their definitions, none of them deletes, cancels or revokes anything.
Can the TikTok Video, Comments, Creators & Ads API MCP Server do things that cannot be undone?
- Yes. 1 tool can send, pay, publish or merge: tiktok_comment_replies.
What tools does the TikTok Video, Comments, Creators & Ads API MCP Server have?
- 16 tools: 1 irreversible, 4 write, 11 read. tiktok_comment_replies, tiktok_user_posts, tiktok_comment_list, tiktok_challenge_posts, tiktok_music_posts, tiktok_video_detail, tiktok_video_search, tiktok_trending_feed and 8 more.
Does the TikTok Video, Comments, Creators & Ads API MCP Server send data to outside services?
- 7 tools can carry data out (it sends, posts or publishes, or takes a recipient, channel or URL): tiktok_video_detail, tiktok_user_posts, tiktok_comment_list, tiktok_comment_replies, tiktok_challenge_posts, tiktok_music_info and 1 more.
Has the TikTok Video, Comments, Creators & Ads API MCP Server changed its tools?
- Not since anlyon.dev started tracking it. Last scanned Nov 5, 2026.