PostifyPostify Docs

Connecting AI assistants (MCP)

Connect Claude or any MCP-capable client to your Postify workspace with the Postify MCP server.

Postify runs a remote MCP (Model Context Protocol) server, so AI assistants like Claude — and any MCP-capable client — can work with your workspace: list and read posts, create drafts, reschedule, check analytics, and more.

Server URL: https://app.usepostify.com/api/mcp (Streamable HTTP transport)

Connect

No API key is needed. The client registers itself via dynamic client registration and walks an OAuth 2.1 flow in your browser, where you sign in and approve scopes on a consent screen. PKCE is required, and refresh tokens rotate on use.

Claude Code:

claude mcp add --transport http postify https://app.usepostify.com/api/mcp

Generic MCP client config:

{
  "mcpServers": {
    "postify": {
      "type": "http",
      "url": "https://app.usepostify.com/api/mcp"
    }
  }
}

Discovery documents live at /.well-known/oauth-protected-resource and /.well-known/oauth-authorization-server.

Scopes

You approve exactly which scopes a client gets. Tools outside the granted scopes are not even listed to the client.

ScopeGrants
posts:readList and read posts, search the media library
posts:writeCreate drafts and reschedule; publish/delete sit behind an extra toggle
channels:readList connected channels
inbox:readRead the inbox — mentions, comments and direct messages from connected accounts
analytics:readRead workspace analytics
ai:generateAI suggestions (optimal posting times)
offline_accessRefresh tokens — stay connected without re-consenting

Tools

ToolScopeWhat it does
list_postsposts:readRecent posts with status and per-channel delivery outcomes
get_postposts:readOne post in full: variants, schedule, delivery attempts
get_scheduleposts:readScheduled posts inside a date window — "what's going out this week"
search_media_libraryposts:readFind images/videos in the workspace media library
list_inbox_itemsinbox:readMentions, comments, replies and DMs synced from connected channels
list_channelschannels:readConnected social accounts with platform and handle
get_analyticsanalytics:readWorkspace KPIs: published, scheduled, delivery success rate
create_draftposts:writeCreate a draft (never publishes — a human reviews it in the app)
reschedule_postposts:writeMove a scheduled post to a new time
suggest_optimal_timeai:generateAI-suggested best posting times for selected platforms
search_docsSearch Postify's public API docs (endpoints, error codes, webhooks, scopes); available to every connected assistant
publish_nowposts:writePublish a post to its live channels immediately (dangerous)
delete_postposts:writeSoft-delete a post, history preserved (dangerous)

Dangerous operations

publish_now and delete_post are blocked for all connected AI credentials by default. A workspace owner opts in with the "Dangerous AI operations" switch under Settings, then API Keys. Even with the toggle on, each call is a two-step: the first call returns CONFIRMATION_REQUIRED with a confirmToken; after you explicitly confirm, the client re-calls with the same arguments plus the token. Tokens expire after 10 minutes and are bound to the exact tool and arguments they were minted for.

Structured denials

A blocked tool call is not a transport error — it returns isError: true with machine-readable structuredContent the agent can act on, carrying a stable code and (where useful) a settingsUrl, a requiredScope, a confirmToken, and a docs link back to this page.

CodeWhen you get it, and what resolves it
SCOPE_MISSINGThe connection was never granted the scope this tool needs. Reconnect and approve the missing scope on the consent screen.
DANGEROUS_OPS_DISABLEDpublish_now or delete_post while the workspace toggle is off. The denial's settingsUrl deep-links an owner straight to the switch.
CONFIRMATION_REQUIREDA dangerous tool was called without a confirmToken. The denial carries a fresh token — confirm with the user, then re-call with the SAME arguments plus the token (valid 10 minutes).
QUOTA_EXCEEDEDThe workspace's monthly quota for the operation (posts, AI credits) is exhausted. Retrying is pointless until it resets.
TOOL_EXECUTION_FAILEDAnything else — the generic failure. Details never include third-party error bodies.

Managing connections

Connected clients — with their granted scopes and last-used time — are listed under Settings, then API Keys, then Connected AI apps. Disconnecting revokes consent and refresh tokens immediately; any access token the client still holds expires within the hour. Every tool call, allowed or denied, is written to the workspace audit trail.

On this page