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

What You Can Do
Quick Setup
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.
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.

Available Tools
Claude Code gets eleven tools the moment you add the config above.
| Tool | Description |
|---|---|
list_accounts | List connected social media accounts |
list_posts | List posts with filters (platform, status, date range) |
create_posts | Create and schedule posts — batch up to 15 |
delete_post | Delete a post by ID |
upload_media | Upload a local file and get a media key (full flow) |
get_upload_urls | Get signed URLs for a manual upload flow |
list_pinterest_boards | List Pinterest boards for a connected account |
list_youtube_playlists | List YouTube playlists for a connected account |
list_gbp_locations | List Google Business Profile locations |
generate_connect_link | Generate a shareable link for external clients to connect their own accounts |
get_post_analytics | Impressions, reach, likes, comments, shares for published posts |
Example Prompts That Work


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.
| Platform | Controls |
|---|---|
| X (Twitter) | xCommunityId, xQuoteTweetUrl, xRetweetUrl |
| instagramPublishType (TIMELINE/STORY/REEL), instagramPostToGrid, instagramCollaborators | |
| facebookContentType (POST/REEL/STORY), facebookAllowComments, facebookPrivacy, facebookReelsCollaborators | |
| TikTok | tiktokPrivacy, tiktokIsDraft, tiktokAllowComments, tiktokAllowDuet, tiktokAllowStitch, tiktokBrandOrganic, tiktokBrandContent, tiktokAutoAddMusic, tiktokIsAigc |
| YouTube | youtubeTitle, youtubePrivacy, youtubeTags, youtubeCategoryId, youtubeIsShort, youtubeMadeForKids, youtubePlaylistId, youtubeThumbnailKey |
| pinterestBoardId (required), pinterestLink | |
| linkedinAttachmentKey, linkedinAttachmentTitle | |
| Google Business Profile | gbpLocationId (required), gbpTopicType, gbpCallToActionType, gbpCallToActionUrl, event + offer fields |
Supported Platforms
Test It Works
Opens the MCP Inspector in your browser — dry-run every tool with a UI before sending real content through Claude.

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.