
Douyin_TikTok_Download_API MCP Server: Setup for Claude, Codex and Other Apps
Lets Claude, Codex and other assistants read Douyin, TikTok and Bilibili posts and comments, and download or transcribe videos, from a server you run.
This is the MCP part of a self-hosted data API for Douyin, TikTok and Bilibili. You run the project with Docker on your own machine, and your assistant connects to its /mcp/ address with an API key. There is no hosted version and no sign-up. The project says it can fetch posts, authors, comments, sounds and hashtags, and it can download videos and transcribe them.
Good for
- Researchers who want an assistant to pull posts, profiles and comments from Douyin, TikTok and Bilibili
- Developers who already run the project and want its API available to an assistant
- People who want downloaded videos transcribed on their own machine
Works in
12 should work
Tap an app to see how to set it up and any known problems.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Client does not support this transport.
Client does not support this transport.
Install Douyin_TikTok_Download_API MCP
Claude Code
- 1
Copy this prompt.
Add the Douyin_TikTok_Download_API MCP server to Claude Code. Run this command: claude mcp add --transport http dtk http://127.0.0.1:8000/mcp/ --header "Authorization: Bearer dtk_YOUR_API_KEY" Ask me for DTK_API_KEY and only put the values in that config, nowhere else. Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires A running instance of the project, An API key from its console.
From the vendor's docs. Source.
Tools
Works out what a link points at and fetches it
Takes a Douyin, TikTok or Bilibili link, or pasted share text with a link in it, follows short links, and returns the post, profile, sound or hashtag it points to.
Try: “Fetch the details of this TikTok link: https://vm.tiktok.com/abc123”
Network ·
parse_urlGets one post by its ID
Returns one video or image album with its author, stats, media links and tags. Ids are passed as text.
Try: “Get the stats for TikTok post 7100000000000000000.”
Network ·
get_videoGets one author profile
Returns an author profile by stable id. TikTok also accepts an @handle, while Douyin needs a profile link run through the link tool first.
Try: “Get the profile for the TikTok account @example.”
Network ·
get_userLists an author's posts, one page at a time
Returns a page of an author's posts with a cursor for the next page. Page sizes are capped at 50, and 35 on TikTok and 20 on Bilibili.
Try: “List the latest 20 posts from this Bilibili uploader.”
Network ·
list_user_postsLists top-level comments on a post
Returns one page of top-level comments, hottest first by default. Replies under a comment are not included.
Try: “Show the top comments on this Douyin video.”
Network ·
list_commentsShows how a post's or author's numbers changed
Reads counter snapshots your instance already stored, such as plays, likes and followers, over a period that defaults to 30 days. It makes no request to the platform and returns nothing for items your instance has never fetched.
Try: “How did the plays on this video grow over the last two weeks?”
Read ·
get_content_historyChecks the health of the instance's identities
Reports counts of the instance's identities by state and which endpoints are tripped, so the assistant can tell "try later" from "broken". It shows no cookies or credentials.
Try: “Is the identity pool healthy right now?”
Read ·
pool_statusSaves a post's video or images on your instance
Stores a post's media on the disk of the machine running your instance. It needs an API key with the media write scope and fetches the post first if the instance has not seen it.
Try: “Download the video from this TikTok link.”
Write ·
download_mediaTurns a downloaded video into text
Transcribes a video you downloaded earlier, using the speech-to-text service running beside your instance. It needs the transcription write scope and the transcriber profile running.
Try: “Transcribe the video we just downloaded.”
Runs code ·
transcribe_videoCollects a result that took too long
Returns the result of a request that was still running when the call timed out, so the assistant does not repeat the work. The wait defaults to 60 seconds.
Try: “Get the result of task 3f6c.”
Read ·
get_task_result
From the official docs
Permissions
medium risk · 3 things to watch
Medium risk
The assistant can read public data from three platforms and save videos to the disk of the machine running the project. Give its API key only the scopes you need, which limits it to reading, and check each platform's rules and your local law before collecting data.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
It saves files to your server's disk
The download tool stores media on the machine running the project. Use a key without the media write scope if you do not want that. github.com
It scrapes sites that restrict automated access
Platforms can block or rate-limit the instance, and scraping may breach their terms. Check the rules before bulk use. github.com
The endpoint accepts an API key and nothing else
Claude Desktop needs a bridge because its connector screen uses OAuth. Keep the key out of shared config files. github.com
Security advisories
No published security advisories for the MCP server as of Nov 1, 2026.
1 other advisory is about the wider Douyin_TikTok_Download_API project, not this MCP server. See them on GitHub
Technical details
| Turning on read-only | No read-only switch is documented. The two write tools only run if the API key has the media write or transcription write scope. |
|---|---|
| Talks to | Douyin, TikTok and Bilibili (through your instance) |
| Sign-in and keys | An API key created in the console, sent in an Authorization or X-API-Key header. The tools never read or export the identities and cookies the instance uses. |
| Scopes |
|
Questions
Is this an official TikTok or Douyin tool?
No. It is a community project (Evil0ctal/Douyin_TikTok_Download_API) that fetches public data from Douyin, TikTok and Bilibili. It is not made by or affiliated with those platforms, and the README says to respect their terms and the law.
What is the Douyin TikTok Download API MCP server URL?
There is no shared URL, because you run your own copy. With the default Docker setup it is http://127.0.0.1:8000/mcp/ on your machine, and the trailing slash matters.
Do I need to host anything?
Yes. The project runs with Docker Compose on your own machine, and your assistant connects to that instance. There is no hosted service.
Does it need an API key?
Yes. Create a key in the console under Access, then API keys, and send it with each request. Give it only the scopes you need, such as one platform read scope.
Which clients does it work with?
The docs give steps for Claude Code, Claude Desktop through a bridge, Codex CLI and Cherry Studio. Any client that supports streamable HTTP with a header should work.
Can it download TikTok videos without a watermark?
The project README says its downloader saves videos and image albums without a watermark. In the MCP tools, saving media is a separate tool that needs its own key scope.
Can it transcribe videos?
Yes, for videos you have downloaded. It needs the project's transcriber profile running, and the speech-to-text runs on your own machine.
Is it free?
Yes. The project is open source under Apache-2.0 and the README says it has no sign-up or quota.
Information
updated Nov 2, 2026
- Publisher
- Community
- Transport
- Streamable HTTP
- Auth
- API key
- License
- Apache-2.0
- Last commit
- Oct 27, 2026
- Open issues
- 5
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.