MCP server

Your agent talks to scatterpost through the Model Context Protocol: it can draft, check, adapt, publish and read back analytics without leaving your normal tool loop.

Remote connector

Any client that speaks Streamable HTTP can connect directly to the remote endpoint, with an API key or, for clients that support it, OAuth 2.1:

https://app.scatterpost.io/api/mcp/mcp

Claude Code

Create an API key in the scatterpost dashboard, then add the server over stdio (it runs through npx, nothing to install first):

claude mcp add scatterpost -e SCATTERPOST_API_KEY=sp_live_... -- npx -y @scatterpost/mcp

Or connect straight to the remote endpoint over Streamable HTTP with the same key:

claude mcp add --transport http scatterpost https://app.scatterpost.io/api/mcp/mcp \
  --header "Authorization: Bearer sp_live_..."

Claude.ai connector

Claude.ai supports the remote endpoint as a custom connector: add https://app.scatterpost.io/api/mcp/mcp and sign in with your scatterpost account through OAuth, no API key to paste in.

Cursor

Add an MCP server entry to Cursor's settings pointing at the remote endpoint, with your API key as a bearer token:

{
  "mcpServers": {
    "scatterpost": {
      "url": "https://app.scatterpost.io/api/mcp/mcp",
      "headers": { "Authorization": "Bearer sp_live_..." }
    }
  }
}

API keys and scopes

Create keys from Settings in the dashboard. Each key carries a subset of articles:read, articles:write, channels:read, channels:write, publications:read, publications:write and publish, so a key handed to one agent can be limited to, for example, drafting and reading without the ability to publish. A key can never act with more access than its creator currently has in the workspace: if its creator is later moved to a viewer, the key keeps only its read scopes.

Tools

The key never appears in a tool result or a log line.

scatterpost_draft
Save a new article as a draft.
scatterpost_update
Edit an existing article's title, body, canonical URL, tags or SEO fields.
scatterpost_list
List articles, with a status filter and cursor paging.
scatterpost_get
Fetch one article with its body and its publications.
scatterpost_preview_publication
Dry run: the exact payload a publication will send.
scatterpost_publish_now
Publish to the chosen channels, website first.
scatterpost_schedule
Queue a publish for a future time, same canonical-first rule.
scatterpost_channels
List channels, or connect Dev.to and a website.
scatterpost_analytics
Per-channel views, reactions, comments, reposts and clicks for one article, plus totals.
scatterpost_optimise
Deterministic SEO and/or GEO report, plus JSON-LD and an llms.txt entry. Pro and Team only.
scatterpost_adapt
A starting draft for one platform, with its character limit and notes. Pro and Team only.
scatterpost_publications
List publications awaiting approval, then approve or reject them. Owners only.
scatterpost_bulk_schedule
Queue up to 50 publications in one call, or one article across channels on staggered slots. Team only.
scatterpost_retry_publication
Retry one failed publication. Never re-sends a published one; the website goes first.
scatterpost_test_channel
Check that a channel's saved credentials still work, without posting anything.
scatterpost_approvals
Review the approvals queue, or what changed since a publication entered review. Read-only.
scatterpost_media
Upload an image (PNG, JPEG, WebP or GIF) or a short video (MP4 or WebM, up to 100 MB and 3 minutes, for Mastodon, Bluesky and LinkedIn) with alt text, to use as a cover or attach per channel. Private until published. Delete an item you no longer need, unless it is attached to something scheduled or being published.
scatterpost_settings
Read or change which emails you get, and read the workspace or change its timezone (owners only). Changing needs a key with a write scope.