← EasyDrop

EasyDrop MCP server

Twelve tools on one remote endpoint, so an agent can publish video to your TikTok accounts and read back what happened. Publishing goes through TikTok’s official Content Posting API. Nothing here automates a browser and nothing signs in as you.

Endpoint and authentication

The server is hosted, not a package you install: there is nothing to keep running on a laptop, which matters when the caller is a workflow on a server rather than a desktop app.

Every request carries an EasyDrop API key as a Bearer token:

Authorization: Bearer YOUR_API_KEY

Keys are issued and revoked in the dashboard, and your endpoint URL is shown there too. Revoking a key stops the agent without touching the social accounts themselves, because the agent never holds a TikTok token: those authorisations stay on our side, bound to the accounts you approved on TikTok’s own consent screen.

How a video gets in

As a URL the server fetches. Tool arguments are JSON, and a video does not fit in JSON: base64 inflates the file by about a third and makes both sides hold all of it in memory at once. A URL also matches what the caller already has, since an agent that just rendered or stored a clip is holding a link rather than the bytes.

Every path that can ingest a file enforces a size cap as the bytes arrive, rather than trusting a declared length.

A publish returns a job, not a post

TikTok publishes per-account limits on posting requests, and an agent will happily fire twenty calls in a second. So the publish tools queue rather than forward: the call returns an ingest id immediately, the queue paces each account separately, and get_upload_status reports what became of it.

The rules the API imposes apply to agent calls exactly as they do to people. A privacy level has to be chosen for every post, interaction settings are never enabled on your behalf, and music usage has to be confirmed. A call that omits them is rejected rather than published faster.

The tools

Accounts

list_accounts—
Every connected account: id, display name, platform, whether it can publish right now. The ids returned here are what every publish tool takes.
get_account_health—
Whether each account is still authorised, and the reason if it is not. Worth calling before a batch rather than discovering a dead grant halfway through.

Publishing

publish_videovideoUrl, socialAccountId, title, privacyLevel, musicConfirmed
One video to one TikTok account. Every required argument is required by TikTok, not by us: a privacy level has to be chosen explicitly, and music usage has to be confirmed.
publish_video_to_manyvideoUrl, socialAccountIds[], title, privacyLevel, musicConfirmed
The same video to several accounts in one call. A repeated id counts once. Each account becomes its own job, so one failure does not take the others with it.
publish_existing_videovideoId, socialAccountIds[], …
Publish a file already in storage, from list_videos, without uploading it again.

Following a job

get_upload_statusingestId
Where a publish has got to: pending, queued, uploading, processing, published or failed, plus the reason and the permalink once there is one. A pending upload can carry holdReason and holdUntil — it is waiting for a free TikTok slot and needs no retry.
list_uploads—
Publish history across every surface, newest first — the web app, the REST API and MCP all land in the same list. Held uploads show holdReason and holdUntil.
retry_uploadjobId
Send a failed job back to pending. A failure that came from moderation will fail again unless the video changes.
cancel_uploadjobId
Cancel a job that has not gone out yet.

Reading back

get_account_analyticssocialAccountId
Daily profile snapshots: followers, following, likes, video count.
get_post_metrics—
Engagement counters for published posts: views, likes, comments, shares.
list_videos—
Files already in storage, for publish_existing_video.

Getting a key

Create an account, authorise the TikTok accounts you want to publish to, and issue an API key. The dashboard shows your endpoint URL next to the key.

Free while in beta. No card.

Questions before you wire it up

How do I connect an MCP client to EasyDrop?

Point the client at the EasyDrop MCP endpoint and send an EasyDrop API key as a Bearer token. The server is remote and hosted, so there is nothing to install locally and no process to keep running. Your exact endpoint URL is shown in the dashboard once you have an account.

What authentication does the MCP server use?

An EasyDrop API key on every request, sent as an Authorization Bearer header. Keys are created and revoked in the dashboard. The agent never holds a TikTok token: the social authorisations stay on our side, bound to the accounts you approved on TikTok's own consent screen.

How does a video reach the server?

As a URL the server fetches, not as bytes in the tool call. Tool arguments are JSON, and base64 inflates a file by about a third while forcing both sides to hold it in memory. Every ingest path enforces a size cap as the bytes arrive.

Does a publish tool return the finished post?

No, it returns an ingest id. Publishing is queued and paced per account, because TikTok's API limits posting requests per authorised account. Pass that id to get_upload_status to follow the job to published or failed.

There is also a REST API, documented in the dashboard alongside the MCP endpoint.

EasyDrop MCP server: tools, endpoint and authentication — EasyDrop