TikTok MCP Server
Provides tools for searching videos, browsing the For You Page, downloading watermark-free videos, publishing content via Creator Center, interacting with creators through likes, comments, and follows, and analyzing trending hashtags and music.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@TikTok MCP ServerSearch for 'AI productivity' and download the most popular video."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🎵 TikTok MCP Server
The first complete TikTok MCP server with publish, interact, and browse
Search • Download • Publish • Like • Comment • Follow • Analyze Trends — all from your AI assistant.
⚡ Why tiktok-mcp?
Most TikTok MCP servers only let you read data. This one lets you act.
🔍 Browse — Search videos, explore hashtags, scroll the For You Page
📥 Download — Save videos without watermark (HD when available)
📤 Publish — Upload videos directly to TikTok via Creator Center
💬 Interact — Like, comment, and follow — all automated
📊 Analyze — Cross-keyword trend analysis with top hashtags & creators
12 tools. One server. Full TikTok automation.
🛠️ All 12 Tools
Tool | Description |
| Search TikTok videos by keyword. Returns author, description, views, URL, hashtags. |
| Get trending/For You videos from TikTok's main feed. |
| Scroll the For You Page like a real user and collect video metadata. |
| Get all videos from a specific user's profile with their stats. |
| Get detailed metadata for a specific video (stats, audio, hashtags, description). |
| Explore a hashtag — view count, popular videos, and stats. |
| Download a TikTok video without watermark (HD when available via tikwm). |
| Publish a video to TikTok with caption and hashtags via Creator Center. |
| Like, comment, or follow — interact with any video or creator. |
| Get trending sounds/music on TikTok. |
| Manage your TikTok session: check login, refresh cookies, export session. |
| Multi-keyword trend analysis: top hashtags, top creators, posting patterns. |
🚀 Installation (3 Steps)
1. Clone & Install
git clone https://github.com/follox42/tiktok-mcp.git
cd tiktok-mcp
pip install -e .
playwright install chromium2. Get Your TikTok Cookies
You need authenticated cookies for publish/interact features. Two options:
Option A — From TikSimPro (recommended):
# If you use TikSimPro, cookies are already at:
~/TikSimPro/tiktok_cookies.pklOption B — Export manually:
Log into TikTok in your browser
Use a cookie export extension (e.g., "Get cookies.txt")
Save as JSON:
[
{"name": "sessionid", "value": "xxx", "domain": ".tiktok.com", "path": "/"},
{"name": "sid_tt", "value": "xxx", "domain": ".tiktok.com", "path": "/"}
]3. Set Environment Variables
export TIKTOK_COOKIES_PATH="/path/to/your/cookies.pkl" # or .json
export TIKTOK_HEADLESS=true # false to see the browser
export TIKTOK_MIN_INTERVAL=2.0 # rate limit between calls (seconds)
export TIKTOK_DOWNLOAD_DIR="./downloads"⚙️ Configuration
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"tiktok": {
"command": "tiktok-mcp",
"env": {
"TIKTOK_COOKIES_PATH": "/home/you/TikSimPro/tiktok_cookies.pkl",
"TIKTOK_HEADLESS": "true"
}
}
}
}mcporter
{
"servers": {
"tiktok": {
"command": "tiktok-mcp",
"env": {
"TIKTOK_COOKIES_PATH": "/home/you/TikSimPro/tiktok_cookies.pkl"
}
}
}
}Direct (stdio)
tiktok-mcp
# or
python -m tiktok_mcp📖 Usage Examples
🔍 Search Videos
Use tiktok_search to find "AI productivity" videos{"query": "AI productivity", "count": 10}📊 Analyze a Niche
Analyze trends for "solopreneur" and "indie hacker" — what hashtags and creators dominate?{"keywords": ["solopreneur", "indie hacker", "build in public"], "count_per_keyword": 15}👤 Research a Creator
Get the last 20 videos from @garyvee{"username": "garyvee", "count": 20}📥 Download a Video
Download this video without watermark: https://www.tiktok.com/@user/video/123456{"video_url": "https://www.tiktok.com/@user/video/123456"}📤 Publish a Video
Publish my video with caption "Building in public day 47 🚀" and hashtags buildinpublic, startup, coding{
"video_path": "/path/to/video.mp4",
"caption": "Building in public day 47 🚀",
"hashtags": ["buildinpublic", "startup", "coding"]
}💬 Interact (Like / Comment / Follow)
Like this video and leave a comment: "This is incredible! 🔥"{"action": "like", "video_url": "https://www.tiktok.com/@user/video/123456"}
{"action": "comment", "video_url": "https://www.tiktok.com/@user/video/123456", "text": "This is incredible! 🔥"}
{"action": "follow", "video_url": "https://www.tiktok.com/@user/video/123456"}🎵 Trending Sounds
What sounds are trending on TikTok right now?{"count": 20}🔐 Session Management
Check if my TikTok session is still active{"action": "check_login"}
{"action": "refresh_cookies"}
{"action": "export_session"}🏆 Comparison — Why This One?
Feature | tiktok-mcp | Other TikTok MCPs |
Search videos | ✅ | ✅ |
Trending feed | ✅ | ⚠️ Some |
User profiles | ✅ | ⚠️ Some |
Video details | ✅ | ✅ |
Hashtag exploration | ✅ | ❌ |
Download (no watermark) | ✅ | ❌ |
Publish videos | ✅ | ❌ |
Like / Comment / Follow | ✅ | ❌ |
Trending sounds | ✅ | ❌ |
Trend analysis | ✅ | ❌ |
Session management | ✅ | ❌ |
Stealth / anti-detection | ✅ | ❌ |
Cookie auth (TikSimPro) | ✅ | ❌ |
Total tools | 12 | 2-4 |
tiktok-mcp is the only MCP server that lets you publish and interact on TikTok.
📸 Demo
🏗️ Built With
Playwright — Browser automation with stealth capabilities
playwright-stealth — Anti-detection patches
MCP SDK — Model Context Protocol for AI integration
TikSimPro — Cookie management & TikTok session handling
tikwm — Watermark-free video downloads
httpx — Async HTTP client
🤝 Contributing
Contributions are welcome! Here's how:
Fork the repository
Create your feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'feat: add amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
Ideas for contributions:
📱 Mobile viewport support
🌍 Multi-language support
📊 Advanced analytics (engagement rate, best posting times)
🔄 Scheduled posting
🎭 Multiple account support
📄 License
This project is licensed under the MIT License — see the LICENSE file for details.
⭐ Star this repo if you find it useful!
Made with ❤️ by follox42
Available Tools
12 toolstiktok_analyze_trendC
Analyze trends for a niche: search multiple keywords, aggregate stats on popular sounds, hashtags, posting patterns.
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | Yes | Keywords to research | |
| count_per_keyword | No | Videos to analyze per keyword (default 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'aggregate stats' but doesn't specify what stats are included, how data is sourced (e.g., from recent videos or historical trends), rate limits, or authentication needs. For a tool that likely involves data collection and analysis, this lack of detail leaves key behavioral traits unclear, making it inadequate for informed use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, stating the core purpose in the first clause. It uses a single sentence to outline key actions without unnecessary elaboration. However, it could be slightly more structured by separating the analysis goal from the methods, but overall, it avoids waste and is efficiently phrased.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of trend analysis and the absence of annotations and output schema, the description is incomplete. It doesn't explain what the aggregated stats include, how results are formatted, or any limitations (e.g., data recency, accuracy). For a tool with 2 parameters and no structured output, more detail on behavioral aspects and return values is needed to ensure effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, clearly documenting both parameters (keywords and count_per_keyword). The description adds minimal value beyond the schema, as it only implies keyword usage without detailing semantics like keyword selection strategies or how count_per_keyword affects analysis depth. Since the schema does the heavy lifting, a baseline score of 3 is appropriate, but the description doesn't compensate with additional insights.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Analyze trends for a niche' with specific actions like 'search multiple keywords, aggregate stats on popular sounds, hashtags, posting patterns.' It distinguishes itself from siblings like tiktok_search (general search) and tiktok_trending (likely shows trending content) by focusing on analytical aggregation. However, it doesn't explicitly contrast with all siblings, such as tiktok_hashtag or tiktok_sounds, which might overlap in functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions analyzing trends for a niche but doesn't specify prerequisites, ideal scenarios, or exclusions. For example, it doesn't clarify if this is for market research, content strategy, or how it differs from tiktok_search or tiktok_trending in practice. Without such context, users must infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_downloadC
Download a TikTok video (without watermark when possible).
| Name | Required | Description | Default |
|---|---|---|---|
| video_url | Yes | TikTok video URL | |
| output_path | No | Output file path (optional, auto-generated if empty) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'without watermark when possible,' which hints at a best-effort behavior, but doesn't cover critical aspects like file format, download location defaults, error handling, rate limits, or authentication needs. For a download tool that likely involves external network calls, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded with the core action and includes a useful qualifier. Every word earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a download operation (network-dependent, file I/O) with no annotations and no output schema, the description is incomplete. It lacks details on return values (e.g., success/failure indicators, file path), error conditions, or behavioral constraints. The 'without watermark when possible' hint is helpful but doesn't compensate for the overall gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (video_url and output_path). The description doesn't add any parameter-specific details beyond what's in the schema, such as URL format examples or auto-generation rules for output_path. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Download') and resource ('a TikTok video'), with the additional qualifier 'without watermark when possible' providing useful context. It distinguishes from siblings like tiktok_video_info (which likely provides metadata) and tiktok_publish (which uploads content), though it doesn't explicitly name these alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't clarify whether this should be used instead of tiktok_video_info for downloading versus just getting metadata, or whether there are prerequisites like having a valid URL format. The description only states what it does, not when to choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_feedC
Scroll the For You Page like a real user and collect video metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of videos to collect (default 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions 'like a real user,' hinting at realistic behavior, but lacks details on rate limits, authentication needs, data freshness, or potential side effects (e.g., if scrolling affects user sessions). This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the action and outcome without unnecessary words. It's front-loaded and wastes no space, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of simulating user scrolling and collecting metadata, with no annotations and no output schema, the description is insufficient. It doesn't explain what 'video metadata' includes, how data is returned, or any constraints like pagination or errors, leaving the agent with incomplete context for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the parameter 'count' well-documented in the schema. The description adds no additional parameter semantics beyond implying collection of video metadata, which is already covered by the tool's purpose. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Scroll the For You Page') and the outcome ('collect video metadata'), making the purpose understandable. However, it doesn't explicitly differentiate this tool from siblings like 'tiktok_trending' or 'tiktok_search', which might also collect video metadata in different contexts, so it's not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'tiktok_trending' (likely for trending videos) and 'tiktok_search' (for search-based collection), there's no indication of when this tool is preferred, such as for personalized feeds or real-time scrolling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_hashtagC
Explore a TikTok hashtag — popular videos and stats.
| Name | Required | Description | Default |
|---|---|---|---|
| hashtag | Yes | Hashtag to explore (with or without #) | |
| count | No | Number of videos (default 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'popular videos and stats,' which hints at read-only behavior, but doesn't clarify permissions, rate limits, data freshness, or what 'stats' includes (e.g., view counts, engagement metrics). For a tool with no annotation coverage, this leaves significant gaps in understanding its operational traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence: 'Explore a TikTok hashtag — popular videos and stats.' It's front-loaded with the core purpose and avoids redundancy. However, it could be slightly more structured by separating purpose from output details for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is minimally adequate. It covers the basic purpose and hints at outputs (videos and stats), but doesn't detail return formats, error conditions, or limitations. For a tool with 2 parameters and no structured output documentation, it should provide more context about what to expect from the operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents both parameters (hashtag and count). The description adds no additional parameter semantics beyond implying hashtag exploration and stats retrieval. It doesn't explain format constraints, validation rules, or practical usage tips, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Explore a TikTok hashtag — popular videos and stats.' It specifies the verb 'explore' and the resource 'TikTok hashtag,' and distinguishes it from siblings by focusing on hashtag-specific exploration rather than general search, trending, or user content. However, it doesn't explicitly differentiate from all siblings (e.g., tiktok_search might overlap).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to prefer tiktok_hashtag over tiktok_search, tiktok_trending, or tiktok_feed, nor does it specify prerequisites or exclusions. The agent must infer usage from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_interactC
Interact with a TikTok video: like, comment, or follow the creator.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Interaction type | |
| video_url | Yes | Target video URL | |
| text | No | Comment text (required for comment action) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It mentions three actions but doesn't disclose whether these require user authentication, have rate limits, affect account status, or return confirmation data. For a tool that performs social media interactions (potentially with platform restrictions), this lack of transparency is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Interact with a TikTok video') and immediately enumerates the three actions. There is zero wasted verbiage or redundancy, making it highly scannable and actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of social media interaction tools (which often require authentication, have usage limits, and return varied outcomes), the description is incomplete. With no annotations, no output schema, and minimal behavioral context, an AI agent lacks critical information about prerequisites, side effects, and response formats. The description does not compensate for these gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters (action, video_url, text) with descriptions and constraints. The description adds no additional parameter semantics beyond implying that 'text' is comment-specific. Since the schema does the heavy lifting, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'interact' and resource 'TikTok video', specifying three concrete actions (like, comment, follow). It distinguishes from siblings like tiktok_download or tiktok_search by focusing on user engagement rather than content retrieval or analysis. However, it doesn't explicitly contrast with tiktok_publish (which creates content) or tiktok_session (which might manage authentication).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. For example, it doesn't clarify if tiktok_interact should be used for engagement metrics vs. tiktok_analyze_trend for trend analysis, or if authentication via tiktok_session is required first. There's no mention of prerequisites, rate limits, or use-case scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_publishA
Publish a video to TikTok. Requires authenticated session. Uses browser automation via Creator Center.
| Name | Required | Description | Default |
|---|---|---|---|
| video_path | Yes | Path to the video file to upload | |
| caption | Yes | Video caption/description | |
| hashtags | No | List of hashtags (without #) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful context beyond basic functionality by mentioning authentication requirements and the method ('Uses browser automation via Creator Center'), which hints at potential delays or UI interactions. However, it lacks details on error handling, rate limits, or what happens on success/failure, leaving gaps in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded, consisting of only two sentences that efficiently convey the core action, prerequisites, and implementation method. Every word earns its place with no redundancy or unnecessary details, making it easy to parse and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a publish operation with no annotations and no output schema, the description is somewhat incomplete. It covers authentication and method but omits critical details like return values, error cases, or side effects (e.g., video visibility). For a mutation tool with zero structured metadata, more behavioral context would be needed for full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already fully documents the parameters (video_path, caption, hashtags). The description does not add any additional meaning or examples beyond what the schema provides, such as file format constraints for video_path or hashtag formatting tips. This meets the baseline for high schema coverage but offers no extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Publish a video') and the target platform ('to TikTok'), distinguishing it from sibling tools like tiktok_download or tiktok_analyze_trend. It uses a precise verb ('Publish') and identifies the resource ('a video'), making the purpose unambiguous and distinct from alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool by stating 'Requires authenticated session,' which implies it should be used only after authentication is established. However, it does not explicitly mention when not to use it or name specific alternatives among siblings, such as using tiktok_video_info for read-only operations instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_searchB
Search TikTok videos by keyword. Returns metadata: author, description, views, URL, hashtags.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query | |
| count | No | Number of results (default 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the return format ('Returns metadata: author, description, views, URL, hashtags'), which is valuable. However, it doesn't mention behavioral aspects like rate limits, authentication requirements, pagination, or whether results are real-time/historical. For a search tool with zero annotation coverage, this leaves significant gaps in understanding its operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded: two sentences that directly state the action and output. Every word earns its place—no fluff or redundancy. It efficiently communicates core functionality without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (search with two parameters), no annotations, and no output schema, the description is partially complete. It covers the purpose and return metadata but lacks details on authentication, rate limits, error handling, or how results are ordered/filtered. Without an output schema, the description should ideally explain return values more thoroughly, but it does list key metadata fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents both parameters (query and count). The description adds no parameter-specific information beyond what's in the schema. According to scoring rules, with high schema coverage (>80%), the baseline is 3 even with no param info in description, which applies here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search TikTok videos by keyword' specifies the verb (search) and resource (TikTok videos). It distinguishes from siblings like 'tiktok_trending' (browse trending) or 'tiktok_user_videos' (user-specific), but doesn't explicitly differentiate from 'tiktok_hashtag' (which might also search). The description is specific but not fully sibling-differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'tiktok_hashtag' (likely hashtag-based search), 'tiktok_trending' (trending content), and 'tiktok_feed' (personalized feed), there's no indication of when keyword search is preferred over other search methods or content discovery tools. Usage is implied but not articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_sessionB
Manage TikTok session: check login status, refresh cookies, export session info.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Session management action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It mentions actions but doesn't disclose critical traits like authentication requirements, side effects (e.g., does 'refresh_cookies' invalidate old ones?), rate limits, or error handling. This leaves the agent guessing about operational risks.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded, packing all essential information into one efficient sentence. Every word earns its place without redundancy, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (session management with multiple actions) and lack of both annotations and output schema, the description is insufficient. It doesn't explain what 'export_session' returns, how login status is determined, or the implications of cookie refresh. For a tool with potential authentication and state changes, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the single 'action' parameter with its enum values. The description adds marginal value by listing the same actions in a more readable format, but doesn't provide additional semantics like when each action is appropriate or their outcomes. Baseline 3 is adjusted upward due to the single parameter's clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('manage', 'check', 'refresh', 'export') and resource ('TikTok session'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'tiktok_interact' which might also involve session management, leaving room for ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It lists actions but doesn't explain prerequisites (e.g., when a session is needed), timing considerations, or how it relates to siblings like 'tiktok_interact' for session-based interactions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_soundsC
Get trending sounds/music on TikTok.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of sounds (default 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('Get trending sounds/music') but doesn't cover critical aspects like rate limits, authentication needs, data freshness, or what 'trending' means (e.g., time frame, region). This leaves significant gaps for a tool that likely involves external API calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core purpose, making it easy for an agent to parse quickly without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'trending' entails, return format (e.g., list of sound objects with metadata), or error handling. For a tool with no structured behavioral hints, this leaves too much undefined for reliable agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter-specific information beyond what the schema provides (100% coverage). The schema fully documents the 'count' parameter with type, description, and default. Since schema coverage is high, the baseline score of 3 is appropriate, as the description doesn't need to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('trending sounds/music on TikTok'). It distinguishes itself from siblings like 'tiktok_trending' (likely general trends) and 'tiktok_search' (search functionality), though it doesn't explicitly mention these distinctions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'tiktok_trending' or 'tiktok_search'. It lacks context about prerequisites, timing, or exclusions, leaving the agent to infer usage based on the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_trendingC
Get trending/For You videos from TikTok feed.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of videos (default 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'Get trending/For You videos' but doesn't specify if this is a read-only operation, requires authentication, has rate limits, or what the output format might be. For a tool with no annotations, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded with a single, clear sentence that directly states the tool's purpose without any wasted words. It efficiently communicates the core function, earning a top score for brevity and structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete for a tool that likely returns video data. It doesn't explain what information is returned (e.g., video URLs, metadata, trends), how results are formatted, or any behavioral constraints, making it inadequate for full contextual understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description doesn't add any parameter-specific information beyond what's in the input schema, which has 100% coverage for the single parameter 'count'. Since the schema already fully documents the parameter, the baseline score of 3 is appropriate, as the description doesn't compensate or provide extra meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('trending/For You videos from TikTok feed'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'tiktok_feed' or 'tiktok_hashtag', which might offer similar content retrieval, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools available (e.g., 'tiktok_feed', 'tiktok_search', 'tiktok_user_videos'), there's no indication of context, prerequisites, or exclusions, leaving the agent to guess based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_user_videosC
Get videos from a specific TikTok user's profile.
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | TikTok username (with or without @) | |
| count | No | Number of videos (default 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'Get[s] videos,' implying a read-only operation, but doesn't disclose any behavioral traits such as rate limits, authentication requirements, pagination, or what happens if the user doesn't exist. For a tool with no annotations, this leaves significant gaps in understanding how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence: 'Get videos from a specific TikTok user's profile.' It is front-loaded with the core purpose, has zero wasted words, and is appropriately sized for a simple tool. Every part of the sentence earns its place by specifying the action and target.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a tool to retrieve user videos) and the lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., video metadata, URLs, or full data), any limitations (e.g., max count, privacy restrictions), or error handling. For a tool with no structured output information, the description should provide more context to be fully helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear documentation for 'username' and 'count' parameters. The description doesn't add any meaning beyond what the schema provides (e.g., it doesn't explain parameter interactions or constraints). Since schema coverage is high, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get videos from a specific TikTok user's profile.' It specifies the verb ('Get') and resource ('videos from a specific TikTok user's profile'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'tiktok_feed' or 'tiktok_search', which might also retrieve videos but from different sources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'tiktok_feed' (which might get videos from a personalized feed) or 'tiktok_search' (which might search for videos), leaving the agent to infer usage based on tool names alone. There are no explicit when-to-use or when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_video_infoC
Get detailed metadata for a specific TikTok video (stats, audio, hashtags, description).
| Name | Required | Description | Default |
|---|---|---|---|
| video_url | Yes | TikTok video URL or video ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While it states this is a 'Get' operation (implying read-only), it doesn't mention any behavioral traits such as rate limits, authentication requirements, error conditions, or what happens with invalid URLs. For a tool with no annotation coverage, this leaves significant gaps in understanding its operational characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded in a single sentence that efficiently communicates the core functionality. Every word earns its place with no wasted verbiage or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of video metadata retrieval (which could involve various data points and potential failures) and the absence of both annotations and an output schema, the description is insufficiently complete. It doesn't explain what specific metadata is returned, how errors are handled, or any prerequisites for successful operation, leaving the agent with inadequate context for reliable use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'video_url' clearly documented in the schema as accepting 'TikTok video URL or video ID'. The description adds no additional parameter semantics beyond what's already in the schema, so it meets the baseline for adequate coverage without adding value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('detailed metadata for a specific TikTok video'), and it lists the types of metadata included (stats, audio, hashtags, description). However, it doesn't explicitly differentiate from sibling tools like 'tiktok_user_videos' or 'tiktok_search' which might also provide video metadata in different contexts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'tiktok_search', 'tiktok_user_videos', and 'tiktok_feed' that might overlap in functionality, there's no indication of when this specific metadata retrieval tool is preferred or what distinguishes it from other video-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
12 tool updates
v1.0.0- First observed
tiktok_analyze_trend - First observed
tiktok_download - First observed
tiktok_feed - First observed
tiktok_hashtag - First observed
tiktok_interact - First observed
tiktok_publish - First observed
tiktok_search - First observed
tiktok_session - First observed
tiktok_sounds - First observed
tiktok_trending - First observed
tiktok_user_videos - First observed
tiktok_video_info
TDQS
Most tools have distinct purposes, but there is some overlap between tiktok_feed and tiktok_trending (both fetch trending/For You Page content) and between tiktok_search and tiktok_hashtag (both search-related). Descriptions help differentiate them, but an agent might occasionally misselect between these pairs.
All tools follow a consistent tiktok_verb_noun naming pattern, using snake_case throughout. This predictability makes it easy for an agent to understand and navigate the toolset.
With 12 tools, this server is well-scoped for TikTok operations, covering analysis, downloading, interaction, publishing, and session management. Each tool serves a clear purpose without feeling excessive or insufficient.
The toolset provides comprehensive coverage for TikTok interactions, including CRUD-like operations (e.g., publish, interact, download) and data retrieval. A minor gap is the lack of tools for managing user profiles or direct messaging, but core workflows are well-supported.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
All HasData scraping tools in one MCP server: Google, TikTok, Instagram, maps, e-commerce and more.
MCP server for ByteDance Seedance AI video generation
MCP server for Hailuo (MiniMax) AI video generation
MCP server for QPost — lets AI agents publish video and image posts to YouTube, TikTok, Instagram.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/follox42/tiktok-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server