Guide · checked 24 October 2026

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.

claude-code
# 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. 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. 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. 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. 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.

OptionWhat you sayWhat 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.

A folder in one message

“Schedule every clip in ./shorts as one TikTok and one YouTube Short a day at 9 am, starting Monday.”

Captions per network

“Post this launch video to TikTok, Reels and Shorts on Friday at 6 pm, with a different caption for each.”

Text posts

“Share our release notes on our LinkedIn company page and on X tomorrow at 10:00.”

First comment

“Add a first comment with the download link under each of these posts.”

Repurpose a long video

“Cut this 40-minute podcast into five shorts and schedule one a day.”

Edit and cancel

“Move Thursday’s posts to Friday and cancel the one about the webinar.”

Status and errors

“Which posts failed this week, and why?”

Analytics

“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.

CommandWhat it does
/upload-post:setupOne-time onboarding: checks the connection and gives you a link to connect your social accounts.
/upload-post:schedule-campaignSchedules one post across several networks, checking each network’s rules (aspect ratio, length, Facebook Pages, Pinterest boards).
/upload-post:posting-queueSets a weekly rhythm (slots, days, timezone) and shows what lands in the next slot.
/upload-post:repurpose-videoTranscribes a long video, picks the best moments, cuts them with FFmpeg and schedules the clips to TikTok, Reels and Shorts.
/upload-post:manage-commentsReads, replies to and moderates comments across networks, plus Google Business reviews.
/upload-post:autodm-setupBuilds an Instagram comment-to-DM funnel: a keyword triggers a private DM with up to 3 link buttons.
/upload-post:analyze-performancePulls analytics across your accounts and proposes concrete next posts.
/upload-post:whitelabel-connectCreates 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.

.mcp.json
{
  "mcpServers": {
    "upload-post": {
      "type": "http",
      "url": "https://mcp.upload-post.com/mcp",
      "headers": { "Authorization": "ApiKey ${UPLOAD_POST_API_KEY}" }
    }
  }
}
publish.sh
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.

RouteSetupAccounts and tokensScheduling
Upload-Post plugin or MCP serverTwo commands and one sign-inConnected once in Upload-Post; tokens refreshed for youDates, timezones and a weekly queue, stored server-side
Your own scripts against each network’s APIA developer app per network: TikTok’s app audit, Meta’s app review, LinkedIn’s partner programsYou store and refresh every tokenYou 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.