How to Use PostEverywhere with Claude Code (MCP Setup Guide)


You finish writing a feature in Claude Code, ship it, and want to announce it across your social accounts. Instead of context-switching to a browser, opening five tabs, and pasting the same copy into each platform, you type one prompt:
"Draft a launch post about the new keyword filtering feature, generate a matching image, and schedule it for 9am EST tomorrow across LinkedIn, X, and Threads."
Claude reads your repo, drafts platform-specific copy, calls the PostEverywhere AI image generator, and queues the post. You hit y to approve. Done in 30 seconds, never left the terminal.
That is what the PostEverywhere MCP server makes possible. This guide walks through setup, the 11 tools Claude gets access to, five real prompts you can use today, and when to choose MCP over the Node SDK.
Edited by Jamie Partridge, Founder. Reviewed 26 April 2026.
Table of Contents
- What is the PostEverywhere MCP
- Setup in Three Steps
- Five Prompts to Try Today
- The 11 MCP Tools Explained
- MCP vs the Node SDK: Which to Pick
- How It Compares to Other Social MCPs
- Working with Cursor, Windsurf, and Other Clients
- FAQs
What is the PostEverywhere MCP
The Model Context Protocol (MCP) is a spec from Anthropic that lets AI clients (Claude Desktop, Claude Code, Cursor, Windsurf, Zed) talk to external systems through a standardised interface. The PostEverywhere MCP server is a thin wrapper around our REST API: it exposes 11 tools that Claude can call to manage social accounts, schedule posts, upload media, and check publishing results. You install it once, point Claude at it with an API key, and Claude can act on your social media without you writing any code.
The package is published as @posteverywhere/mcp on npm, with source code open on GitHub. It runs locally on your machine via npx, so there is no separate server to deploy, no extra hosting, no auth dance. Your API key stays in your config file. Claude calls tools, the MCP server calls our API, and the result comes back as structured data Claude can reason about.
Setup in Three Steps
Step 1: Get a PostEverywhere API key
Sign up at the PostEverywhere pricing page. Every plan from Starter ($19/mo) up includes API access. The 7-day free trial gives you full access to test, including 50 AI credits if you want to try image generation.
Once your account is active, head to the developer dashboard and create a new API key. The format is pe_live_ followed by 32 hex characters. If you plan to use the AI image generator, tick the optional ai scope when creating the key. Copy the key somewhere safe. You only see it once.
# Sample key shape — yours will be different
PE_API_KEY=pe_live_a1b2c3d4e5f67890abcdef1234567890
Step 2: Add the MCP server to your Claude config
Claude Code reads MCP configuration from .claude/mcp.json in your project root, or globally from ~/.claude/mcp.json. Claude Desktop reads from claude_desktop_config.json (location varies by OS — see the MCP quickstart).
Add the PostEverywhere server to the mcpServers block:
{
"mcpServers": {
"posteverywhere": {
"command": "npx",
"args": ["-y", "@posteverywhere/mcp"],
"env": {
"POSTEVERYWHERE_API_KEY": "pe_live_your_key_here"
}
}
}
}
That is the entire config. The npx -y flag pulls the latest version automatically — no manual install step. The env block keeps your API key out of any shared MCP config; treat it like any other secret. If you commit the file to a repo, swap the literal key for ${env:POSTEVERYWHERE_API_KEY} and load the value from your shell environment.
Step 3: Restart Claude and start prompting
Claude Code picks up MCP servers when it starts, so quit and reopen. You can confirm it loaded by asking Claude list the MCP tools you have access to from posteverywhere. If you see the 11 tools listed (covered below), you are connected.
A first sanity check prompt:
"Show me my connected social accounts on PostEverywhere."
Claude calls list_accounts, the MCP server hits GET /accounts, and you get back a structured list of the platforms you have linked. That round trip should take under a second on a normal connection.
Five Prompts to Try Today
Once it is wired up, here is what people actually use it for.
1. Audit connected accounts.
"Show me my connected social accounts and tell me which platforms I have not posted to in the last 14 days."
Claude calls list_accounts and list_posts with a date filter, then cross-references. You get a list like "Threads: last post 22 days ago, LinkedIn: last post 4 days ago".
2. Schedule a multi-platform post.
"Schedule 'Hello world from Claude!' to all my accounts for tomorrow at 9am EST."
Claude calls list_accounts to get account IDs, then create_post with account_ids populated and scheduled_for set to the right ISO 8601 timestamp in UTC. You see the response in your terminal: post ID, status scheduled, and the exact UTC time that maps to 9am EST.
3. Generate an image and post it.
"Generate an AI image of a sunset over Tokyo at golden hour, then post it to my Instagram and Threads accounts with the caption 'Tokyo magic hour'."
Claude calls the AI image generation endpoint (requires the ai scope on your key), waits for the URL, then creates a post with the returned media_id. This is the fastest way to get a finished post live without ever opening a design tool. The same flow runs through the AI image generator in our dashboard, but here Claude orchestrates it.
4. Cancel a scheduled post.
"I scheduled a post about the product update earlier today but the launch is delayed. Find that post and delete it."
Claude calls list_posts filtered by recent scheduling, identifies the right one by content match, and calls delete_post after confirming with you. This is the kind of task that takes 30 seconds in the dashboard but feels almost instant in chat.
5. Retry a failed publish.
"Did any of my posts fail to publish today? If yes, retry them."
Claude calls list_posts with a status filter, finds anything in failed state, and calls retry_post on each. If a post failed because of a token expiry (Instagram does this annoyingly often), the retry will surface the auth error and you can reconnect the account from the dashboard.
You will probably build your own prompts. The pattern is the same: state the goal, let Claude pick the tools, approve the actions.
The 11 MCP Tools Explained
These are the exact tools the PostEverywhere MCP server exposes. Each one maps to one or more endpoints on the underlying REST API.
| Tool | What it does | Underlying endpoint |
|---|---|---|
list_accounts |
List all connected social accounts | GET /accounts |
get_account |
Fetch one account by ID | GET /accounts/{id} |
list_posts |
List posts (filter by status, date) | GET /posts |
create_post |
Schedule or publish a new post | POST /posts |
get_post |
Fetch one post by ID | GET /posts/{id} |
get_post_results |
Get per-platform publishing results | GET /posts/{id}/results |
delete_post |
Delete a scheduled or published post | DELETE /posts/{id} |
retry_post |
Retry a failed post | POST /posts/{id}/retry |
list_media |
List uploaded media | GET /media |
get_media |
Fetch one media item by ID | GET /media/{id} |
delete_media |
Delete uploaded media | DELETE /media/{id} |
The MCP intentionally does not expose every endpoint. The two-step media upload (POST /media/upload then POST /media/{id}/complete) and the AI image generation endpoint are reachable through create_post flows but not as standalone tools, because letting an LLM trigger paid AI generation off-script can chew through credits fast. If you need raw access to those, use the Node SDK directly. Source on GitHub.
MCP vs the Node SDK: Which to Pick
Both ship from the same repo, both call the same API. The split is about who is calling them.
Pick the MCP when the work is conversational and one-off. You want Claude to plan a week of content, audit a connected account, generate an image and post it, delete a scheduled mistake. The flow has decisions in it ("which platform should I post to?") that benefit from an LLM in the loop. The MCP server is the right interface here because the LLM is already there.
Pick the Node SDK when the work runs on a schedule and the decisions are deterministic. A daily cron job that scrapes new content from your blog and reposts it. A webhook handler that listens for product updates and announces them. A multi-tenant agency tool that posts on behalf of 50 clients. You do not need an LLM at execution time, you just need typed API calls.
The cleanest pattern for most teams is to use both: the MCP for ad-hoc work in Claude Code or Claude Desktop, the SDK for production automation. Our guide on building an AI social media agent walks through the SDK side end-to-end.
Get the MCP working in 5 minutes. Sign up, copy your API key, paste the JSON config into Claude. Start your free trial.
What the PostEverywhere MCP gives you
One install, eight platforms (Instagram, LinkedIn, X, Facebook, Threads, TikTok, YouTube, Pinterest), cross-posting in a single create_post call, AI image generation built in, plus the same scheduling calendar and analytics you would use in the dashboard. Your Claude or Cursor agent gets typed tools with validated arguments, so it never has to guess endpoint names or field shapes.
It runs locally via npx, reads your API key from your config, and uses it as a bearer token for each request to PostEverywhere. The key never touches Anthropic's servers. Costs $19/mo (Starter), included on every plan including the 7-day free trial.
If you only need to post to one or two platforms, a single-platform tool will be cheaper. If you want one consistent interface across the major social platforms, with cross-posting in a single call and AI image generation chained in, that is the niche this MCP fills.
Working with Cursor, Windsurf, and Other Clients
The MCP spec is client-agnostic, so the same npx -y @posteverywhere/mcp command works anywhere a client supports MCP. Where it differs is the config file location.
Cursor: configure MCP servers in Cursor settings under "Model Context Protocol". Same JSON shape as Claude Code's mcp.json.
Windsurf: edit ~/.codeium/windsurf/mcp_config.json. Same JSON.
Zed: configure under context_servers in ~/.config/zed/settings.json. Slightly different key names but same idea.
Claude Desktop: claude_desktop_config.json — location varies by OS (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\).
The PostEverywhere server itself does not care which client started it. It speaks MCP over stdio, the client handles the rest. If you want to drive scheduled posts from Cursor while you code or from Claude Desktop while you write briefs, both can share the same API key and server install.
FAQs
Do I need a paid PostEverywhere plan to use the MCP?
You need an API key, which means a paid plan or an active free trial. The 7-day trial includes full API access on every tier. The cheapest paid plan is $19/mo (Starter) — see pricing for the full breakdown. The MCP server itself is free and open-source.
What is the difference between the MCP server and just calling the API from Claude?
You can ask Claude to call the PostEverywhere REST API directly using curl or fetch, but you would have to copy the OpenAPI spec into context every time, handle auth yourself, and trust Claude to format every request correctly. The MCP server gives Claude typed tool definitions with validated arguments, so it never has to guess endpoint names or field shapes. Faster, fewer errors, no spec to paste.
Is it secure to put my API key in the MCP config?
Your API key stays on your machine. The MCP server runs locally via npx, reads the key from your config, and uses it as a bearer token for each request to PostEverywhere. The key is never sent to Anthropic's servers — Claude only ever sees tool names, arguments, and results, not the secret. Treat the config file the same way you treat a .env file: never commit it, set restrictive file permissions if you share the machine.
Can I use this with Cursor or other MCP clients instead of Claude Code?
Yes. The MCP spec is client-agnostic, so any MCP-compatible client (Cursor, Windsurf, Zed, Claude Desktop, custom clients built on the MCP SDK) can use the PostEverywhere MCP server. Config file location varies but the JSON shape is identical. See the section above for paths.
What happens if I hit the rate limit?
The PostEverywhere API has tier-based rate limits: 60 requests per minute, 1,000 per hour, 10,000 per day. Every response includes X-RateLimit-Remaining and X-RateLimit-Reset headers, plus Retry-After on a 429 response. The MCP server passes these through, so Claude can see when it is close to a limit and back off. For most individual users, hitting the per-minute cap takes deliberate effort — agency-scale automation is when you would notice.
Can the MCP generate AI images?
Yes, if your API key was created with the ai scope. The create_post tool accepts media IDs, and Claude can chain a call to the AI image endpoint before scheduling. Each generation costs one AI credit (50 included on Starter, 500 on Growth, 2,000 on Pro). If you want unlimited AI generation outside post creation, the standalone AI image generator is the better fit.
What if I want to post to a platform that is not supported?
PostEverywhere covers Instagram, LinkedIn, X, Facebook, Threads, TikTok, YouTube, and Pinterest. If you need a platform we do not support yet, the MCP cannot reach it. We are usually quickest to add a platform when customers ask. Contact us with the request.
Should I use the MCP if I am building a production app?
For production server-side automation, use the Node SDK directly. The MCP is designed for interactive use inside an IDE or chat client — it spins up a process per session, which is fine for human use but not ideal for high-throughput services. The two share a backend API, so you can prototype with the MCP and migrate to the SDK without rewriting your auth or data model.
What to Build Next
You now have Claude Code wired into your social media workflow. From here, the natural next steps:
- Read the build an AI social media agent guide for the SDK side, including a working autonomous agent with feedback loops
- Skim the API documentation for the full endpoint reference, including webhooks and team management
- Read migrate from Buffer API to PostEverywhere for the API-side comparison and dual-write playbook
- Browse our list of best social media APIs to see how the landscape compares
- See how to automate social media posting via API for non-MCP automation patterns
Most teams who install the MCP end up using it for the daily housekeeping (audits, retries, ad-hoc posts) and the SDK for the production cron jobs. Both work, both stay in sync, and both give Claude or your code a clean interface to the same accounts.

Founder & CEO of PostEverywhere. Writing about social media strategy, publishing workflows, and analytics that help brands grow faster.