An MCP server that uploads one video to TikTok and YouTube Shorts
https://postwire.io/api/mcp) lets Claude, Cursor or any MCP client publish one video to TikTok, YouTube (Shorts) and Instagram (Reels) through those networks' approved APIs. Because chat attachments never reach an MCP server, the agent calls create_upload_link, you open the link on the device with the file (up to 1 GB), and the agent passes the resulting media_url to post_to_social — with a separate caption, YouTube title and tags written by generate_posts.The TikTok, Google (youtube.upload) and Meta approvals are PostWire's, so you don't need your own developer app or audit. A public video URL works too: pass it straight as video_url.
Updated . Written from PostWire's own code; vendor prices read on Oct 1, 2026. Live networks: TikTok, Instagram, YouTube, LinkedIn (personal profiles), Facebook Pages, Bluesky, Mastodon, Telegram, Discord, and X on paid plans.
Step by step
- Add the server to your client
Hosted (Streamable HTTP, OAuth 2.1 sign-in or an API key):
https://postwire.io/api/mcp. In Claude, add PostWire from the connector directory; in Claude Code:claude mcp add --transport http postwire https://postwire.io/api/mcp. Configs for Cursor, VS Code and Windsurf: MCP client configs. - Connect TikTok and YouTube
Ask the agent to connect them:
create_connect_linkreturns a one-hour link per network. YouTube signs in with Google for the channel; TikTok with TikTok. - Get the video to PostWire
create_upload_linkreturns a single-use link valid for 24 hours. Open it on the phone or laptop that has the video and upload (up to 1 GB). Thenget_uploaded_filereturns itsmedia_url(kept 30 days). Already hosted? Use its public https URL instead. - Write the captions
generate_postswith{"prompt":"…","platforms":["tiktok","youtube","instagram"],"media_url":"…"}returns a TikTok caption, a YouTube title (≤100 characters), description and tags, and an Instagram caption. Nothing is published yet. - Publish after approval
Call post_to_social with the approved drafts and the video:
{ "name": "post_to_social", "arguments": { "platforms": ["tiktok", "youtube", "instagram"], "per_platform": { "tiktok": {"text": "…"}, "youtube": {"text": "…", "title": "…", "tags": ["…"]}, "instagram": {"text": "…"} }, "video_url": "https://postwire.io/m/…", "privacy": "public" } } - Check processing
TikTok and YouTube process video after upload;
get_post_statuswith the id from the result says when it is live. Or queue it withschedule_postand arun_at.
Set privacy explicitly: through the API, TikTok posts with no privacy value are published as private (SELF_ONLY) and YouTube uploads default to private. YouTube categorizes a square or vertical video of up to three minutes as a Short.
MCP servers that publish video to TikTok and YouTube
From each vendor's own page, read on Oct 1, 2026 (prices) and Sept 26, 2026 (MCP details).
| Server | Hosted MCP sign-in | Video upload route | Free plan with TikTok | Writes per-network captions |
|---|---|---|---|---|
| PostWire | OAuth 2.1 or API key | Upload link (up to 1 GB, from any device) or a public URL | Yes | Yes — generate_posts |
| Upload-Post | API key or OAuth | Not listed | No | Partly, from a video (our Sept 26 review) |
| Blotato | OAuth or key | Not listed | No | On request in its chat (our Sept 26 review) |
| Ayrshare | Static Bearer API key | Not listed | No | No — you send the text (our Sept 26 review) |
Free plans read on each vendor's pricing page on Oct 1, 2026; MCP sign-in and caption-writing cells from our Sept 26, 2026 review of their docs. Monthly billing in USD unless noted. "Not listed" means we could not find it on their page, not that it is missing.
Where PostWire is ahead
- A free plan with TikTok. Upload-Post, Blotato and Ayrshare have no free plan that includes TikTok.
- Upload from any device:
create_upload_linkreturns a link for the phone or laptop that has the video (up to 1 GB), andget_uploaded_filehands it topost_to_social. - Sign in with OAuth 2.1, or use an API key. Ayrshare's server takes a static Bearer key only.
- Captions written per network by
generate_posts. Upload-Post partly, from a video; Blotato on request in its chat; with Ayrshare you send the text.
- Upload-Post plans and free-plan networks (their llms-full.txt): www.upload-post.com/llms-full.txt
- Blotato pricing: www.blotato.com/pricing
- Ayrshare pricing: www.ayrshare.com/pricing/
Questions people ask
Is there an MCP server that uploads videos to TikTok and YouTube Shorts?
Yes. PostWire's hosted MCP server (https://postwire.io/api/mcp) publishes a video to TikTok, YouTube and Instagram in one post_to_social call, after create_upload_link gets the file to it (up to 1 GB) or with a public video URL.
Why can't the agent use the video I attached in the chat?
MCP servers don't receive chat attachments. The upload link (create_upload_link) is the way to hand a file from your device to the server; the agent then reads it with get_uploaded_file.
Do I need my own TikTok or Google developer app?
No. You connect your accounts to PostWire's approved apps (TikTok Direct Post audit passed July 7, 2026; Google verification of youtube.upload July 1, 2026).
Will it post publicly?
If you set privacy to public. TikTok posts without a privacy value are private, and YouTube uploads default to private, so the agent should ask you and pass "privacy": "public".
Which tools does PostWire's MCP server have?
21 on the hosted server (its tools/list on Oct 6, 2026), among them generate_posts, post_to_social, schedule_post, plan_week, bulk_schedule, create_recurring_post, create_upload_link, get_uploaded_file, make_video_from_text, create_connect_link, get_post_status and get_post_performance. The local npm package (npx -y postwire-mcp) has 5.
Try it on one business, free.
The free plan is 1 business, 20 posts a month, 5 AI drafts a day (about 20 a month) and 2 networks per post — every network connects free, no card, no time limit. Paid plans start at $9 a month and have a 14-day refund; Pro can be tried free for 7 days, with a card at checkout and nothing charged that day.