MCP Setup Guide
Connect AdaptlyPost to your AI assistant in under a minute. Paste the URL, sign in when prompted, and start posting.
Prerequisites
An active AdaptlyPost account sign up
At least one connected social media account
Optional: an API token for headless agents and clients without OAuth, from Settings > API Tokens
Setup for Claude Code & Cursor
Add this to your MCP settings and sign in when the browser opens. For Claude Code: <code>~/.claude/settings.json</code>. For Cursor: <code>.cursor/mcp.json</code>.
MCP config
{
"mcpServers": {
"adaptlypost": {
"type": "http",
"url": "https://mcp.adaptlypost.com/mcp"
}
}
}Claude Code CLI
claude mcp add --transport http adaptlypost https://mcp.adaptlypost.com/mcpOr use the Claude Code CLI one-liner. It opens the sign-in page on first use:
API key alternative
{
"mcpServers": {
"adaptlypost": {
"type": "http",
"url": "https://mcp.adaptlypost.com/mcp",
"headers": {
"Authorization": "Bearer adaptly_your_key"
}
}
}
}For headless agents or clients without OAuth, add an Authorization header with a token from the API Tokens page. Keys start with adaptly_.
Setup for Claude Desktop
Claude Desktop connects through the <code>mcp-remote</code> bridge, which opens the sign-in page for you. Add this to your <code>claude_desktop_config.json</code>:
claude_desktop_config.json
{
"mcpServers": {
"adaptlypost": {
"command": "npx",
"args": ["mcp-remote", "https://mcp.adaptlypost.com/mcp"]
}
}
}Setup for Other MCP Clients
Any MCP client that supports HTTP transport can connect directly.
Endpoint
https://mcp.adaptlypost.com/mcp
Auth
Sign in when prompted (OAuth), or send Authorization: Bearer adaptly_your_key
Transport
HTTP (Streamable HTTP)
Without a Bearer header the server answers 401 with a WWW-Authenticate header, so OAuth-capable clients open the sign-in page on their own.
For clients that only support stdio transport, use the <code>mcp-remote</code> bridge as shown in the Claude Desktop section.
Alternative: Agent Skill
For Claude Code, Cursor, Windsurf, and Codex you can also install AdaptlyPost as an agent skill, no MCP configuration needed.
npx skills add adaptlypost/agentInstalls a SKILL.md and CLI script that teaches your agent the AdaptlyPost API. View on GitHub
Tool Reference
The MCP server exposes 31 tools. Your AI discovers these automatically, just ask in plain language.
| Tool | Description | Key params |
|---|---|---|
| list_workspaces | List the workspaces your sign-in can act in. Pass an id as workspaceId to any other tool to work in that workspace. | None |
| list_accounts | List connected social media accounts with IDs, platforms, usernames and status. An account marked unauthorized has to be reconnected before it can post. | None |
| upload_media | Upload media from URLs or base64 data. Returns mediaUrls for create_post. | urls?, files? |
| get_upload_urls | Get presigned upload URLs for direct file uploads to storage. | files (fileName + mimeType) |
| open_upload_widget | Show an upload box in ChatGPT or Claude so the user can add photos, videos or documents from their device. The box sends back the mediaUrls when it finishes. | None |
| get_upload_ticket | Called by the upload box once per file. Hidden from the AI. | None |
| create_post | Create a post for one or more platforms: publish now, schedule, save a draft, or repeat it daily, weekly, monthly or yearly. | platforms, contentType, timezone, text?, scheduledAt?, saveAsDraft?, recurrence?, mediaUrls?, mediaAltTexts?, platformTexts?, *ConnectionIds, pageIds?, *Configs? |
| get_post | Get full details of a single post by ID. | id |
| list_posts | List posts with optional filters by platform, status, or date range. | statuses?, platforms?, startDate?, endDate?, sortOrder?, limit?, offset? |
| update_post | Update a scheduled or draft post's caption, schedule, media, or platform configs. | id, text?, platforms?, contentType?, scheduledAt?, timezone?, mediaUrls?, mediaAltTexts?, platformTexts?, *ConnectionIds, *Configs? |
| delete_post | Delete a post. A scheduled post will not go out; a published post stays live on the networks. | id |
| unschedule_post | Take a scheduled post off the calendar and keep it as an undated draft. | id |
| publish_draft | Publish a draft post immediately or schedule it for later. | id, timezone, scheduledAt? |
| list_post_results | Check per-platform posting results, success/failure with error details. | id |
| retry_failed_platforms | Retry publishing on platforms that failed. | id, platformIds? |
| bulk_schedule_posts | Schedule multiple posts at once with shared platforms and connection IDs. | platforms, timezone, posts[], *ConnectionIds, pageIds?, *Configs? |
| list_recurring_posts | List recurring posts (series) with their status, schedule and next occurrence. | statuses?, limit?, offset? |
| get_recurring_post | Get one recurring post by ID, including why it paused and when it posts next. | id |
| pause_recurring_post | Pause a series and remove its upcoming scheduled post. | id |
| resume_recurring_post | Resume a paused series from the next slot after now. Missed slots are skipped. | id |
| delete_recurring_post | Stop a series for good. Posts that already went out are kept. | id |
| get_analytics_overview | Views, likes, comments, shares, followers and engagement rate for a date window, each compared with the previous window. | from, to, platforms? |
| get_analytics_timeseries | The same metrics bucketed by day, week or month for trend questions. | from, to, platforms?, granularity? |
| get_platform_breakdown | The same metrics split per platform, with the metrics each platform reports. | from, to |
| list_post_analytics | Per-post metrics sortable by any metric. Top posts and "how did this post do". | from, to, platforms?, sortBy?, page?, limit? |
| get_analytics_sync_status | When each account last synced and whether one needs reconnecting for analytics. | None |
| trigger_analytics_sync | Refresh analytics now. Once per 10 minutes per workspace. | None |
| generate_caption | Write a caption from a prompt, kept within the chosen platform's character limit. Costs 2 AI credits. | prompt, platform? |
| refine_caption | Rewrite an existing caption from an instruction such as "make it shorter", or finish a partly written one. Costs 2 AI credits. | prompt, originalText, partialText?, platform? |
| generate_image | Start an AI image and get a job ID back right away. 2 AI credits for standard, 4 for premium, refunded if it fails. | prompt, aspectRatio?, model?, quality?, sessionId?, referenceImages? |
| get_image_job | Check an image job until it has completed, with a public image URL ready for a post, or failed. | jobId |
Managing Access
Signed-in agents lose access when you remove the connector in your client or sign out. API tokens can be viewed and revoked anytime from your API Tokens page. Revoking a token immediately disconnects any agent using it.
Ready to Connect?
Paste the URL into your MCP settings, sign in once, and start posting from your AI.