# com.scraptik/tiktok (remote · mcp.scraptik.com)

Unofficial TikTok API & scraper: creator analytics, video data, comments, search. x402, no API key.

- Trust score: 65/100 (medium)
- Change this week: +1
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `mcp.scraptik.com`: 65/100 (this document), [markdown](https://verifymcp.io/servers/com-scraptik-tiktok/mcp.md), [page](https://verifymcp.io/servers/com-scraptik-tiktok/mcp)

## Channel facts

- Endpoint: `https://mcp.scraptik.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.2.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 19 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 77/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2243 tokens (~118/item across 19 items; 19 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 60/100
  - Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http com-scraptik-tiktok https://mcp.scraptik.com/mcp
```

### Codex

```toml
[mcp_servers.com-scraptik-tiktok]
url = "https://mcp.scraptik.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-scraptik-tiktok": {
      "type": "remote",
      "url": "https://mcp.scraptik.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-scraptik-tiktok --url https://mcp.scraptik.com/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-scraptik-tiktok:
    url: "https://mcp.scraptik.com/mcp"
```

### Other

```json
{
  "mcpServers": {
    "com-scraptik-tiktok": {
      "type": "http",
      "url": "https://mcp.scraptik.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 65, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 64, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 64, −2)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 66, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-28 (score 65, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 64, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 64)

First indexed and scored.

## MCP tools (19)

### `tiktok_creator_profile` (~117 tokens)

Fetch a TikTok creator's public profile: follower/following counts, total videos and likes, verification status, bio, region, and avatar. Use for influencer discovery, creator analytics, and audience-size vetting for UGC/brand deals. `handle` accepts an @username (e.g. `@charlidamelio`) or a numeric user_id.

Input parameters:

- `expand` (boolean): Return the full untrimmed payload. Default false = compact JSON.
- `handle` (string, required): @username or numeric user_id

### `tiktok_resolve_username` (~82 tokens)

Resolve a TikTok @username to its stable numeric user_id and sec_uid. Cheap utility — call this first when you only have a handle and need an id for other tools.

Input parameters:

- `expand` (boolean): Return the full untrimmed payload. Default false = compact JSON.
- `username` (string, required): @username (with or without the @)

### `tiktok_creator_followers` (~114 tokens)

List a creator's followers (paginated). Use for audience mapping and finding connected accounts. Paginate with `cursor`.

Input parameters:

- `count` (integer): Number of items to return, <=50
- `cursor` (string): Pagination cursor — pass the `cursor`/`max_cursor`/`has_more` value from a prior response.
- `expand` (boolean): Return the full untrimmed payload. Default false = compact JSON.
- `user_id` (string, required): @username or numeric user_id

### `tiktok_creator_following` (~115 tokens)

List the accounts a creator follows (paginated). Use for interest-graph and collaboration analysis. Paginate with `cursor`.

Input parameters:

- `count` (integer): Number of items to return, <=50
- `cursor` (string): Pagination cursor — pass the `cursor`/`max_cursor`/`has_more` value from a prior response.
- `expand` (boolean): Return the full untrimmed payload. Default false = compact JSON.
- `user_id` (string, required): @username or numeric user_id

### `tiktok_creator_videos` (~154 tokens)

List a creator's recent videos with per-video stats (views, likes, comments, shares). Use to compute engagement rate, spot recent virality, or pull a content sample. Paginate with `cursor` (the `max_cursor` from the response). `user_id` accepts an @username or numeric id.

Input parameters:

- `count` (integer): Number of items to return, <=35
- `cursor` (string): Pagination cursor — pass the `cursor`/`max_cursor`/`has_more` value from a prior response.
- `expand` (boolean): Return the full untrimmed payload. Default false = compact JSON.
- `user_id` (string, required): @username or numeric user_id

### `tiktok_creator_liked_videos` (~124 tokens)

List videos a creator has publicly liked (only available when the account exposes its Likes tab). Use for taste/affinity analysis. Paginate with `cursor`.

Input parameters:

- `count` (integer): Number of items to return, <=35
- `cursor` (string): Pagination cursor — pass the `cursor`/`max_cursor`/`has_more` value from a prior response.
- `expand` (boolean): Return the full untrimmed payload. Default false = compact JSON.
- `user_id` (string, required): @username or numeric user_id

### `tiktok_user_stories` (~99 tokens)

List a creator's active TikTok Stories (ephemeral posts that expire ~24h). Use to capture story content before it disappears. `user_id` accepts an @username or numeric id.

Input parameters:

- `count` (integer): Number of items to return, <=35
- `expand` (boolean): Return the full untrimmed payload. Default false = compact JSON.
- `user_id` (string, required): @username or numeric user_id

### `tiktok_video_stats` (~115 tokens)

Fetch a single TikTok video's stats and metadata: play/like/comment/share/save counts, author, sound, duration, description, hashtags, and create time. Use to measure a specific post's performance. Accepts a numeric `video_id` (aweme_id) or a full TikTok video URL.

Input parameters:

- `expand` (boolean): Return the full untrimmed payload. Default false = compact JSON.
- `video_id` (string, required): aweme_id or a tiktok.com/.../video/<id> URL

### `tiktok_video_comments` (~128 tokens)

List top-level comments on a video, most-relevant first, with like counts and authors. Use for sentiment sampling and audience-response analysis. Paginate with `cursor`.

Input parameters:

- `count` (integer): Number of items to return, <=50
- `cursor` (string): Pagination cursor — pass the `cursor`/`max_cursor`/`has_more` value from a prior response.
- `expand` (boolean): Return the full untrimmed payload. Default false = compact JSON.
- `video_id` (string, required): aweme_id or a /video/<id> URL

### `tiktok_comment_replies` (~153 tokens)

List replies to a specific comment on a video. Use to drill into a comment thread. Requires both `comment_id` and the parent `video_id`. Paginate with `cursor`.

Input parameters:

- `comment_id` (string, required): Numeric comment id (from tiktok_video_comments)
- `count` (integer): Number of items to return, <=50
- `cursor` (string): Pagination cursor — pass the `cursor`/`max_cursor`/`has_more` value from a prior response.
- `expand` (boolean): Return the full untrimmed payload. Default false = compact JSON.
- `video_id` (string, required): aweme_id or a /video/<id> URL of the parent video

### `tiktok_video_download_url` (~90 tokens)

Resolve a watermark-free download URL for a TikTok video. Use to obtain the clean MP4 for archival or analysis. Accepts a numeric `video_id` or a full TikTok video URL.

Input parameters:

- `expand` (boolean): Return the full untrimmed payload. Default false = compact JSON.
- `video_id` (string, required): aweme_id or a /video/<id> URL

### `tiktok_sound_info` (~76 tokens)

Fetch metadata for a sound/track: title, author, duration, and how many videos use it. Use to size a sound's reach before pulling its videos.

Input parameters:

- `expand` (boolean): Return the full untrimmed payload. Default false = compact JSON.
- `music_id` (string, required): Numeric TikTok music_id

### `tiktok_sound_videos` (~133 tokens)

List videos that use a given sound/track, most-recent first. Use for sound-trend analysis, finding UGC around a track, or gauging a sound's virality. Paginate with `cursor`.

Input parameters:

- `count` (integer): Number of items to return, <=35
- `cursor` (string): Pagination cursor — pass the `cursor`/`max_cursor`/`has_more` value from a prior response.
- `expand` (boolean): Return the full untrimmed payload. Default false = compact JSON.
- `music_id` (string, required): Numeric TikTok music_id

### `tiktok_hashtag_videos` (~171 tokens)

List videos under a hashtag/challenge. Pass a resolved numeric `cid`, or a `hashtag` name (e.g. `booktok`) which is resolved to a cid first. Use for trend tracking and campaign monitoring. Passing `cid` directly skips the resolution lookup and is slightly faster.

Input parameters:

- `cid` (string): Numeric challenge id (preferred; skips resolution)
- `count` (integer): Number of items to return, <=35
- `cursor` (string): Pagination cursor — pass the `cursor`/`max_cursor`/`has_more` value from a prior response.
- `expand` (boolean): Return the full untrimmed payload. Default false = compact JSON.
- `hashtag` (string): Hashtag name without #, e.g. `booktok`

### `tiktok_search_videos` (~115 tokens)

Search TikTok videos by keyword, returning matching posts with stats. Use for topic/trend discovery and competitive research. Paginate with `cursor`.

Input parameters:

- `count` (integer): Number of items to return, <=30
- `cursor` (string): Pagination cursor — pass the `cursor`/`max_cursor`/`has_more` value from a prior response.
- `expand` (boolean): Return the full untrimmed payload. Default false = compact JSON.
- `keyword` (string, required): Search query text

### `tiktok_search_creators` (~112 tokens)

Search TikTok creators by keyword/name, returning matching profiles. Use for influencer discovery and account lookup. Paginate with `cursor`.

Input parameters:

- `count` (integer): Number of items to return, <=30
- `cursor` (string): Pagination cursor — pass the `cursor`/`max_cursor`/`has_more` value from a prior response.
- `expand` (boolean): Return the full untrimmed payload. Default false = compact JSON.
- `keyword` (string, required): Search query text

### `tiktok_search_hashtags` (~122 tokens)

Search TikTok hashtags/challenges by keyword, returning matching challenges with their cid and video counts. Use to find the right hashtag before pulling its videos. Paginate with `cursor`.

Input parameters:

- `count` (integer): Number of items to return, <=30
- `cursor` (string): Pagination cursor — pass the `cursor`/`max_cursor`/`has_more` value from a prior response.
- `expand` (boolean): Return the full untrimmed payload. Default false = compact JSON.
- `keyword` (string, required): Search query text

### `tiktok_search_sounds` (~115 tokens)

Search TikTok sounds/tracks by keyword, returning matching music with usage counts. Use for audio/trend discovery. Paginate with `cursor`.

Input parameters:

- `count` (integer): Number of items to return, <=30
- `cursor` (string): Pagination cursor — pass the `cursor`/`max_cursor`/`has_more` value from a prior response.
- `expand` (boolean): Return the full untrimmed payload. Default false = compact JSON.
- `keyword` (string, required): Search query text

### `tiktok_search_lives` (~108 tokens)

Search live TikTok streams by keyword. Use for real-time/live-content discovery. Paginate with `cursor`.

Input parameters:

- `count` (integer): Number of items to return, <=30
- `cursor` (string): Pagination cursor — pass the `cursor`/`max_cursor`/`has_more` value from a prior response.
- `expand` (boolean): Return the full untrimmed payload. Default false = compact JSON.
- `keyword` (string, required): Search query text

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-scraptik-tiktok/mcp#diagnostics

## Score history

- 2026-08-03: 65
- 2026-08-02: 65
- 2026-08-01: 64
- 2026-07-31: 64
- 2026-07-30: 64
- 2026-07-29: 66
- 2026-07-28: 65
- 2026-07-27: 64
- 2026-07-26: 64

## Links

- Remote endpoint: https://mcp.scraptik.com/mcp
- Website: https://scraptik.com/
- Changelog RSS feed: https://verifymcp.io/servers/com-scraptik-tiktok/mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-scraptik-tiktok/mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/com-scraptik-tiktok/mcp
