How to schedule social media posts with Claude Code Install once, then schedule from the terminal
Claude Code cannot reach TikTok, Instagram or LinkedIn on its own: it needs an MCP server that holds your accounts. Install the Upload-Post plugin or add its server, sign in once with /mcp, and ask Claude Code to publish now, at a date and time, or into a weekly posting queue.
# The Upload-Post plugin: MCP server + slash commands
/plugin marketplace add Upload-Post/upload-post-plugin
/plugin install upload-post@upload-post
# Or only the MCP server
claude mcp add --transport http upload-post \
https://mcp.upload-post.com/mcp
# Then sign in once: /mcp > upload-post > Authenticate Schedule posts from Claude Code in four steps
About five minutes. Works the same on macOS, Linux and Windows.
- 1
Create a free Upload-Post account and connect your accounts
Sign up at app.upload-post.com (no card) and connect TikTok, Instagram, YouTube, LinkedIn, X or any other network from the dashboard. Each network uses its own login, so nobody types a password into Claude Code.
- 2
Install the plugin or add the MCP server
In Claude Code, add the Upload-Post marketplace and install the plugin: it brings the hosted MCP server plus slash commands for scheduling, the posting queue and repurposing video. If you only want the tools, run claude mcp add with the server URL instead.
- 3
Sign in once
Run /mcp, pick upload-post and choose Authenticate. A browser tab opens, you approve, and Claude Code keeps the token. There is no API key to copy.
- 4
Ask Claude Code to schedule
Say what, where and when: “Schedule ./clips/launch.mp4 to TikTok and Instagram Reels for Friday at 6 pm New York time.” Claude Code uploads the file, sets the time and confirms the scheduled post. Or run /upload-post:schedule-campaign.
Three ways to time a post
Pick one per post, or mix them. Scheduled posts stay editable until they go out.
| Option | What you say | What happens |
|---|---|---|
| A date and time | “Post this to LinkedIn on Monday at 9:00 Madrid time.” | The post gets a scheduled date and an IANA timezone, and Upload-Post publishes it then. |
| The posting queue | “Set my queue to 10:00 and 18:00 on weekdays, then queue these five clips.” | Weekly slots are saved per profile; each queued post takes the next free slot. |
| Right now | “Publish this to X and Threads.” | It goes out at once and Claude Code checks the result with the request ID. |
To change plans later, ask Claude Code to list, move or cancel scheduled posts. They also appear in the Upload-Post calendar.
Post the files on your disk
This is where Claude Code beats a chat window. Claude.ai cannot open files on your computer; Claude Code can. For a local video it stages the file with the server’s upload tools (create_media_upload, then complete_media_upload) and schedules the uploaded copy, so you can point it at a folder of rendered clips and schedule a week in one message.
Staged files are deleted after 24 hours; the scheduled post keeps its own copy. Public links (S3, R2, Google Drive shares) work too, without staging.
What you can ask Claude Code to do
Plain English in the terminal. Each line maps to tools the Upload-Post server exposes.
“Schedule every clip in ./shorts as one TikTok and one YouTube Short a day at 9 am, starting Monday.”
“Post this launch video to TikTok, Reels and Shorts on Friday at 6 pm, with a different caption for each.”
“Share our release notes on our LinkedIn company page and on X tomorrow at 10:00.”
“Add a first comment with the download link under each of these posts.”
“Cut this 40-minute podcast into five shorts and schedule one a day.”
“Move Thursday’s posts to Friday and cancel the one about the webinar.”
“Which posts failed this week, and why?”
“What did best on Instagram and TikTok last month? Schedule two more like it.”
Slash commands the plugin adds
Shortcuts for the common jobs. You can also just describe what you want.
| Command | What it does |
|---|---|
/upload-post:setup | One-time onboarding: checks the connection and gives you a link to connect your social accounts. |
/upload-post:schedule-campaign | Schedules one post across several networks, checking each network’s rules (aspect ratio, length, Facebook Pages, Pinterest boards). |
/upload-post:posting-queue | Sets a weekly rhythm (slots, days, timezone) and shows what lands in the next slot. |
/upload-post:repurpose-video | Transcribes a long video, picks the best moments, cuts them with FFmpeg and schedules the clips to TikTok, Reels and Shorts. |
/upload-post:manage-comments | Reads, replies to and moderates comments across networks, plus Google Business reviews. |
/upload-post:autodm-setup | Builds an Instagram comment-to-DM funnel: a keyword triggers a private DM with up to 3 link buttons. |
/upload-post:analyze-performance | Pulls analytics across your accounts and proposes concrete next posts. |
/upload-post:whitelabel-connect | Creates a connection link so a client connects their own accounts to a profile in your workspace. |
More about the plugin, its agents and the full tool list: Upload-Post plugin for Claude Code.
Run it from cron or GitHub Actions
Claude Code also runs without a chat. A nightly job or a release workflow can call claude -p and publish with no one at the keyboard. On a server, swap the browser sign-in for an API key sent in the Authorization header, and keep the key in a secret.
For posts at a fixed time you do not need a job at all: schedule them once and Upload-Post publishes them, even with your laptop closed.
{
"mcpServers": {
"upload-post": {
"type": "http",
"url": "https://mcp.upload-post.com/mcp",
"headers": { "Authorization": "ApiKey ${UPLOAD_POST_API_KEY}" }
}
}
} claude -p "Publish ./out/today.mp4 to TikTok and YouTube Shorts \
with the caption in ./out/today.txt" \
--mcp-config .mcp.json --allowedTools "mcp__upload-post" Plugin or your own scripts
Claude Code could also write scripts against each network’s API. This is what that takes.
| Route | Setup | Accounts and tokens | Scheduling |
|---|---|---|---|
| Upload-Post plugin or MCP server | Two commands and one sign-in | Connected once in Upload-Post; tokens refreshed for you | Dates, timezones and a weekly queue, stored server-side |
| Your own scripts against each network’s API | A developer app per network: TikTok’s app audit, Meta’s app review, LinkedIn’s partner programs | You store and refresh every token | You run and monitor a job for every post |
Comparing MCP servers? See the best social media MCP servers.
What Claude Code can and cannot touch
Worth knowing before you connect a brand account.
No passwords anywhere
Each network is connected with its own login in Upload-Post, and Claude Code signs in to Upload-Post with OAuth 2.1 and PKCE. It never sees a social media password or token.
Only documented tools
Claude Code can call the server’s tools (publish, schedule, analytics, comments, DMs) and nothing else, and it asks before each one unless you allow it.
Tokens stored encrypted
The social connections live in Upload-Post, encrypted at rest, and are refreshed before they expire.
Revoke in one click
Remove Claude Code’s access from AI Assistants (MCP) in the Upload-Post dashboard, or delete the API key, at any time.
When Claude Code will not post
The problems people hit first, and the fix for each.
Claude Code has no upload-post tools
The server is added but not signed in. Run /mcp, pick upload-post and choose Authenticate.
It cannot read your video
It sent a local path to the hosted server. Ask it to stage the file first (create_media_upload, then complete_media_upload) or give it a public HTTPS link.
The post went to the wrong account
Name the profile in your request, for example “under profile marketing”. Upload-Post groups accounts in profiles, and Claude Code checks the list before publishing.
A scheduled post did not go out
Usually the network asked you to log in again. Ask Claude Code for the status: it returns the network’s reason and a link to reconnect in one click.
The time is off by a few hours
Say the timezone (“9:00 Madrid time”) or set it once on the posting queue. Claude Code passes it as an IANA name such as Europe/Madrid.
A CI run fails with 401
Send the API key as Authorization: ApiKey <key>, not Bearer, and keep it in a secret rather than in the repository.
Claude Code and social media: frequently asked questions
Can Claude Code schedule social media posts?
Yes, through an MCP server that holds your social accounts. With Upload-Post you install its plugin or run claude mcp add with https://mcp.upload-post.com/mcp, sign in once with /mcp, and ask Claude Code to publish now, at a set time or through a weekly posting queue.
Does Claude Code have a built-in social media scheduler?
No. Claude Code has no connection of its own to TikTok, Instagram or LinkedIn. A scheduler’s MCP server provides the publishing tools and keeps the posts until their time; Claude Code decides what to post and calls those tools.
Can Claude Code post videos from my computer?
Yes. Unlike Claude.ai, Claude Code can read local files: it stages each video with Upload-Post’s media upload tools and schedules the uploaded copy. Staged files are deleted after 24 hours.
Which networks can Claude Code post to?
TikTok, Instagram, YouTube, LinkedIn (profiles and company pages), X, Facebook, Threads, Pinterest, Bluesky, Google Business Profile, Telegram, Discord, Mastodon and WordPress, all with the same tools.
Is it free?
You can start free. Upload-Post’s Free plan includes 10 uploads a month with no card, and the plugin and MCP server cost nothing extra. Claude Code itself runs on your Claude plan or API key.
Can Claude Code post on a schedule without me, from cron or GitHub Actions?
Yes. Run claude -p in the job and give the MCP server an API key in the Authorization header (ApiKey followed by the key) instead of the browser sign-in. For posts at a fixed time you do not need a job at all: schedule them once and Upload-Post publishes them.
How do I see, change or cancel scheduled posts?
Ask Claude Code: “list my scheduled posts for next week”, “move Thursday’s post to 10:00” or “cancel the webinar post”. The same posts appear in the Upload-Post calendar.
Does the same setup work in Claude.ai, Cursor or Codex?
Yes. The same server works as a connector in Claude.ai and the desktop app, and as an MCP server in Cursor, Codex and other MCP clients. Your accounts, profiles and scheduled posts are shared.
Can Claude Code manage several brands or clients?
Yes. Each Upload-Post profile holds one account per network, so you create a profile per brand or client and name it in your request.
Schedule your first post from Claude Code today
Free plan, no card. One sign-in covers TikTok, Instagram, YouTube, LinkedIn, X and more.