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/mcpClaude 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/mcpOr 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.