Claude CodeClaude Code CLI

Schedule Social Posts from Claude Code

Developers live in Claude Code. Context switching to schedule a post breaks flow. PostFast's open-source MCP server runs inside Claude Code, so you schedule a LinkedIn thread while still writing code. No dashboard, no tab switching.

Last updated

Flat-lay developer workspace showing a laptop with code and a smartphone displaying a social media scheduling calendar, representing Claude Code and PostFast working together

What You Can Do

Schedule to 11 platforms from any Claude Code session
Natural-language commands with no API memorization
Claude drafts from your git commits, markdown files, or prompt history
Bulk-schedule up to 15 posts in a single command
Query your scheduled queue ("what's on TikTok this week?")
Edit or delete scheduled posts conversationally
Cross-post with per-platform copy + platform-specific controls
Pull post-performance metrics (impressions, reach, likes, comments, shares)

Quick Setup

Claude Code

Or just ask Claude Code to do it for you

Already have Claude Code open? Paste this prompt. It will fetch the correct config, write it to ~/.claude/.mcp.json, and remind you to set POSTFAST_API_KEY.

Add the PostFast MCP server to my Claude Code config. Use the instructions at https://postfa.st/api-integrations/claude-code. Edit ~/.claude/.mcp.json (create it if missing) and add a "postfast" server that runs "npx -y postfast-mcp" over stdio, reading POSTFAST_API_KEY from my environment. Then tell me how to get an API key from app.postfa.st and run "claude mcp list" to verify.

Prefer to do it by hand? Two paths. Add to ~/.claude/.mcp.json (global) or .mcp.json (project root):

{
  "mcpServers": {
    "postfast": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "postfast-mcp"],
      "env": {
        "POSTFAST_API_KEY": "your-api-key-here"
      }
    }
  }
}

API key: Log in to your PostFast dashboard, open the API section in the sidebar, and generate a key.

To keep the key out of committed dotfiles, export it in your shell profile instead and drop the env block from the JSON:

export POSTFAST_API_KEY="your-api-key-here"

Restart Claude Code, then run claude mcp list to confirm. Eleven tools become available.

Terminal output of 'claude mcp list' showing the postfast MCP server connected

Available Tools

Claude Code gets eleven tools the moment you add the config above.

ToolDescription
list_accountsList connected social media accounts
list_postsList posts with filters (platform, status, date range)
create_postsCreate and schedule posts — batch up to 15
delete_postDelete a post by ID
upload_mediaUpload a local file and get a media key (full flow)
get_upload_urlsGet signed URLs for a manual upload flow
list_pinterest_boardsList Pinterest boards for a connected account
list_youtube_playlistsList YouTube playlists for a connected account
list_gbp_locationsList Google Business Profile locations
generate_connect_linkGenerate a shareable link for external clients to connect their own accounts
get_post_analyticsImpressions, reach, likes, comments, shares for published posts

Example Prompts That Work

Claude Code CLI session scheduling a LinkedIn post for tomorrow using natural-language commands through the PostFast MCP server
Claude Code session: scheduling a LinkedIn post via natural language.
PostFast calendar view showing a LinkedIn post scheduled by Claude Code via MCP, with the LinkedIn preview visible
PostFast calendar: the resulting LinkedIn post scheduled by Claude Code.

Single-platform schedule

You: Schedule an Instagram carousel for tomorrow 5pm about
     the 3 biggest lessons from our Q1 rewrite.
Claude: [calls list_accounts → create_posts]
        Done. Scheduled on @yourhandle for Apr 15 5:00 PM.
        Caption drafted, 2 hashtag variants ready.

Bulk from git log

You: Read the last 7 days of commits and draft 5 LinkedIn posts,
     one per interesting change, Mon-Fri 9am next week.
Claude: [reads git log → drafts 5 posts → create_posts]
        5 posts queued Mon Apr 21 through Fri Apr 25.

Upload + cross-post

You: Upload ./reel-final.mp4 and post it as an Instagram Reel
     and TikTok for tonight 8pm with hashtags.
Claude: [upload_media → create_posts with instagramPublishType=REEL,
        tiktokPrivacy=PUBLIC, tiktokAllowComments=true]
        Uploaded, scheduled on both platforms.

Analytics pull

You: Which of last week's LinkedIn posts got the most engagement?
Claude: [get_post_analytics filtered LinkedIn + 7d]
        Your "4 MCP gotchas" post: 2,340 impressions, 47 reactions,
        8 comments.

Agency use case

You: Generate a connect link for the client that expires in 14 days
     and email it to them.
Claude: [generate_connect_link expiryDays=14 sendEmail=true]
        Link sent. They can connect their own socials; posts will
        publish to their accounts, stay in your workspace.

Platform-Specific Controls

The create_posts tool accepts a controls parameter so you can tune every platform's nuances from one Claude prompt. Ask Claude to “post this as a TikTok draft so I can edit the music later” and it passes tiktokIsDraft: true automatically.

PlatformControls
X (Twitter)xCommunityId, xQuoteTweetUrl, xRetweetUrl
InstagraminstagramPublishType (TIMELINE/STORY/REEL), instagramPostToGrid, instagramCollaborators
FacebookfacebookContentType (POST/REEL/STORY), facebookAllowComments, facebookPrivacy, facebookReelsCollaborators
TikToktiktokPrivacy, tiktokIsDraft, tiktokAllowComments, tiktokAllowDuet, tiktokAllowStitch, tiktokBrandOrganic, tiktokBrandContent, tiktokAutoAddMusic, tiktokIsAigc
YouTubeyoutubeTitle, youtubePrivacy, youtubeTags, youtubeCategoryId, youtubeIsShort, youtubeMadeForKids, youtubePlaylistId, youtubeThumbnailKey
PinterestpinterestBoardId (required), pinterestLink
LinkedInlinkedinAttachmentKey, linkedinAttachmentTitle
Google Business ProfilegbpLocationId (required), gbpTopicType, gbpCallToActionType, gbpCallToActionUrl, event + offer fields

Supported Platforms

Instagram (Posts, Stories, Reels, Carousels)
TikTok (Videos, Photos)
LinkedIn (Personal & Company Pages)
X / Twitter (Posts, Threads)
Facebook (Posts, Stories, Reels)
YouTube (Shorts, Videos, Custom Thumbnails)
Threads
BlueSky
Pinterest
Telegram (Channels & Groups)
Google Business Profile (Updates, Events, Offers)

Test It Works

POSTFAST_API_KEY=your-key npx @modelcontextprotocol/inspector npx postfast-mcp

Opens the MCP Inspector in your browser — dry-run every tool with a UI before sending real content through Claude.

MCP Inspector browser UI showing PostFast tools with the list_posts schema expanded

Example Workflows

Dev-log → LinkedIn

Claude reads git log --since="1 week ago", identifies commits with engagement angle, drafts 5 LinkedIn posts, schedules Mon-Fri 9am.

Blog → multi-platform drops

Point Claude at a blog markdown file. It generates platform-appropriate captions, uploads the hero image once via upload_media, cross-posts with per-platform copy tweaks.

Agency onboarding

Generate a connect link for a new client (generate_connect_link), wait for authorization, then schedule their first week from a content calendar spreadsheet.

Why Claude Code Specifically

Claude Code is where developers already work: commits, file context, shell access. Scheduling becomes part of the workflow, not a sidebar task. Claude Desktop supports the same MCP server without file/repo context. Cursor, Windsurf, Zed, Cline, VS Code (Copilot), and JetBrains IDEs all work via the same config. Claude Code's natural-language-first design fits posting workflows especially well.

Protocol-neutral walkthrough: PostFast MCP Server. Non-MCP automation: n8n, Zapier. Related reading: Build a posting automation with the PostFast API, Why busy founders automate social publishing, Best OpenClaw skills for social media marketing.

Frequently Asked Questions

Is this using my Claude Code subscription or API key?

The PostFast MCP server runs locally and talks to the PostFast API. Anthropic never sees your PostFast data. You choose whether your Claude Code session uses a subscription or API key. Note: per Anthropic's April 2026 policy, third-party harnesses using Claude Code OAuth subscriptions for automated or scripted workflows are prohibited. Use an API key for CI/CD or unattended automation; subscriptions are fine for interactive use.

What platforms are supported?

Facebook, Instagram, X, TikTok, LinkedIn, YouTube, BlueSky, Threads, Pinterest, Telegram, and Google Business Profile. Eleven total.

Does Claude Code see my PostFast data?

Only what you explicitly ask it to access. The MCP server exposes 11 tools; Claude only calls them when you ask. No background data flow.

Do I need to self-host anything?

No. npx -y postfast-mcp pulls the server on-demand. Node 18+ required.

Can I test without publishing real posts?

Yes. POSTFAST_API_KEY=your-key npx @modelcontextprotocol/inspector npx postfast-mcp opens the MCP Inspector UI where you can dry-run every tool.

What file formats can I upload?

JPEG, PNG, GIF, WebP, MP4, WebM, MOV. Use the upload_media tool for one-shot upload + key retrieval.

Does this work with ChatGPT or Perplexity?

Not yet via MCP. Integration pages for those are on the roadmap. Today: Claude Code, Claude Desktop, Cursor, VS Code (Copilot), Windsurf, JetBrains IDEs, Zed, Cline.

Where's the source code?

Open-source at github.com/peturgeorgievv-factory/postfast-mcp. MIT license.

Start scheduling from your terminal

7-day free trial. Generate an API key, drop the config into .mcp.json, and Claude Code can publish to 11 platforms in under 2 minutes.