Connect Windsurf to social media
Add PostEverywhere to Windsurf’s mcp_config.json and Cascade can turn the changelog you just wrote into release posts, scheduled to every account you have connected, without leaving the editor.
$0 due today, cancel anytime
Used by 2,831 happy customers
Read CHANGELOG.md for 1.9.0 and schedule an X post and a LinkedIn post about it for 9am tomorrow. Keep the X one under 250 characters.
Used PostEverywhere
list_accountsX and LinkedIn foundget_platform_rulesX length checkedcreate_post×2Scheduled 9:00 AM
Scheduled both for 9:00 AM tomorrow. The X post is 231 characters and links to the release notes; the LinkedIn post lists the three biggest changes.
Mon
9:00 AM
Tue
4:00 PM
Wed
11:00 AM
Setup in Windsurf
Add the PostEverywhere MCP server to Windsurf Cascade
Windsurf’s agent, Cascade, loads MCP servers from one JSON file. The PostEverywhere block is the same shape Cursor uses, but the file lives somewhere else and Windsurf only reads it when it starts. Allow five minutes.
- 1
Create an API key.
In PostEverywhere, connect your social accounts under Accounts, then create a key on the Developers page. It starts with pe_live_. Add the ai scope if you want Cascade to generate images.
- 2
Open mcp_config.json.
The file is ~/.codeium/windsurf/mcp_config.json. Open it from the MCP section of Windsurf’s settings, or directly in the editor. Create it if it does not exist yet.
- 3
Paste the PostEverywhere block.
This runs the open-source @posteverywhere/mcp server on your machine through npx, which needs Node.js 18 or newer. Swap in your real key. If the file already has other servers, add posteverywhere inside the same mcpServers object.
{ "mcpServers": { "posteverywhere": { "command": "npx", "args": ["-y", "@posteverywhere/mcp"], "env": { "POSTEVERYWHERE_API_KEY": "pe_live_YOUR_KEY" } } } } - 4
Fully restart Windsurf.
Windsurf reads the file at startup rather than watching it, so quit and reopen the app after saving. Then ask Cascade: “List my connected social accounts on PostEverywhere.” It calls list_accounts and shows each account and its status.
What you need to connect Windsurf to social media
Windsurf with Cascade, Node.js 18 or newer for the local server, a PostEverywhere plan or active 7-day trial, at least one connected social account and an API key. The key is passed to the server as an environment variable and is never sent to the model.
What you can ask Cascade
Windsurf prompts to schedule social media posts from Cascade
Cascade can read your project, which makes it good at announcing what you ship. Point it at the files that already describe the work, and name the action and the time.
“Read CHANGELOG.md for the release we just tagged and schedule X and LinkedIn posts for 9am tomorrow.”
Reads the file, checks each network’s limits, then calls create_post per account.
“Using docs/launch.md, write a Discord announcement for our community server and post it now.”
Publishes straight to the Discord channel you connected in PostEverywhere.
“Draft a week of developer tips from the README, one a day at 11am, as drafts only.”
Seven create_post calls with draft set to true. Nothing goes out until you schedule them.
“Import the screenshot at https://example.com/1.9-dashboard.png and attach it to tomorrow’s LinkedIn post.”
upload_media_from_url, then update_post. Local files need hosting first: there is no upload-from-disk tool.
“What is scheduled for this week, and did anything fail?”
Reads list_posts and get_post_results without leaving the editor.
Skills for Windsurf
Give Cascade in Windsurf the PostEverywhere skills
Cascade can call the PostEverywhere tools as soon as the MCP server is configured; the skills add the judgment. One npx command installs them, and Cascade then follows each skill step by step, for example checking the platform rules before it writes something too long for Bluesky or X.
Install for Any agent
For any other agent that reads skills, add them with one npx command.
npx skills add posteverywhere/claude-pluginSchedule social posts
Write, schedule or publish a post to any connected account.
Plan a content calendar
Plan a week or month of posts and fill your queue.
Repurpose content
Turn a blog post, transcript or newsletter into a set of posts.
Write an X thread or Article
Write an X thread or long-form X Article and post it.
Fix failed posts
Find posts that didn't go out, explain why, and fix them.
Connect social accounts
Add Instagram, TikTok, LinkedIn and the rest when a post needs one.
Prompts to try in Windsurf
See all skills and prompts“Write five short Bluesky tips from the docs folder and add them to my PostEverywhere queue so one goes out each weekday.”
Skill: Plan a content calendar“Which of my connected accounts need reconnecting? Check in PostEverywhere and give me the links to fix them.”
Skill: Connect social accounts“Turn the release notes in CHANGELOG.md into a Threads post and a LinkedIn post, and publish both now with PostEverywhere.”
Skill: Repurpose content
Your calendar
Release posts from Windsurf land in your calendar
Cascade writes and schedules from the editor, and the rest of your team sees the result in PostEverywhere. Each post appears in the calendar with its accounts, time and status, and anyone with access can edit it before it publishes. Marketing does not need Windsurf to see what engineering announced.
- Ship and announce together.
- Tag the release, then ask Cascade for the posts in the same session, while the details are fresh.
- Every network’s rules checked.
- get_platform_rules keeps the X version short and the LinkedIn version complete, before anything is scheduled.
- Visible to the whole team.
- The calendar shows Cascade’s posts next to everything scheduled from the web app or another assistant.
Mon
12
9:00 AM
Version 1.9 is out
Tue
13
4:00 PM
Community call link
Wed
14
11:00 AM
Dev tip: config profiles
Post from Windsurf to all top platforms from Cascade
Cascade can schedule to every account connected in PostEverywhere, including developer favourites like Bluesky, Discord and Telegram. Each network is published through its official API.
Instagram
Instagram Graph API
Facebook
Meta Graph API
X
X API v2
LinkedIn
LinkedIn Marketing API
TikTok
Content Posting API
Threads
Meta Threads API
Bluesky
AT Protocol
Telegram
Telegram Bot API
Discord
Discord webhooks
YouTube
YouTube Data API v3
Pinterest
Pinterest API
WordPress
WordPress REST API
Windsurf limits and troubleshooting for mcp_config.json
By platform
- Instagram64 sent
- LinkedIn48 sent
- X40 sent
- Facebook31 sent
- TikTok1 of 22 failed
- YouTube12 sent
Why posts failed
Grouped by cause, most common first
This video is outside the length TikTok allows for this account.
Example data
A trailing comma breaks everything. One stray comma makes the whole mcp_config.json invalid, and Windsurf fails quietly rather than pointing at the line. Paste the file into a JSON validator if no servers load at all.
Changes do nothing until a restart. Windsurf reads the file when it starts. Saving the file while Windsurf is open has no effect, so quit fully and reopen it after any change.
Test the server on its own. Run POSTEVERYWHERE_API_KEY=pe_live_YOUR_KEY npx -y @posteverywhere/mcp in a terminal. A working server starts and waits silently. Without a key it exits with “POSTEVERYWHERE_API_KEY environment variable is required”, which tells you the env block is wrong.
Unauthorized errors. Check the key starts with pe_live_, has no extra spaces or quotes, and has not been revoked on the Developers page.
Too many tools across servers. Cascade caps how many MCP tools it will load across all your servers. If you run several large servers, turn off tools you do not need in Windsurf’s MCP settings. Setting MCP_DISABLE_IMAGE_GENERATION in the env block hides generate_image if you never use it.
Keep the key out of git. mcp_config.json lives in your home folder, not your repo, which helps. Never copy it into a project folder you commit.
Why connect Windsurf
Windsurf mcp_config.json and the hosted server
POST /api/v1/posts
{ "content": "Launch week is here",
"account_ids": [101, 102, 103, 104, 105],
"scheduled_for": "2026-10-06T09:00:00Z" }- northwind.coffeedoneviews 1,204 · likes 87
- Northwind Coffeedoneimpressions 612
- northwindverifyingattempts 1
- northwindcoffeeuploadingattempts 1
- Northwind Coffeeretry_schedulednext_retry_at 09:05
One request, one result per accountExample data
There is also a hosted server at https://mcp.posteverywhere.ai, which needs no Node.js at all. Clients that accept a remote server with a custom header can use it with Authorization set to Bearer and your key.
In Windsurf that means a serverUrl entry with a headers object instead of command and args. The local block is the one we document for Windsurf because it works on every version.
Developers are often the people who know a release is going out and the last people who want to open a scheduler. Asking Cascade, in the session where you finished the work, removes that step. It also keeps announcements accurate: the model reads the actual changelog rather than a summary passed along a chat thread.
The same key works with the social media API, the Node SDK and the PostEverywhere CLI, so a CI job can post on every tag while Cascade handles the one-off announcements. Use bulk scheduling for a launch week planned in one go, and signed webhooks if a build should know when the post went live.
Every plan includes the MCP server and the API, from $9 a month. Compare plans.
$0 due today, cancel anytime
Connect another AI agent
Cascade and any other assistant can share one PostEverywhere account and one calendar.
Pricing
Simple pricing, unlimited posts on every plan
Every plan posts to all top platforms and includes the API and hosted MCP server for your AI agent.
7-day free trial on every plan. Card required, $0 due today, cancel anytime. Compare every plan
FAQ
Windsurf social media FAQ
Straight answers about plans, platforms and how scheduling works.
How do I add an MCP server to Windsurf?
Add an entry under mcpServers in ~/.codeium/windsurf/mcp_config.json, save, and fully restart Windsurf. For PostEverywhere, the entry runs npx with @posteverywhere/mcp and sets POSTEVERYWHERE_API_KEY in its env block.
Does Windsurf need an API key for PostEverywhere?
Yes. Windsurf authenticates with a PostEverywhere API key from the Developers page. The key goes to the MCP server process as an environment variable and is not shared with the model. You can revoke it any time.
Can Windsurf schedule posts for later?
Yes. Ask Cascade for a time (“tomorrow at 9am UK time”) and it schedules the post. You can also save drafts, publish immediately, or add a post to your posting queue to take the next free opening.
Where is the Windsurf MCP config file?
At ~/.codeium/windsurf/mcp_config.json in your home folder. Windsurf reads it at startup, so restart after editing.
Which platforms can Cascade post to?
Every account you connect in PostEverywhere: Instagram, TikTok, LinkedIn, Facebook, YouTube, X (Twitter), Threads, Pinterest, Bluesky, Telegram, Discord and WordPress.
Is there a free trial?
Every plan starts with a 7-day free trial. A card is required to start it, $0 is due today, and you can cancel anytime. There is no free plan, and the MCP server is on every plan.
Still have questions?
Contact us or browse the full FAQ.
$0 due today, cancel anytime
Announce what you ship, from Windsurf
One block in mcp_config.json, then ask Cascade.
$0 due today, cancel anytime
More for developers
Explore related features and guides to get the most out of PostEverywhere.
Developers
API keys, scopes, SDK and CLI.
PostEverywhere CLI
Post from your terminal or CI.
AI agents
Every assistant and the full MCP tool list.
Social media API
The REST API behind the MCP server.
Social media MCP servers
Which social tools run a real MCP server.
API rate limits
What a key can do per minute and per hour.

“This tool has truly made my content posting so much easier, I can't work without it. I can schedule my posts days in advance while working on other projects. Set it and forget it.”