AdaptlyPost MCP server
Commit Nov 13, 2026Lets an AI agent draft, schedule, and publish posts across 14 social media platforms and manage engagement analytics.
Also known as adaptlypost/agent
- Stars
- 0
- Tools
- 81
- Downloads, 30 days
- —
- Latest version
- —
- Last commit
- Nov 13, 2026
- License
- MIT
What is AdaptlyPost MCP?
AdaptlyPost lets an AI agent draft, schedule, and publish posts across 14 social media platforms and manage engagement analytics. It exposes 81 tools, such as list_workspaces, get_me, list_accounts.
Summary generated from the project's README
About AdaptlyPost MCP server
AdaptlyPost agent provides an integrated way for AI agents to manage social media presence across 14 different platforms, including Instagram, TikTok, X, LinkedIn, and YouTube. It allows users to draft, schedule, and publish content, while also managing engagement through an inbox for comments, mentions, and direct messages. The server includes 80 tools that handle everything from media uploads and RSS feed automation to bulk scheduling and detailed engagement analytics.
Developers can connect this server to various MCP clients like Claude Desktop, Cursor, ChatGPT, and Windsurf using a remote URL. Setup is designed to be quick, utilizing OAuth for most clients to avoid manual API key entry, though headless agents can use an API token starting with adaptly_. The system supports complex workflows such as creating recurring posts, validating content before it goes live, and automatically turning new blog entries into social media drafts via RSS feeds.
What you can do with it
- 1Multi-platform content schedulingSchedule a single announcement to appear on LinkedIn and X at a specific time with platform-optimized versions.
- 2Automated blog to social workflowSet up an RSS feed so that every new article published on a blog automatically becomes a draft on social media.
- 3Engagement and community managementReview unread comments and messages from the day to manage social media interactions.
- 4Performance analysis and recoveryIdentify which platforms had posting failures and attempt to republish the content only on those specific services.
Written from the project's README. Every use case is checked against a quote from it.
AdaptlyPost MCP tools 81
Detected from the READMElist_workspacesget_melist_accountscheck_accountremove_accountcreate_connect_linkrevoke_connect_linkcreate_postvalidate_postget_postlist_postsupdate_post
| list_workspaces | — | |
| get_me | — | |
| list_accounts | — | |
| check_account | — | |
| remove_account | — | |
| create_connect_link | — | |
| revoke_connect_link | — | |
| create_post | — | |
| validate_post | — | |
| get_post | — | |
| list_posts | — | |
| update_post | — |
Show all 81 toolsShow fewer tools
delete_postunschedule_postpublish_draftlist_post_resultsretry_failed_platformsbulk_schedule_postsvalidate_bulk_postsupload_mediaget_upload_urlsopen_upload_widgetsearch_instagram_audiolist_pinterest_boardslist_wordpress_categoriesresolve_linkedin_organizationlist_recurring_postsget_recurring_postpause_recurring_postresume_recurring_postdelete_recurring_postlist_rss_feedsget_rss_feedpreview_rss_feedcreate_rss_feedupdate_rss_feeddelete_rss_feedlist_rss_feed_itemspause_rss_feedresume_rss_feedcheck_rss_feedget_analytics_overviewget_analytics_timeseriesget_platform_breakdownlist_post_analyticslist_top_postslist_discovered_postsget_analytics_sync_statustrigger_analytics_syncget_inbox_summaryrefresh_inboxlist_inbox_commentsget_inbox_commentreply_to_inbox_commenthide_inbox_commentunhide_inbox_commentlike_inbox_commentunlike_inbox_commentdelete_inbox_commentupdate_inbox_comments_statuslist_inbox_mentionsreply_to_inbox_mentionupdate_inbox_mentions_statuslist_inbox_conversationsget_inbox_conversationsend_inbox_messageupdate_inbox_conversations_statuslist_inbox_reviewsreply_to_inbox_reviewdelete_inbox_review_replyupdate_inbox_reviews_statuslist_webhooksget_webhookcreate_webhookupdate_webhookdelete_webhooktest_webhookgenerate_captionrefine_captiongenerate_imageget_image_job
| delete_post | — | |
| unschedule_post | — | |
| publish_draft | — | |
| list_post_results | — | |
| retry_failed_platforms | — | |
| bulk_schedule_posts | — | |
| validate_bulk_posts | — | |
| upload_media | — | |
| get_upload_urls | — | |
| open_upload_widget | — | |
| search_instagram_audio | — | |
| list_pinterest_boards | — | |
| list_wordpress_categories | — | |
| resolve_linkedin_organization | — | |
| list_recurring_posts | — | |
| get_recurring_post | — | |
| pause_recurring_post | — | |
| resume_recurring_post | — | |
| delete_recurring_post | — | |
| list_rss_feeds | — | |
| get_rss_feed | — | |
| preview_rss_feed | — | |
| create_rss_feed | — | |
| update_rss_feed | — | |
| delete_rss_feed | — | |
| list_rss_feed_items | — | |
| pause_rss_feed | — | |
| resume_rss_feed | — | |
| check_rss_feed | — | |
| get_analytics_overview | — | |
| get_analytics_timeseries | — | |
| get_platform_breakdown | — | |
| list_post_analytics | — | |
| list_top_posts | — | |
| list_discovered_posts | — | |
| get_analytics_sync_status | — | |
| trigger_analytics_sync | — | |
| get_inbox_summary | — | |
| refresh_inbox | — | |
| list_inbox_comments | — | |
| get_inbox_comment | — | |
| reply_to_inbox_comment | — | |
| hide_inbox_comment | — | |
| unhide_inbox_comment | — | |
| like_inbox_comment | — | |
| unlike_inbox_comment | — | |
| delete_inbox_comment | — | |
| update_inbox_comments_status | — | |
| list_inbox_mentions | — | |
| reply_to_inbox_mention | — | |
| update_inbox_mentions_status | — | |
| list_inbox_conversations | — | |
| get_inbox_conversation | — | |
| send_inbox_message | — | |
| update_inbox_conversations_status | — | |
| list_inbox_reviews | — | |
| reply_to_inbox_review | — | |
| delete_inbox_review_reply | — | |
| update_inbox_reviews_status | — | |
| list_webhooks | — | |
| get_webhook | — | |
| create_webhook | — | |
| update_webhook | — | |
| delete_webhook | — | |
| test_webhook | — | |
| generate_caption | — | |
| refine_caption | — | |
| generate_image | — | |
| get_image_job | — |
Configuration
ADAPTLYPOST_API_TOKEN
| Name | Description | |
|---|---|---|
| ADAPTLYPOST_API_TOKEN | — |
Automated checks
Ran Nov 14, 2026Full report →Not verified yet. A server needs a score of 80, no serious finding, and enough data for us to check. How checks work · What to fix for more points
- Source repository linked and reachableadaptlypost/agent is public and reachablegithub.com/adaptlypost/agent ↗Pass
- Package names this repository as its sourceNot checked
- Build provenance (Sigstore attestation)Not checked
- Open source license (OSI)MITspdx.org/licenses/MIT.html ↗Pass
- Commit or release in the last yearLast commit or release 2026-11-12github.com/adaptlypost/agent ↗Pass
- OpenSSF ScorecardNot checked
- Package name not close to a popular packageNot checked
- No critical advisory in the package or its dependenciesNot checked
- No hidden instructions to the model81 tool descriptions and the README read; no override phrases, credential paths or hidden charactersPass
- Destructive tools are labelledNot checked
- Remote endpoint answers the MCP handshakeNot checked
README
View on GitHubAdaptlyPost agent
Let your AI agent draft, schedule and publish posts on Instagram, TikTok, YouTube, X (Twitter), LinkedIn, Facebook, Pinterest, Threads, Bluesky, Mastodon, Google Business Profile, Tumblr, Telegram and WordPress, all 14 platforms AdaptlyPost supports, and read how those posts performed. 80 MCP tools cover posting, scheduling, bulk and recurring posts, media uploads, RSS feeds, webhooks, AI captions and images, analytics, and an inbox for answering comments, mentions, direct messages and Google reviews.
Connect in 30 seconds
claude mcp add --transport http adaptlypost https://mcp.adaptlypost.com/mcp
Any other MCP client needs only the URL, https://mcp.adaptlypost.com/mcp. The first call opens a browser to sign in with your AdaptlyPost account. Nothing to install and no key to paste. Setup for each client is below.
What this repo is
This repo holds every AdaptlyPost agent integration except the Claude Code and Hermes Agent plugin:
| Path | What it is |
|---|---|
skills/adaptlypost/ |
The agent skill for npx skills add. It drives the AdaptlyPost REST API through scripts/adaptlypost.js with an API key. |
mcp-server/ |
Source of the MCP server that runs at https://mcp.adaptlypost.com/mcp. A push to main that touches it builds a new image. |
gemini-extension.json, GEMINI.md |
The Gemini CLI extension. It connects to the hosted MCP server and signs in with OAuth. |
Dockerfile, glama.json |
Runs the MCP server over stdio, for Glama and anyone who wants it in a container. |
lhm.plugin.json |
The LobeHub marketplace listing for the hosted MCP server. |
The Claude Code and Hermes Agent plugin lives in adaptlypost/claude-plugin. It signs in with OAuth and never asks for an API key, which the Claude plugin directory and the Hermes catalog both require, so it ships its own MCP-only skill instead of the script skill here.
Pick your install
| You use | Install | Sign-in |
|---|---|---|
| Claude Code | /plugin install adaptlypost --marketplace adaptlypost/claude-plugin |
OAuth |
| Hermes Agent | hermes plugins install adaptlypost |
OAuth |
| Gemini CLI | gemini extensions install https://github.com/adaptlypost/agent |
OAuth |
| Claude Desktop, Cursor, ChatGPT or any MCP client | Add https://mcp.adaptlypost.com/mcp as a remote server |
OAuth, or an API key header |
| Cursor, Codex, Windsurf, Claude Code or any agent with skills | npx skills add adaptlypost/agent |
API key |
Setup by client
The server answers an unauthenticated call with a 401 that points at its OAuth metadata, so every client below opens the AdaptlyPost sign-in on its own. One sign-in reaches every workspace you belong to.
Claude.ai and Claude Desktop
Open Settings > Connectors, add a custom connector with the URL https://mcp.adaptlypost.com/mcp, and sign in. A Claude Desktop build without connectors can go through mcp-remote, which handles the sign-in itself:
{
"mcpServers": {
"adaptlypost": {
"command": "npx",
"args": ["mcp-remote", "https://mcp.adaptlypost.com/mcp"]
}
}
}
Claude Code
The plugin adds the server and a skill that knows how to use it:
/plugin install adaptlypost --marketplace adaptlypost/claude-plugin
Or add only the server:
claude mcp add --transport http adaptlypost https://mcp.adaptlypost.com/mcp
Run /mcp, pick adaptlypost and sign in.
ChatGPT
Add a custom connector in Settings > Apps & Connectors with the URL https://mcp.adaptlypost.com/mcp and sign in.
Cursor
~/.cursor/mcp.json:
{
"mcpServers": {
"adaptlypost": { "url": "https://mcp.adaptlypost.com/mcp" }
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"adaptlypost": { "serverUrl": "https://mcp.adaptlypost.com/mcp" }
}
}
VS Code
.vscode/mcp.json:
{
"servers": {
"adaptlypost": { "type": "http", "url": "https://mcp.adaptlypost.com/mcp" }
}
}
Codex
~/.codex/config.toml:
[mcp_servers.adaptlypost]
url = "https://mcp.adaptlypost.com/mcp"
Then sign in with codex mcp login adaptlypost.
Gemini CLI
gemini extensions install https://github.com/adaptlypost/agent
Hermes Agent
hermes plugins install adaptlypost
hermes plugins enable adaptlypost
Headless agents and clients without OAuth
Create an API token on Settings > API Tokens and send it as a header. Keys start with adaptly_.
{
"mcpServers": {
"adaptlypost": {
"type": "http",
"url": "https://mcp.adaptlypost.com/mcp",
"headers": { "Authorization": "Bearer adaptly_your_key" }
}
}
}
Example prompts
- "Schedule this announcement on LinkedIn and X for tomorrow at 9am, with a shorter version for X."
- "Turn https://example.com/blog/launch into posts for Instagram, Threads and Bluesky and save them as drafts."
- "Post this video as an Instagram Reel and a TikTok, with a first comment that links to our site."
- "Post this video to YouTube, Instagram and TikTok, and use the 60-second cut for TikTok."
- "Check this post for problems on every platform before you schedule it."
- "Which platforms failed on yesterday's post? Retry only those."
- "Repeat our weekly tips post every Monday at 10am."
- "Connect our blog's RSS feed so every new article becomes a LinkedIn draft."
- "What were my five best posts last month by engagement, and on which platforms?"
- "Create a connect link my client can use to add their Instagram and Facebook accounts."
- "What's new in my inbox? Show unread comments and messages from today."
- "Draft friendly replies to the unanswered Instagram comments on yesterday's post, and send them once I approve."
- "Reply to every 5-star Google review from this week that has no reply yet."
Tools
80 tools. Analytics cover Facebook, Instagram, Threads, TikTok, Pinterest, Bluesky, LinkedIn, YouTube, X and Google Business Profile. Google Business Profile reports location impressions only, with no per-post numbers. Mastodon, Telegram, Tumblr and WordPress have no analytics. Connecting an account imports its posts from the last 180 days. The upload box also calls get_upload_ticket once per file; that tool is hidden from the model.
Workspaces and accounts
| Tool | What it does | Changes data |
|---|---|---|
list_workspaces |
List the workspaces the sign-in can act in; pass an id as workspaceId to any other tool |
No |
get_me |
What this connection may do in a workspace: role, permission keys and can { draft, schedule, publish } |
No |
list_accounts |
List all connected social media accounts with IDs, platforms and status (active or unauthorized) |
No |
check_account |
Re-check a Facebook page with Facebook and get its fresh status |
Yes |
remove_account |
Disconnect an account from the workspace; it comes off pending and recurring posts | Yes |
create_connect_link |
Create a link a client opens to connect their accounts, optionally private, limited to some platforms, capped or never expiring | Yes |
revoke_connect_link |
Revoke a connect link | Yes |
Posts
| Tool | What it does | Changes data |
|---|---|---|
create_post |
Create a post: publish immediately, schedule, or save as draft (a draft can carry a planned date). Takes first comments, per-platform thumbnails, image shapes and media, Instagram and Facebook story sharing, Instagram collaborators, user tags, AI labels and Reel audio, Facebook text backgrounds and link carousels, LinkedIn reshares, X quotes of the account's own posts, threads of replies with images, Tumblr tags, WordPress titles, categories and tags, the YouTube audio language and Google Business Profile events and offers | Yes |
validate_post |
Dry-run create_post with the same input: every problem, per account, without creating anything |
No |
get_post |
Get full details of a single post by ID | No |
list_posts |
List posts with filters by status, platform, date range | No |
update_post |
Update a scheduled or draft post, or a post that failed on every platform, which becomes a draft again | Yes |
delete_post |
Delete a post record; cancels a draft or scheduled post, never removes content already live | Yes |
unschedule_post |
Turn a scheduled post back into an undated draft without deleting it | Yes |
publish_draft |
Publish a draft post immediately or schedule it. Without a date, a draft with a future planned date is scheduled for it and any other draft publishes now; publishNow: true publishes now regardless |
Yes |
list_post_results |
Check per-platform posting results, success or failure with error details | No |
retry_failed_platforms |
Retry publishing on platforms that failed | Yes |
bulk_schedule_posts |
Schedule up to 100 posts at once | Yes |
validate_bulk_posts |
Dry-run bulk_schedule_posts: one validation report per item |
No |
Media
| Tool | What it does | Changes data |
|---|---|---|
upload_media |
Upload images, videos or documents from ChatGPT attachments, public URLs or base64 and get mediaUrls for a post |
Yes |
get_upload_urls |
Mint presigned upload URLs for larger files; PUT the bytes, then use publicUrl |
Yes |
open_upload_widget |
Show an upload box in ChatGPT or Claude chat so the user can add files from their device; the box sends back the mediaUrls. Where the box can't show (Claude Cowork, Claude Code), it returns an upload link instead; call it again with uploadId to get the mediaUrls |
Yes |
Platform options
| Tool | What it does | Changes data |
|---|---|---|
search_instagram_audio |
Search Instagram music and original sounds to add to a Reel | No |
list_pinterest_boards |
List the boards of a Pinterest account; pass a board id as pinterestConfigs[].boardId, or its name as boardName (not both) |
No |
list_wordpress_categories |
List the categories of a WordPress site; pass their ids as wordpressConfigs[].categoryIds |
No |
resolve_linkedin_organization |
Look up a LinkedIn company page by its URL or vanity name and get the mention to paste into a LinkedIn post. Only on a server you run yourself for now, see Run the server yourself |
No |
Recurring posts
| Tool | What it does | Changes data |
|---|---|---|
list_recurring_posts |
List recurring posts (daily, weekly, monthly or yearly series made with recurrence on create_post) by status |
No |
get_recurring_post |
Get one recurring post with its schedule, status and next occurrence | No |
pause_recurring_post |
Pause a recurring post and delete its upcoming scheduled post | Yes |
resume_recurring_post |
Resume a paused recurring post from the next occurrence after now | Yes |
delete_recurring_post |
Stop a recurring post for good; posts already published are kept | Yes |
RSS feeds
| Tool | What it does | Changes data |
|---|---|---|
list_rss_feeds |
List the RSS and Atom feeds that turn new items into posts, with why a paused one stopped | No |
get_rss_feed |
One RSS feed with its settings and status | No |
preview_rss_feed |
Fetch a feed without saving it and show the 5 newest items as posts | No |
create_rss_feed |
Connect a feed: each new item becomes a draft, a scheduled post or a published post on the target accounts | Yes |
update_rss_feed |
Change a feed's targets, mode, template, keywords or interval | Yes |
delete_rss_feed |
Stop a feed for good; its posts stay | Yes |
list_rss_feed_items |
What a feed did with each item: posted, filtered, skipped or failed | No |
pause_rss_feed |
Pause a feed | Yes |
resume_rss_feed |
Resume a paused feed | Yes |
check_rss_feed |
Check a feed now instead of waiting for its interval | Yes |
Analytics
| Tool | What it does | Changes data |
|---|---|---|
get_analytics_overview |
Views, likes, comments, shares, followers and engagement rate for a date window, with the change against the previous window | No |
get_analytics_timeseries |
The same metrics bucketed by day, week or month | No |
get_platform_breakdown |
The same metrics split per platform, with the metrics each platform reports | No |
list_post_analytics |
Per-post metrics, sortable by any metric, for top-post and "how did this post do" questions | No |
list_top_posts |
The best posts in a window by one metric, in one call | No |
list_discovered_posts |
Posts found on the connected accounts that were not published through AdaptlyPost | No |
get_analytics_sync_status |
When each account last synced and whether one needs reconnecting for analytics | No |
trigger_analytics_sync |
Refresh analytics now (once per 15 minutes per workspace) | Yes |
Inbox
The inbox holds comments on the account's posts (Facebook, Instagram, Threads, YouTube, Bluesky, Mastodon and LinkedIn), mentions (Facebook, Instagram, Threads, Bluesky and Mastodon), direct messages (Facebook, Instagram, Bluesky and Mastodon) and Google Business Profile reviews. TikTok and X have no inbox. It syncs every 10 minutes per account. An account that lacks a platform permission for a channel shows RECONNECT_REQUIRED in get_inbox_summary, and a write to it answers 403 inbox_reconnect_required: reconnect the account in AdaptlyPost.
| Tool | What it does | Changes data |
|---|---|---|
get_inbox_summary |
Unread counts per channel, and per account which channels work, need a reconnect or are unsupported | No |
refresh_inbox |
Sync the inbox now instead of waiting for the next 10-minute run | Yes |
list_inbox_comments |
Comments on the account's posts, newest first, filtered by account, platform, status, date, text or post | No |
get_inbox_comment |
One comment with its parent and the replies under it | No |
reply_to_inbox_comment |
Post a public reply to a comment from the account | Yes |
hide_inbox_comment |
Hide a comment on the platform | Yes |
unhide_inbox_comment |
Show a hidden comment again | Yes |
like_inbox_comment |
Like a comment (Facebook, Bluesky, Mastodon, LinkedIn) | Yes |
unlike_inbox_comment |
Take back a like | Yes |
delete_inbox_comment |
Delete a comment where the platform allows it | Yes |
update_inbox_comments_status |
Mark comments unread, read or done in AdaptlyPost | Yes |
list_inbox_mentions |
Posts and comments that mention the account | No |
reply_to_inbox_mention |
Post a public reply to a mention | Yes |
update_inbox_mentions_status |
Mark mentions unread, read or done | Yes |
list_inbox_conversations |
Direct message conversations, most recent first | No |
get_inbox_conversation |
One conversation with its messages | No |
send_inbox_message |
Send a direct message; Facebook and Instagram allow it within 24 hours of the person's last message | Yes |
update_inbox_conversations_status |
Mark conversations unread, read or done | Yes |
list_inbox_reviews |
Google Business Profile reviews, filtered by rating and whether they have a reply | No |
reply_to_inbox_review |
Post or replace the location's reply to a review | Yes |
delete_inbox_review_reply |
Delete the location's reply to a review | Yes |
update_inbox_reviews_status |
Mark reviews unread, read or done | Yes |
Webhooks
| Tool | What it does | Changes data |
|---|---|---|
list_webhooks |
List webhook endpoints and their delivery state | No |
get_webhook |
One webhook endpoint | No |
create_webhook |
Register an endpoint for the post, account and image events, or for the events you pick, inbox events included; the signing secret goes to the user through a one-time browser link, never to the assistant | Yes |
update_webhook |
Change an endpoint's URL or events, or turn it off and on | Yes |
delete_webhook |
Delete an endpoint | Yes |
test_webhook |
Send a signed webhook.test event and see how the endpoint answered |
Yes |
AI captions and images
| Tool | What it does | Changes data |
|---|---|---|
generate_caption |
Write a caption from a prompt, kept within a platform's character limit; 2 AI credits | Yes |
refine_caption |
Rewrite an existing caption from an instruction, or continue a partial one; 2 AI credits | Yes |
generate_image |
Start an image generation and get a jobId; 2 credits standard, 4 premium |
Yes |
get_image_job |
Poll an image job until completed (with a public imageUrl) or failed |
No |
Roles, permissions and safety
- Every call runs under a workspace role: Admin, Editor, Contributor or Viewer. An API key carries the role it was created with and never does more than the member who created it; an OAuth sign-in acts with the member's own role in each workspace.
- Admin does everything. Editor creates, schedules and publishes. Contributor creates and edits its own drafts, uploads media and generates captions and images, but cannot schedule, publish, retry, bulk schedule or delete non-drafts. Viewer only reads. Give an agent that should not post on its own a Contributor key, or sign in as a Contributor.
- An action outside the role answers 403 with
code: permission_denied. The tool tells the agent to save a draft and ask a workspace member to publish, not to retry or look for another key. - Read-only tools carry
readOnlyHint, so clients that ask before a write (Claude, ChatGPT, Hermes) ask before creating, scheduling, publishing or deleting anything. generate_caption,refine_captionandgenerate_imagespend AdaptlyPost AI credits on every call: 2 credits per caption, 2 or 4 per image.- Every role can read the inbox. Replying, messaging, hiding, liking, deleting and marking inbox items need Admin or Editor. Replies and messages reach real people, so the agent shows the text and what it answers before it sends.
- Without an API-capable plan every call answers 403 with
code: subscription_required. A 429 carriesRetry-After.
Workspaces
An OAuth sign-in can reach several workspaces, each with its own data and your own role there. list_workspaces returns them, and every other tool takes an optional workspaceId, which the server sends as the X-Workspace-Id header. Without it a tool works in the workspace list_workspaces marks current. A workspaceId the sign-in cannot reach answers 403 with code: workspace_access_denied. An API key belongs to one workspace.
The skill
npx skills add adaptlypost/agent
Or copy skills/adaptlypost/ into your project's skills folder. Cursor can also read it as a remote rule from https://raw.githubusercontent.com/adaptlypost/agent/main/skills/adaptlypost/SKILL.md.
Setup
- Create an account at adaptlypost.com and connect your social accounts.
- Create an API token at Settings > API Tokens and pick its role.
- Run:
./scripts/adaptlypost.js setup --key adaptly_xxxxx
Roles
A token is issued under a workspace role and never does more than the member who created it. Admin does everything. Editor creates, schedules and publishes. Contributor creates and edits its own drafts and uploads media but cannot schedule or publish. Viewer reads. Pick Contributor for an agent that should not post on its own.
An operation outside the role answers 403 with code: permission_denied. The skill tells the agent to stop, save a draft where that applies, and ask a workspace member to publish, instead of retrying or hunting for another key.
What the agent can do
- Post to any of the 14 platforms in one call, with per-platform captions, first comments, threads of replies with images, thumbnails, image shapes and media
- Check a post before creating it, and get every problem back at once
- Schedule for any future time, or bulk schedule up to 100 posts
- See per-platform results with error details, and retry only the platforms that failed
- Save drafts and publish them later
- Repeat a post daily, weekly, monthly or yearly, then pause, resume or stop the series
- Read analytics: views, likes, comments, followers and engagement per window, per platform and per post
- Look up a LinkedIn company page from its URL and mention it in a LinkedIn post
- Read and answer comments, mentions, direct messages and Google reviews from the inbox, and hide, like or delete comments
- Manage webhooks, including which events each one receives, and client connect links
- Write captions and generate images with AdaptlyPost AI, paid from your AI credits
You: Schedule a LinkedIn post for tomorrow at 9am about our new feature launch
Agent: Done. Post scheduled for tomorrow at 9:00 AM on your LinkedIn account.
Run the server yourself
The hosted server is the easy path. A server you run yourself over stdio also has resolve_linkedin_organization, which the hosted server gets after its next directory review. To run it yourself with Bun:
{
"mcpServers": {
"adaptlypost": {
"command": "bun",
"args": ["run", "/path/to/agent/mcp-server/src/index.ts"],
"env": { "ADAPTLYPOST_API_TOKEN": "adaptly_your_key" }
}
}
}
Or in Docker:
docker build -t adaptlypost-mcp .
docker run -i -e ADAPTLYPOST_API_TOKEN=adaptly_your_key adaptlypost-mcp
bun run src/index.ts --http in mcp-server/ serves the same tools over Streamable HTTP on port 3100, the way https://mcp.adaptlypost.com/mcp runs. Environment variables and local development are in mcp-server/README.md.
AdaptlyPost MCP questions
What tools does AdaptlyPost MCP provide?
It exposes 81 tools, including list_workspaces, get_me, list_accounts, check_account, remove_account.
Which social media platforms are supported?
The server supports 14 platforms: Instagram, TikTok, YouTube, X (Twitter), LinkedIn, Facebook, Pinterest, Threads, Bluesky, Mastodon, Google Business Profile, Tumblr, Telegram, and WordPress.
Does the server support media uploads?
Yes, it includes tools to upload images, videos, or documents from ChatGPT attachments, public URLs, or base64.
Can I automate posts using RSS feeds?
Yes, you can connect RSS or Atom feeds so that every new item automatically becomes a draft, scheduled post, or published post.