Skip to main content
Glama

🎵 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.

Python 3.10+ License: MIT MCP Compatible GitHub Stars


⚡ 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

tiktok_search

Search TikTok videos by keyword. Returns author, description, views, URL, hashtags.

tiktok_trending

Get trending/For You videos from TikTok's main feed.

tiktok_feed

Scroll the For You Page like a real user and collect video metadata.

tiktok_user_videos

Get all videos from a specific user's profile with their stats.

tiktok_video_info

Get detailed metadata for a specific video (stats, audio, hashtags, description).

tiktok_hashtag

Explore a hashtag — view count, popular videos, and stats.

tiktok_download

Download a TikTok video without watermark (HD when available via tikwm).

tiktok_publish

Publish a video to TikTok with caption and hashtags via Creator Center.

tiktok_interact

Like, comment, or follow — interact with any video or creator.

tiktok_sounds

Get trending sounds/music on TikTok.

tiktok_session

Manage your TikTok session: check login, refresh cookies, export session.

tiktok_analyze_trend

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 chromium

2. 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.pkl

Option B — Export manually:

  1. Log into TikTok in your browser

  2. Use a cookie export extension (e.g., "Get cookies.txt")

  3. 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"}
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:

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'feat: add amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. 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 tools
tiktok_analyze_trendC

Analyze trends for a niche: search multiple keywords, aggregate stats on popular sounds, hashtags, posting patterns.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordsYesKeywords to research
count_per_keywordNoVideos to analyze per keyword (default 10)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
video_urlYesTikTok video URL
output_pathNoOutput file path (optional, auto-generated if empty)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of videos to collect (default 10)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hashtagYesHashtag to explore (with or without #)
countNoNumber of videos (default 10)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesInteraction type
video_urlYesTarget video URL
textNoComment text (required for comment action)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
video_pathYesPath to the video file to upload
captionYesVideo caption/description
hashtagsNoList of hashtags (without #)

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_sessionB

Manage TikTok session: check login status, refresh cookies, export session info.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesSession management action

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of sounds (default 20)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_user_videosC

Get videos from a specific TikTok user's profile.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYesTikTok username (with or without @)
countNoNumber of videos (default 10)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
video_urlYesTikTok video URL or video ID

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 12 tool updatesv1.0.0
    • First observedtiktok_analyze_trend
    • First observedtiktok_download
    • First observedtiktok_feed
    • First observedtiktok_hashtag
    • First observedtiktok_interact
    • First observedtiktok_publish
    • First observedtiktok_search
    • First observedtiktok_session
    • First observedtiktok_sounds
    • First observedtiktok_trending
    • First observedtiktok_user_videos
    • First observedtiktok_video_info

TDQS

B3.4/5.0
Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

Latest Blog Posts

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