Koskamo

ShortVidAPI MCP

An MCP server providing real-time access to TikTok public data, including video details, creator profiles, comments, trending feeds, and Creative Center ad metrics. It supports OAuth 2.1 for Claude Web/ChatGPT and API key authentication for IDEs like Cursor and Windsurf, offering 16 tools for agent-driven social media analysis.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

ShortVidAPI MCP logo, by ShortVid APIVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-07Operated by ShortVid API
You need:Sign up for 10,500 free Credits ($1.05) and copy your key from the dashboard.OAuth 2.1 + PKCEx-api-key
MCP endpoint (Streamable HTTP)
https://api.shortvidapi.com/mcp
Vendor documentation

What its tools do

16 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

16 of 16 have a description · 16 of 16 declare behavior hints · 16 of 16 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to shortvidapi.com ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Search TikTok videos by keyword and region
  • Retrieve creator profile metadata and follower counts
  • Extract video comments for sentiment analysis
  • Query top-performing commercial ads from Creative Center

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
shortvidapi-mcp 1.0.0
MCP protocol negotiated in check
2025-11-25
Tools
16 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Real-time short-form video, creator profiles, followers, comments, hashtags, sounds, and commercial ads REST data. Pass your tk_... API key via the x-api-key or Authorization: Bearer header when calling tools/call. Claim 10,500 free credits ($1.05, no card) at https://shortvidapi.com/signup

Tools

16 advertised

tiktok_video_detail — Get TikTok Video Detail & 1080p Stream
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Fetch full metadata, engagement metrics, creator info, music track, and 1080p HD no-watermark MP4 stream URLs (hdplay) for a TikTok video URL or ID (10 credits).

tiktok_video_detail input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "hd": {
      "type": "number",
      "default": 1,
      "description": "Set to 1 to include 1080p HD no-watermark stream URL"
    },
    "url": {
      "type": "string",
      "description": "TikTok video URL or 19-digit numeric video ID (aliases: video_id, aweme_id)"
    }
  }
}
tiktok_video_detail annotations
{
  "title": "Get TikTok Video Detail",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
tiktok_video_search — Search TikTok Videos by Keyword
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search public TikTok videos by keyword with region, sort order, and publish window filters. Costs 2 credits per video ($0.20 / 1,000 videos).

tiktok_video_search input schema
{
  "type": "object",
  "required": [
    "keywords"
  ],
  "properties": {
    "count": {
      "type": "number",
      "default": 15,
      "description": "Videos per page (1-30)"
    },
    "cursor": {
      "type": "number",
      "default": 0,
      "description": "Pagination offset cursor (0 for first page)"
    },
    "region": {
      "type": "string",
      "default": "US",
      "description": "ISO country code (e.g. US, GB, JP, DE)"
    },
    "keywords": {
      "type": "string",
      "description": "Search query keywords (aliases: keyword, query, q)"
    },
    "sort_type": {
      "type": "number",
      "default": 0,
      "description": "0 = Relevance, 1 = Most Liked, 3 = Newest"
    },
    "publish_time": {
      "type": "number",
      "default": 0,
      "description": "0 = All, 1 = 24h, 7 = 7d, 30 = 30d, 90 = 90d, 180 = 180d"
    }
  }
}
tiktok_video_search annotations
{
  "title": "Search TikTok Videos",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
tiktok_trending_feed — Get Regional Trending TikTok Videos
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Get currently trending public TikTok videos for a target two-letter country code (2 credits per video).

tiktok_trending_feed input schema
{
  "type": "object",
  "properties": {
    "count": {
      "type": "number",
      "default": 15,
      "description": "Number of videos to return (1-30)"
    },
    "region": {
      "type": "string",
      "default": "US",
      "description": "Two-letter ISO country code (US, GB, DE, BR, JP)"
    }
  }
}
tiktok_trending_feed annotations
{
  "title": "Get Trending TikTok Feed",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
tiktok_user_info — Get TikTok Creator Profile & Stats
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Retrieve a TikTok creator profile (numeric user_id, secUid, bio, verification, business category) and real-time follower/heart/video counts (10 credits).

tiktok_user_info input schema
{
  "type": "object",
  "properties": {
    "user_id": {
      "type": "string",
      "description": "Optional numeric TikTok user_id if unique_id is omitted"
    },
    "unique_id": {
      "type": "string",
      "description": "TikTok username handle without @ (e.g. tiktok, khaby.lame)"
    }
  }
}
tiktok_user_info annotations
{
  "title": "Get TikTok Creator Profile",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
tiktok_user_posts — Get Creator Video Posts
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Fetch public videos posted by a TikTok creator with no-watermark MP4 streams and engagement stats (2 credits per video).

tiktok_user_posts input schema
{
  "type": "object",
  "properties": {
    "count": {
      "type": "number",
      "default": 15,
      "description": "Videos per page (max 35)"
    },
    "cursor": {
      "type": "string",
      "default": "0",
      "description": "Pagination cursor (\"0\" for first page)"
    },
    "user_id": {
      "type": "string",
      "description": "Optional numeric TikTok user_id"
    },
    "unique_id": {
      "type": "string",
      "description": "TikTok username handle without @"
    }
  }
}
tiktok_user_posts annotations
{
  "title": "Get Creator Video Posts",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
tiktok_user_followers — Get Creator Followers
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Get paginated follower accounts of a TikTok creator (up to 200 per call, 1 credit per follower).

tiktok_user_followers input schema
{
  "type": "object",
  "required": [
    "user_id"
  ],
  "properties": {
    "time": {
      "type": "string",
      "default": "0",
      "description": "Pagination timestamp cursor (\"0\" for first page)"
    },
    "count": {
      "type": "number",
      "default": 50,
      "description": "Followers per page (max 200)"
    },
    "sec_uid": {
      "type": "string",
      "description": "Optional creator secUid"
    },
    "user_id": {
      "type": "string",
      "description": "Numeric TikTok user_id (resolve via tiktok_user_info first)"
    }
  }
}
tiktok_user_followers annotations
{
  "title": "Get Creator Followers",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
tiktok_user_following — Get Creator Following List
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Get paginated accounts followed by a TikTok creator (up to 200 per call, 1 credit per user).

tiktok_user_following input schema
{
  "type": "object",
  "required": [
    "user_id"
  ],
  "properties": {
    "time": {
      "type": "string",
      "default": "0",
      "description": "Pagination timestamp cursor (\"0\" for first page)"
    },
    "count": {
      "type": "number",
      "default": 50,
      "description": "Users per page (max 200)"
    },
    "sec_uid": {
      "type": "string",
      "description": "Optional creator secUid"
    },
    "user_id": {
      "type": "string",
      "description": "Numeric TikTok user_id"
    }
  }
}
tiktok_user_following annotations
{
  "title": "Get Creator Following",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
tiktok_user_search — Search TikTok Creators & Influencers
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search TikTok creators by niche keyword with follower-tier and verified badge filters (1 credit per creator).

tiktok_user_search input schema
{
  "type": "object",
  "required": [
    "keywords"
  ],
  "properties": {
    "count": {
      "type": "number",
      "default": 20,
      "description": "Creators per page (max 30)"
    },
    "cursor": {
      "type": "number",
      "default": 0,
      "description": "Pagination cursor"
    },
    "keywords": {
      "type": "string",
      "description": "Creator or niche search query (aliases: keyword, query, q)"
    },
    "profile_type": {
      "type": "number",
      "default": 0,
      "description": "0=All, 1=Verified accounts only"
    },
    "follower_count": {
      "type": "number",
      "default": 0,
      "description": "Follower tier filter: 0=All, 1=0-1K, 2=1K-10K, 3=10K-100K, 4=100K+"
    }
  }
}
tiktok_user_search annotations
{
  "title": "Search TikTok Creators",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
tiktok_comment_list — Get Video Comments
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Fetch top-level comments on a TikTok video (up to 50 comments per call, 1 credit per comment).

tiktok_comment_list input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "TikTok video URL or numeric video ID / aweme_id"
    },
    "count": {
      "type": "number",
      "default": 20,
      "description": "Comments per page (max 50)"
    },
    "cursor": {
      "type": "number",
      "default": 0,
      "description": "Pagination offset cursor"
    }
  }
}
tiktok_comment_list annotations
{
  "title": "Get Video Comments",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
tiktok_comment_replies — Get Nested Comment Replies
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Fetch nested reply threads for a specific comment on a TikTok video (1 credit per reply).

tiktok_comment_replies input schema
{
  "type": "object",
  "required": [
    "video_id",
    "comment_id"
  ],
  "properties": {
    "count": {
      "type": "number",
      "default": 20,
      "description": "Replies per page (max 50)"
    },
    "cursor": {
      "type": "number",
      "default": 0,
      "description": "Pagination cursor"
    },
    "video_id": {
      "type": "string",
      "description": "Numeric TikTok video ID or video URL"
    },
    "comment_id": {
      "type": "string",
      "description": "Numeric parent comment_id"
    }
  }
}
tiktok_comment_replies annotations
{
  "title": "Get Comment Replies",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
tiktok_challenge_info — Get Hashtag Challenge Info
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Get TikTok hashtag challenge metadata, numeric challenge_id, and total view/video counts (10 credits).

tiktok_challenge_info input schema
{
  "type": "object",
  "required": [
    "challenge_name"
  ],
  "properties": {
    "challenge_name": {
      "type": "string",
      "description": "Hashtag name without # (e.g. fyp, skincare, aitools)"
    }
  }
}
tiktok_challenge_info annotations
{
  "title": "Get Hashtag Challenge Info",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
tiktok_challenge_posts — Get Hashtag Videos
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Fetch public videos tagged with a TikTok hashtag challenge_id (2 credits per video).

tiktok_challenge_posts input schema
{
  "type": "object",
  "required": [
    "cid"
  ],
  "properties": {
    "cid": {
      "type": "string",
      "description": "Numeric TikTok challenge_id (resolve via tiktok_challenge_info first)"
    },
    "count": {
      "type": "number",
      "default": 20,
      "description": "Videos per page (max 30)"
    },
    "cursor": {
      "type": "number",
      "default": 0,
      "description": "Pagination cursor"
    }
  }
}
tiktok_challenge_posts annotations
{
  "title": "Get Hashtag Videos",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
tiktok_music_info — Get Sound / Music Track Metadata
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Get TikTok sound/music metadata, MP3 playback URL, author, duration, and usage count. Accepts a music ID, music URL, or video URL (10 credits).

tiktok_music_info input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "TikTok sound ID, sound URL, or TikTok video URL to extract audio from"
    }
  }
}
tiktok_music_info annotations
{
  "title": "Get Sound Metadata",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
tiktok_music_posts — Get Videos Using Sound Track
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Fetch public TikTok videos using a specific numeric music_id (2 credits per video).

tiktok_music_posts input schema
{
  "type": "object",
  "required": [
    "music_id"
  ],
  "properties": {
    "count": {
      "type": "number",
      "default": 20,
      "description": "Videos per page (max 30)"
    },
    "cursor": {
      "type": "number",
      "default": 0,
      "description": "Pagination cursor"
    },
    "music_id": {
      "type": "string",
      "description": "Numeric TikTok music_id"
    }
  }
}
tiktok_music_posts annotations
{
  "title": "Get Videos Using Sound",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
tiktok_top_ads — Search TikTok Creative Center Top Ads
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search top-performing commercial ads from TikTok Creative Center by keyword, country, period, and CTR/impression rank.

tiktok_top_ads input schema
{
  "type": "object",
  "properties": {
    "page": {
      "type": "number",
      "default": 1,
      "description": "Page number"
    },
    "limit": {
      "type": "number",
      "default": 10,
      "description": "Ads per page (max 20)"
    },
    "period": {
      "type": "number",
      "default": 7,
      "description": "Window in days: 7, 30, or 180"
    },
    "keyword": {
      "type": "string",
      "description": "Optional product, brand, or niche keyword (aliases: keywords, query, q)"
    },
    "order_by": {
      "type": "string",
      "default": "impression",
      "description": "Sort metric: impression, ctr, or like"
    },
    "country_code": {
      "type": "string",
      "default": "US",
      "description": "Country code (US, GB, DE, JP)"
    }
  }
}
tiktok_top_ads annotations
{
  "title": "Search Top Commercial Ads",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
tiktok_ad_detail — Get Commercial Ad Creative Detail
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Get full creative telemetry, 1080p ad video URL, CTR curve, and landing page URL for a TikTok Creative Center ad ID (10 credits).

tiktok_ad_detail input schema
{
  "type": "object",
  "required": [
    "ads_id"
  ],
  "properties": {
    "ads_id": {
      "type": "string",
      "description": "Numeric TikTok Creative Center ad / material ID"
    }
  }
}
tiktok_ad_detail annotations
{
  "title": "Get Commercial Ad Detail",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (4 of 4 answered).

  1. 2026-11-09: 2 of 2 checks answered
  2. 2026-11-10: 2 of 2 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
385 ms
95th percentile latency
385 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 385 ms · metadata changed · 16 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http shortvidapi-mcp https://api.shortvidapi.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add shortvidapi-mcp --url https://api.shortvidapi.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable shortvidapi-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "shortvidapi-mcp": {
      "url": "https://api.shortvidapi.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "shortvidapi-mcp": {
      "type": "streamableHttp",
      "url": "https://api.shortvidapi.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start shortvidapi-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "shortvidapi-mcp": {
      "type": "http",
      "url": "https://api.shortvidapi.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http shortvidapi-mcp https://api.shortvidapi.com/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://api.shortvidapi.com/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "shortvidapi-mcp": {
      "serverUrl": "https://api.shortvidapi.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like ShortVidAPI MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run ShortVidAPI MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing