Skip to main content
Glama
README.md
# postwire-mcp

**Your agent writes the post, picks the right shape for each network, and publishes it.**

An [MCP](https://modelcontextprotocol.io) server for [PostWire](https://postwire.io/?utm_source=github&utm_medium=readme&utm_campaign=postwire_mcp). Give Claude, Cursor, or any agent one idea and it publishes a *native* post to TikTok, Instagram, Facebook Pages, YouTube, LinkedIn, Bluesky, Mastodon, Telegram, Discord, Slack, Nostr and X, plus long-form articles on WordPress, Dev.to and Hashnode — not the same text pasted fourteen times.

```
you:    "post the demo video — we shipped scheduling today"
agent:  → YouTube  title + description + tags, 16:9
        → TikTok   hook in the first line, 4 tags
        → LinkedIn no link in the body, link in the first comment
        → Bluesky  under 300 characters, link as a card
        published. 4/4.
```

## Hosted (no install)

PostWire also runs as a remote MCP server at `https://postwire.io/api/mcp` (Streamable HTTP, OAuth 2.1 sign-in or `Authorization: Bearer pw_live_…`), with 22 tools: everything below plus `plan_week`, `bulk_schedule`, `schedule_post`, `create_recurring_post`, `list_brands`, `create_brand`, `create_connect_link`, `create_upload_link`, `make_video_from_text`, `get_post_performance`, `replicate_top_post`, `check_video_quality` and more. The hosted server is the fastest way to get all of them.

- **Claude**: listed in Claude's connector directory — [add PostWire to Claude](https://claude.ai/directory/bc01e7da-eba7-4754-9e88-6cacae80f000), or paste the URL as a custom connector.
- **Claude Code**: `claude mcp add --transport http postwire https://postwire.io/api/mcp`
- Official MCP Registry: `io.github.Perufitlife/postwire-mcp`.

## Quick start (local, npm)

1. Get a free API key at **[postwire.io/dashboard.html](https://postwire.io/dashboard.html?utm_source=github&utm_medium=readme&utm_campaign=quickstart)** and connect an account. One OAuth click — PostWire already holds the platform approvals, so there is no app review to wait for.
2. Add it to your MCP client:

```json
{
  "mcpServers": {
    "postwire": {
      "command": "npx",
      "args": ["-y", "postwire-mcp"],
      "env": { "POSTWIRE_API_KEY": "pw_live_your_key" }
    }
  }
}
```

Client-specific setup: [Claude Desktop](https://postwire.io/mcp/claude-desktop/) · [Claude Code](https://postwire.io/mcp/claude-code/) · [Cursor](https://postwire.io/mcp/cursor/) · [VS Code](https://postwire.io/mcp/vscode/) · [Windsurf](https://postwire.io/mcp/windsurf/)

No key yet? `list_platforms` still answers, so you can see what is supported before signing up.

## Tools

From 0.4.0 the local package is a thin bridge to the [hosted server](#hosted-no-install), so it exposes the same 22 tools (it falls back to the five core tools below if postwire.io can't be reached). The core ones:

| Tool | What it does |
|---|---|
| `generate_posts` | **Smart Distribute.** One prompt → a draft written for each platform: character limits, hashtag conventions, YouTube SEO title+tags, hook-first captions for TikTok, link-in-comment for LinkedIn. Returns drafts for you to review. |
| `post_to_social` | Publishes. Takes one text for all, or `per_platform` drafts from `generate_posts`. |
| `get_post_status` | Publish state for platforms that report one back (TikTok and YouTube process asynchronously). |
| `list_platforms` | Every supported network and the fields it needs. Works without a key. |
| `my_account` | Plan, posts used this month, which accounts are connected. |

Failures are refused up front rather than half-published: a video network with no video, text over a platform's limit, or an account that was never connected all come back as a clear error *before* anything goes out. A four-network post never leaves you with two live and two silently missing.

## Platforms

**One OAuth click** — TikTok · Instagram · Facebook Pages · YouTube · LinkedIn (personal profiles)
**Token or webhook** — Bluesky · Mastodon · Telegram · Discord · Slack · Nostr
**Articles** — WordPress · Dev.to · Hashnode
**X** — pay-per-use credits on the paid plans (X charges for every post): threads and a reply under the post for the link. [Details](https://postwire.io/docs/x/)

You connect your accounts to PostWire's already-approved apps (TikTok Direct Post audit, Meta App Review, Google verification of `youtube.upload`), so you never need your own developer app.

## Pricing

Per **brand**, never per network. Connect a business once and every one of its accounts is included.

| | Brands | Posts/month | |
|---|---|---|---|
| **Free** | 1 | 30 | no card |
| **Starter** | 3 | 300 | $9/mo |
| **Pro** | 10 | 2,000 | $29/mo |
| **Agency** | 50 | 15,000 | $99/mo |
| **Scale** | 200 | unlimited | $299/mo |

A post counts once per network. Ten client businesses on five networks each is **$29 here**; Buffer bills per channel. Paid plans have a 14-day refund. Current prices: [postwire.io/pricing](https://postwire.io/pricing/?utm_source=github&utm_medium=readme&utm_campaign=pricing).

## REST too

Everything the MCP server does is a plain HTTP call, if you would rather not run an MCP client:

```bash
curl -X POST https://postwire.io/api/post \
  -H "Authorization: Bearer $POSTWIRE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"platforms":["bluesky","mastodon"],"text":"shipped."}'
```

Docs: [postwire.io](https://postwire.io/?utm_source=github&utm_medium=readme&utm_campaign=docs)

MIT © PostWire

TDQS

A3.9/5.0

Scored across 22 tools

Disambiguation3/5

Several clusters overlap: generate_posts, replicate_top_post, and plan_week all produce content (plan_week also schedules), while schedule_post, bulk_schedule, and create_recurring_post all queue posts in different ways. Account/brand inspection also overlaps, since my_account already returns brands and connected accounts that list_brands and get_upgrade_link/get_x_credits separately expose. The very detailed descriptions mostly disambiguate them, but an agent could still hesitate between tools in these clusters.

Naming Consistency4/5

Names are consistently snake_case and almost all follow a verb_noun pattern (list_platforms, create_brand, schedule_post, get_post_status). A few deviate, notably my_account (noun phrase) and bulk_schedule (adjective_noun), but these are still readable and predictable.

Tool Count4/5

22 tools is on the heavy side, but the server spans a broad domain: publishing, scheduling, bulk/recurring posting, media upload, video generation/quality checks, analytics, and billing/X credits. Each tool covers a distinct capability, so the surface is large but not padded.

Completeness3/5

Core flows are covered (publish, schedule, cancel, status, brands, connect links, media, analytics), but lifecycle gaps remain: no update/edit of a scheduled or recurring post, no list/manage recurring posts, no brand update/delete, and no disconnect-account tool. Agents can work around some by canceling and recreating, but these are notable missing operations.

Maintenance

ActivityMaintained
ResponsivenessNo issues