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/mcpGeneric 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.
| Scope | Grants |
|---|---|
posts:read | List and read posts, search the media library |
posts:write | Create drafts and reschedule; publish/delete sit behind an extra toggle |
channels:read | List connected channels |
inbox:read | Read the inbox — mentions, comments and direct messages from connected accounts |
analytics:read | Read workspace analytics |
ai:generate | AI suggestions (optimal posting times) |
offline_access | Refresh tokens — stay connected without re-consenting |
Tools
| Tool | Scope | What it does |
|---|---|---|
list_posts | posts:read | Recent posts with status and per-channel delivery outcomes |
get_post | posts:read | One post in full: variants, schedule, delivery attempts |
get_schedule | posts:read | Scheduled posts inside a date window — "what's going out this week" |
search_media_library | posts:read | Find images/videos in the workspace media library |
list_inbox_items | inbox:read | Mentions, comments, replies and DMs synced from connected channels |
list_channels | channels:read | Connected social accounts with platform and handle |
get_analytics | analytics:read | Workspace KPIs: published, scheduled, delivery success rate |
create_draft | posts:write | Create a draft (never publishes — a human reviews it in the app) |
reschedule_post | posts:write | Move a scheduled post to a new time |
suggest_optimal_time | ai:generate | AI-suggested best posting times for selected platforms |
search_docs | — | Search Postify's public API docs (endpoints, error codes, webhooks, scopes); available to every connected assistant |
publish_now | posts:write | Publish a post to its live channels immediately (dangerous) |
delete_post | posts:write | Soft-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.
| Code | When you get it, and what resolves it |
|---|---|
SCOPE_MISSING | The connection was never granted the scope this tool needs. Reconnect and approve the missing scope on the consent screen. |
DANGEROUS_OPS_DISABLED | publish_now or delete_post while the workspace toggle is off. The denial's settingsUrl deep-links an owner straight to the switch. |
CONFIRMATION_REQUIRED | A 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_EXCEEDED | The workspace's monthly quota for the operation (posts, AI credits) is exhausted. Retrying is pointless until it resets. |
TOOL_EXECUTION_FAILED | Anything 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.
Analytics and inbox
Workspace analytics and a unified engagement inbox across your connected channels.
API documentation
Everything to build on the Postify REST API — 5-minute quickstart, API-key auth, RFC 9457 errors, cursor pagination, idempotency keys, rate limits, and all 17 operations with examples.
