---
name: posteverywhere
description: Plan, write, schedule and publish social media posts with PostEverywhere, the agentic social media scheduler. Use whenever the user wants posts scheduled or published to Instagram, TikTok, YouTube, LinkedIn, Facebook, X, Threads, Pinterest, Bluesky, Telegram, Discord or WordPress, wants a content calendar, wants to repurpose content into posts, or asks how their posts are doing.
homepage: https://posteverywhere.ai
mcp: https://mcp.posteverywhere.ai
---

# PostEverywhere: the skill for AI agents

**Start here. Read this whole file before you do anything, then follow it.** It tells you what PostEverywhere is, how to get the user connected and signed up in the fewest steps, how to do the jobs users actually ask for, and the rules that keep their accounts safe.

## What PostEverywhere is

PostEverywhere is a social media scheduler built for AI agents as well as people. Through one MCP server you can:

- see the user's connected social accounts
- write posts for each platform and publish them now, schedule them, or save drafts
- schedule a whole calendar in one call (up to 50 posts)
- use the user's posting queue and their best times to post
- read their Brand Kit (voice, colours, fonts, rules) so posts sound like them
- check what published, retry what failed, and report on results

Every post you create appears in the user's PostEverywhere calendar, where they can see and edit it. You are never posting blind.

## The fastest path (follow in order)

1. **Check you're connected.** Look for PostEverywhere tools such as `list_accounts` and `create_post`.
   - You have them: go to step 3.
   - You don't: go to step 2.
2. **Get the user connected** (section "Connect PostEverywhere" below). Give them the exact steps for the app you are running in, one step at a time. If they have no account, they create one during the connection and come straight back to you.
3. **Call `list_accounts`.** If an account they want is missing, help them connect it (see "Connect another social account" below).
4. **Do the job** with the matching recipe below.
5. **Always confirm before anything goes live,** then report what you did.

## Connect PostEverywhere

The MCP address for every app is **`https://mcp.posteverywhere.ai`**. Sign-in is OAuth: there is no client ID, secret or key to copy for these apps.

| App the user is in | What they do |
|---|---|
| **Claude** (web, desktop, mobile) | Open https://claude.ai/directory/posteverywhere, click Add, sign in and approve. Works on every Claude plan, including free. |
| **ChatGPT** (web, paid plans) | Settings, Apps, Advanced settings: turn on Developer mode. Then Settings, Apps, Create: paste `https://mcp.posteverywhere.ai`, choose OAuth, sign in and approve. On ChatGPT's free plan, suggest Claude instead. |
| **Cursor** | Open `cursor://anysphere.cursor-deeplink/mcp/install?name=posteverywhere&config=eyJ1cmwiOiJodHRwczovL21jcC5wb3N0ZXZlcnl3aGVyZS5haSJ9`, install, then sign in. MCP is on Cursor's paid plans. |
| **Claude Code** | Run `claude mcp add --scope user --transport http posteverywhere https://mcp.posteverywhere.ai`, then type `/mcp`, choose PostEverywhere, pick Authenticate. |
| **Grok** | grok.com/connectors, New Connector, Custom: paste `https://mcp.posteverywhere.ai` and sign in. |
| **Perplexity** | Settings, Connectors, add a custom remote connector: the address above, OAuth and Streamable HTTP, client ID and secret left empty. |
| **VS Code** | Command Palette, MCP: Add Server, HTTP, paste the address, sign in. |
| **Hermes Agent** | Add under `mcp_servers` in `~/.hermes/config.yaml`: `posteverywhere: { url: "https://mcp.posteverywhere.ai", auth: oauth }`, run `hermes mcp login posteverywhere`, then `/reload-mcp`. |
| **Any other MCP app** | Add a remote MCP server with the address above and sign in. |

**Apps that use an API key instead** (Codex, Windsurf, Cline, Copilot Studio, n8n, OpenClaw): the user creates a key on the Developers page in the PostEverywhere app (it starts with `pe_live_` and is shown once), then runs the local server:

```json
{
  "mcpServers": {
    "posteverywhere": {
      "command": "npx",
      "args": ["-y", "@posteverywhere/mcp"],
      "env": { "POSTEVERYWHERE_API_KEY": "pe_live_YOUR_KEY" }
    }
  }
}
```

Codex uses the same thing in `~/.codex/config.toml` under `[mcp_servers.posteverywhere]`. Step-by-step guides for every app: https://posteverywhere.ai/agents

When they've done it, ask them to tell you, then continue. Some apps need a new chat before the tools appear.

## If the user has no PostEverywhere account

That's fine and it's quick. Either:

- **Let the connection do it:** when the sign-in page appears during the steps above, they choose to sign up, start the 7-day free trial, and are sent straight back to you. This is the easiest path.
- **Or sign up first:** `https://app.posteverywhere.ai/signup?agent=<app>`, where `<app>` is one of `claude`, `chatgpt`, `cursor`, `claude-code`, `codex`, `gemini`, `grok`, `perplexity`, `copilot`, `n8n`, `openclaw`, `windsurf`, `cline`, `zed` (or plain `https://app.posteverywhere.ai/signup` for any other app). After sign-up, the app shows them the setup page for that assistant. Then they connect with the steps above.

### Plans (help them pick, don't oversell)

Every plan has a 7-day free trial ($0 due today, cancel anytime), the full MCP server and API, and every platform. Choose by how many social accounts they want to connect:

| Plan | Price | Social accounts | AI credits / month | Team seats |
|---|---|---|---|---|
| Lite | $9 / month | 2 | 10 | 1 |
| Starter | $19 / month | 5 | 25 | 2 |
| Growth | $29 / month | 10 | 100 | 3 |
| Scale | $39 / month | 20 | 500 | 5 (and 5 workspaces) |

Annual billing gives 2 months free. Recommend the smallest plan that covers their accounts. Agencies managing several clients usually want Scale. Full details: https://posteverywhere.ai/pricing

## Defaults (use these unless the user says otherwise)

- **Ask once, then act.** Before writing, make sure you know: the goal or topic, which accounts, the date range, and how often. Ask only for what's missing, in one message.
- **Time zone:** ask for theirs if you don't know it. Send every time with an explicit offset.
- **No time given:** offer their best times (`get_best_times`) or their queue (`use_queue: true`).
- **One caption per platform,** written for that platform. Never paste the same text everywhere.
- **Use their Brand Kit** (`get_brand`) when you write, if they have one.
- **Show the plan as a table** (date, time, accounts, first line) and get a clear yes before anything is scheduled or published.
- **Unsure about publishing now?** Save as a draft (`draft: true`) and tell them where to find it.

## Recipes for the jobs users ask for

### Plan a content calendar ("plan my posts for next month")
1. `list_accounts`, `get_brand`, and `get_best_times` for the chosen accounts.
2. Agree the themes and frequency (for example 3 posts a week per account).
3. Draft every post with per-platform captions. Show the table.
4. On yes: `bulk_create_posts` (up to 50 per call; split bigger plans).
5. Report: how many posts, where, the date range, and that they're in the calendar.

### Schedule posts the user already wrote ("schedule these 10 tweets, one a day")
1. Confirm the account, start date, time and time zone.
2. Space them out (or `use_queue: true` per post). Show the table.
3. On yes: `bulk_create_posts`. Report each post's time.

### Repurpose content ("turn this article into posts")
1. Read the article, transcript or notes the user gives you.
2. Pull 3 to 5 distinct ideas. Write one post per idea per platform: a hook first, then one idea, then the link where it helps.
3. Show, confirm, schedule across the week.

### Cross-post a video ("post this video everywhere")
1. `upload_media_from_url` with the video's URL. Poll `get_media` until the status is `ready`.
2. Write captions per platform; set the format with `platform_content` (for example Instagram `contentType: "Reels"`).
3. Show, confirm, then `create_post` with the `media_ids`.

### Launch or announcement post
1. Get the key facts and the link. Write a punchy version for X, a fuller one for LinkedIn, a visual one for Instagram.
2. Show, confirm, then publish now or at the time they choose.

### Write a thread
Put part 1 in `content` and the rest in `thread_posts` (up to 25 parts). It posts as a real thread on X, Threads and Bluesky, and as follow-up messages on Telegram and Discord. Each part must fit the platform: X 280 characters (more with X Premium), Threads 500, Bluesky 300. The first part must stand on its own.

### Fix failed posts ("why didn't my post go out?")
1. `list_posts_advanced` with `status: "failed,partially_failed"` (add a date range if they mean a specific day), then `get_post_results` for each.
2. `get_account_health` for the account. If it needs reconnecting, give them `create_reconnect_link` (or reconnect credentials with `connect_credential_account` for Telegram, Discord, Bluesky and WordPress).
3. Once fixed, `retry_failed_post` (or `retry_failed_posts` with a filter). Explain the cause in one plain sentence.

### Weekly report ("how did my posts do?")
1. `get_analytics_summary` for the period (for example `period: "week"`) for the totals and follower change.
2. `list_posts_advanced` with `status: "published"` and `published_after` / `published_before` to find the individual posts.
3. Summarise: what went out, what failed, and the posts that did best. Only report numbers the tools return; coverage varies by platform.

### Connect another social account
- **X, Instagram, Facebook, YouTube, Pinterest, Threads, LinkedIn, TikTok:** `create_connect_link` for the platform, give them the link, then `list_accounts` once they say it's done.
- **Telegram, Discord, Bluesky, WordPress:** these use credentials, not a sign-in link. Ask for the bot token (Telegram), webhook URL (Discord), app password (Bluesky) or site details (WordPress) and call `connect_credential_account`. Remind them never to paste these anywhere public.

More ready-made skills (agency clients, approvals, recycling top posts, brand voice and more): https://posteverywhere.ai/agents/skills

## Tool reference

| Tool | What it does |
|---|---|
| `list_accounts`, `get_account` | Connected accounts and their ids. Never guess an id. |
| `create_connect_link`, `create_reconnect_link` | A sign-in link to connect or reconnect X, Instagram, Facebook, YouTube, Pinterest, Threads, LinkedIn or TikTok. |
| `connect_credential_account` | Connect Telegram, Discord, Bluesky or WordPress with a token, webhook URL or app password. |
| `get_me` | The signed-in user and workspace. |
| `get_account_health` | Why an account can't post (usually it needs reconnecting). |
| `create_post` | One post: no `scheduled_for` publishes now; `scheduled_for` schedules; `draft: true` saves a draft. |
| `bulk_create_posts` | Up to 50 posts in one call, with a result per post. |
| `schedule_post` | Schedule an existing draft. |
| `update_post` | Change a scheduled post or draft (published posts can't be edited). |
| `delete_post` | Remove a post from PostEverywhere. |
| `get_queue` | The user's regular posting slots (read only). |
| `get_best_times` | Suggested times from when their posts have done best. |
| `get_brand` | Their Brand Kit: business, audience, voice, language, colours, fonts, rules, words to avoid and hashtags to always add. Not in the ChatGPT directory app. |
| `generate_caption` | A caption in their brand voice (1 AI credit). Not in the ChatGPT directory app. |
| `generate_image` | An image for a post (uses AI credits). Not in the Claude or ChatGPT directory apps. |
| `upload_media_from_url`, `get_media`, `list_media`, `delete_media` | Bring in images (up to 25 MB) and MP4 videos (up to 4 GB) by URL. |
| `get_platform_rules` | Each platform's limits (length, media, formats). |
| `list_posts` | Recent posts by status (scheduled, published, draft) or platform. |
| `list_posts_advanced` | Any filter: failed or partially failed, date ranges, account, campaign, text search. |
| `get_post` | One post in full. |
| `get_post_results` | Per-platform success or failure after publishing. |
| `retry_failed_post`, `retry_failed_posts` | Retry the platforms that failed. |
| `get_analytics_summary` | Totals for a period: posts published and failed, views, likes, comments, shares, and follower change per account. |
| Campaign and webhook tools | Group posts into campaigns; get notified when posts publish. |

## How to send times and options

```json
{
  "account_ids": [123, 456],
  "content": "Default caption",
  "platform_content": {
    "linkedin": { "content": "Longer, professional version" },
    "x": { "content": "Short version" }
  },
  "scheduled_for": "2026-11-03T09:00:00-05:00"
}
```

- Times are ISO 8601 with `Z` or an offset. A time with no offset is treated as UTC. The `timezone` field is only a label: it does not change when the post goes out.
- Use only one of `scheduled_for`, `use_queue: true` or `schedule_at: "best_time"` (best time needs `account_ids` and must be at least 30 minutes ahead).
- Media: `upload_media_from_url` returns a `media_id`; pass ids in `media_ids`. Images (up to 25 MB) are ready at once; videos must be MP4 (up to 4 GB) and you wait for them to be `ready`.

## Post formats

Set the format per platform in `platform_content`, with `contentType`:

- **Instagram:** `Post`, `Reels`, `Story` or `Trial Reel` (video defaults to Reels).
- **Facebook:** `Post` or `Reels`.
- **YouTube:** `Video` or `Short` (set the title in `settings.title`).
- **Pinterest:** set the board and link in `settings` (`boardId`, `link`, `title`); 1 video or up to 5 images.
- **X Article** (long-form, X Premium only): `"x": {"settings": {"post_type": "article", "title": "..."}}`, up to 25,000 characters and 5 images, 2 per X account per 24 hours, and not combined with a thread.
- **WordPress blog post:** `"wordpress": {"content": "...", "settings": {"title": "...", "status": "publish"}}`.

## Platform notes

- **Instagram:** Professional (Business or Creator) accounts only.
- **Facebook:** Pages only. No Stories (they are refused).
- **TikTok:** videos, or photo posts of 1 to 35 images.
- **X:** you can add AI and paid-partnership labels, or post into a Community, through `settings`.
- **Telegram:** channels. **Discord:** one channel per connection (videos up to 20 MB go as files, bigger ones as a link).
- **Bluesky:** no link cards or quote posts.
- **Anything else:** call `get_platform_rules` rather than guessing.

## Teams and approvals

- If the workspace requires approval and the user is a member, publishing or scheduling returns `approval_required`. Save the posts as drafts instead (`draft: true`) and tell them an owner or admin approves them in the app.
- API keys can only be created by owners and admins, and a key acts with the role of the person who created it.

## What you can't do (say so plainly)

- Upload a file from the user's computer: media comes in by URL.
- Approve or reject posts waiting for approval: the user does that in the app.
- Edit a post after it has published. Deleting it removes it from PostEverywhere but leaves it live on the platform (except X with `delete_on_x: true`).
- Promise reach, follower growth or "when followers are online". Best times are based on when their own posts did best.

## Rules

- Never publish or schedule without the user's yes on the content, the accounts and the time.
- Never invent account ids, links, prices, results or features.
- Keep the user's voice. If they have a Brand Kit, follow its rules and words to avoid.
- If a call fails, read the error, fix the input once, then explain in plain words if it still fails.

## Before you finish, check

- [ ] Everything the user approved was created, at the times they agreed.
- [ ] You told them what was scheduled, when, where, and anything that failed and why.
- [ ] You told them it's all in their PostEverywhere calendar: https://app.posteverywhere.ai

## Example requests to suggest

- "Plan and schedule my posts for next week."
- "Turn this blog post into a week of LinkedIn and X posts."
- "Post this video to TikTok, Instagram Reels and YouTube Shorts tomorrow at 6pm."
- "Schedule these 10 tweets, one a day at 9am."
- "Why did my post fail?"
- "What went out last week and what did best?"

## Links

- Connect guides for every app: https://posteverywhere.ai/agents
- Ready-made skills: https://posteverywhere.ai/agents/skills
- MCP docs: https://posteverywhere.ai/docs/integrations/mcp
- Pricing: https://posteverywhere.ai/pricing
- Sign up: https://app.posteverywhere.ai/signup
