Skip to main content
Glama
dev.socialscrape/socialscrape

dev.socialscrape/socialscrape

Official

TikTok

tiktok
Read-onlyIdempotent

Retrieve short-form video profiles, videos, comments, transcripts, songs, live streams, search results, and trending feeds for research and monitoring.

Instructions

Data from TikTok: profiles, posts and videos, transcripts, comments, tracks, live streams.

Pick a resource, then pass its parameters as top-level arguments (extras in params). Each call costs the credits shown below and the result says what was charged and what is left; failures are free. List resources return a cursor: pass it back unchanged for the next page. Pass max_age_days to accept a cached copy for free.

Resources:

  • collection.videos(url): TikTok collection videos. 1 credit. Paged.

  • live(url|id): TikTok live room info. 1 credit. Optional: user_id.

  • profile(handle|id): TikTok profile. 1 credit.

  • profile.live(handle): Is a TikTok user live. 1 credit.

  • profile.videos(handle|id): TikTok profile videos. 1 credit. Paged. Optional: include_pinned.

  • search.hashtag(hashtag): TikTok videos by hashtag. 1 credit. Paged.

  • search.keyword(query): TikTok video search. 1 credit. Paged. Optional: date_posted.

  • search.suggestions(query): TikTok search suggestions. 1 credit. Paged.

  • search.top(query): TikTok top search. 1 credit. Paged. Optional: publish_time.

  • search.users(query): TikTok user search. 1 credit. Paged.

  • song(id|url): TikTok song details. 1 credit.

  • song.videos(id|url): TikTok videos using a song. 1 credit. Paged.

  • trending(): TikTok trending feed. 1 credit. Paged.

  • video(url|id): TikTok video details. 1 credit. Optional: get_transcript.

  • video.comment.replies(comment_id, url|id): TikTok comment replies. 1 credit. Paged.

  • video.comments(url|id): TikTok video comments. 1 credit. Paged.

  • video.transcript(url|id): TikTok video transcript. 1 credit (captions); AI transcription 1 credit up to 2 minutes, then 5 per started minute of the whole video. Optional: ai_fallback, allow_long_transcription.

  • videos.popular(): Popular TikTok videos. 1 credit. Paged. Optional: period, category.

Input Schema

NameRequiredDescriptionDefault
idNoThe platform's id for the item, where a URL is not used. Used by: live, profile, profile.videos, song, song.videos, video, ...
urlNoURL of the item the resource is about (profile, post, video, event...). Used by: collection.videos, live, song, song.videos, video, video.comment.replies, ...
sortNoOrder of results; changing it restarts the cursor chain. Used by: profile.videos, search.keyword, search.top, videos.popular. Allowed values vary by resource (describe shows them)
queryNoSearch terms. Used by: search.keyword, search.suggestions, search.top, search.users
cursorNoOpaque cursor from the previous page; pass it back unchanged
handleNoUsername, with or without the leading @. Used by: profile, profile.live, profile.videos
paramsNoAny other parameter for the chosen resource, by name, e.g. {"start_date": "2026-01-01"}. Optional parameters of each resource are in the tool description; call describe for types and allowed values.
regionNoTwo-letter country code (ISO 3166-1) for results that vary by country. Used by: profile.videos, search.hashtag, search.keyword, search.suggestions, search.top, trending, ...
languageNoPreferred caption language (2-letter code: en, es, fr, de, it, ja, ko, zh). Used by: video.transcript
resourceYesWhich TikTok data to fetch. The tool description lists what each needs.
max_age_daysNoAccept a cached copy fetched within this many days, for 0 credits (0 to 30).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, it discloses credit costs per resource, that failures are free, that cached results via max_age_days cost zero, that list resources are paged via an opaque cursor, and that changing `sort` restarts the cursor chain. It also flags the variable AI-transcription pricing for video.transcript, which no annotation conveys.

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?

Front-loaded with the calling convention and paging/caching rules before the long resource table, which is dense but each line carries a distinct resource signature. Minor waste: '1 credit' is restated on nearly every line when a default could be declared once.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 18-resource dispatcher with no output schema, the description covers selection, costs, pagination, and caching, which is most of what an agent needs before calling. It does not describe the shape of returned data for any resource, nor point to `describe` for output fields, leaving the agent blind to what a successful call yields.

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 coverage is 100%, so the baseline is 3, but the description adds per-resource applicability and, critically, names optional parameters that do not appear in the schema at all (include_pinned, date_posted, publish_time, get_transcript, ai_fallback, allow_long_transcription) and routes them to `params`. It still defers types and allowed values to `describe` rather than explaining them.

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 opening sentence names the platform and the data classes (profiles, posts, videos, transcripts, comments, songs, live streams), then enumerates all 18 concrete resources with their signatures. An agent can tell exactly what this tool fetches and distinguish it from siblings such as youtube, instagram, or tiktok_shop.

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?

It gives an explicit calling convention: pick a resource, pass that resource's parameters as top-level arguments, put extras in `params`, and pass `cursor` back unchanged. It also states the credit/caching policy and per-resource optionals. It does not address when to prefer this over overlapping generic siblings like get_profile, get_transcript, or search, which is a real routing gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.