AdaptlyPost MCP server
2026년 11월 13일 커밋AI agent가 14개의 소셜 미디어 플랫폼에 걸쳐 게시물을 작성, 예약, 게시하고 참여 분석을 관리할 수 있도록 지원합니다.
다른 이름 adaptlypost/agent
- 스타
- 0
- Tools
- 81
- 다운로드, 30일
- —
- 최신 버전
- —
- 마지막 커밋
- 2026년 11월 13일
- 라이선스
- MIT
AdaptlyPost MCP란?
AdaptlyPost은(는) MCP server입니다. AI agent가 14개의 소셜 미디어 플랫폼에 걸쳐 게시물을 작성, 예약, 게시하고 참여 분석을 관리할 수 있도록 지원합니다. 81개 도구를 제공합니다. 예: list_workspaces, get_me, list_accounts.
프로젝트 README에서 생성된 요약
AdaptlyPost MCP server 정보
AdaptlyPost agent는 Instagram, TikTok, X, LinkedIn, YouTube를 포함한 14개의 다양한 플랫폼에서 AI agent가 소셜 미디어 활동을 관리할 수 있는 통합적인 방법을 제공합니다. 사용자는 콘텐츠를 작성, 예약 및 게시할 수 있으며, 댓글, 멘션, 다이렉트 메시지를 위한 인박스를 통해 참여도 또한 관리할 수 있습니다. 이 server에는 미디어 업로드 및 RSS 피드 자동화부터 대량 예약 및 상세 참여 분석에 이르기까지 모든 과정을 처리하는 80개의 도구가 포함되어 있습니다.
개발자는 원격 URL을 사용하여 이 server를 Claude Desktop, Cursor, ChatGPT, Windsurf와 같은 다양한 MCP client에 연결할 수 있습니다. 설정은 신속하게 이루어지도록 설계되었으며, 대부분의 client에서 수동 API key 입력 없이 OAuth를 사용합니다. 다만, headless agent는 adaptly_로 시작하는 API token을 사용할 수 있습니다. 이 시스템은 반복 게시물 생성, 게시 전 콘텐츠 검증, RSS 피드를 통한 새로운 블로그 엔트리의 소셜 미디어 초안 자동 전환과 같은 복잡한 워크플로우를 지원합니다.
활용 사례
- 1멀티 플랫폼 콘텐츠 예약단일 공지사항을 각 플랫폼에 최적화된 버전으로 LinkedIn과 X에 특정 시간에 맞춰 예약합니다.
- 2블로그에서 소셜 미디어로의 자동 워크플로우RSS 피드를 설정하여 블로그에 게시된 모든 새 기사가 소셜 미디어의 초안으로 자동 생성되도록 합니다.
- 3참여 및 커뮤니티 관리읽지 않은 댓글과 메시지를 검토하여 소셜 미디어 상호작용을 관리합니다.
- 4성과 분석 및 복구게시 실패가 발생한 플랫폼을 식별하고 해당 서비스에만 콘텐츠를 다시 게시하도록 시도합니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
AdaptlyPost MCP 도구 81
README에서 감지됨list_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 | — |
도구 81개 모두 보기도구 수 줄이기
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 | — |
구성
ADAPTLYPOST_API_TOKEN
| 이름 | 설명 | 유형 |
|---|---|---|
| ADAPTLYPOST_API_TOKEN | — |
자동 검사
2026년 11월 14일에 실행됨전체 보고서 →아직 인증되지 않았습니다. 서버는 80점 이상의 점수, 심각한 결함 없음, 그리고 검사에 충분한 데이터를 갖추어야 합니다. 검사 방식 · 점수를 높이기 위해 수정할 항목
- 소스 저장소 연결 및 접근 가능adaptlypost/agent is public and reachablegithub.com/adaptlypost/agent ↗통과
- 패키지가 이 저장소를 소스로 명시검사되지 않음
- 빌드 출처(Sigstore 증명)검사되지 않음
- 오픈 소스 라이선스 (OSI)MITspdx.org/licenses/MIT.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-11-12github.com/adaptlypost/agent ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음검사되지 않음
- 패키지 및 해당 종속성에 중요한 보안 권고 없음검사되지 않음
- 모델에 대한 숨겨진 지침 없음81 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 원격 엔드포인트가 MCP 핸드셰이크에 응답검사되지 않음
README
GitHub에서 보기AdaptlyPost 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 질문
AdaptlyPost MCP는 어떤 도구를 제공하나요?
81개 도구를 제공합니다. 예: list_workspaces, get_me, list_accounts, check_account, remove_account.
어떤 소셜 미디어 플랫폼을 지원하나요?
이 MCP server는 Instagram, TikTok, YouTube, X (Twitter), LinkedIn, Facebook, Pinterest, Threads, Bluesky, Mastodon, Google Business Profile, Tumblr, Telegram, WordPress 등 14개 플랫폼을 지원합니다.
미디어 업로드를 지원하나요?
네, ChatGPT 첨부 파일, 공개 URL 또는 base64를 통해 이미지, 비디오, 문서를 업로드할 수 있는 도구를 포함하고 있습니다.
RSS 피드를 사용하여 게시물을 자동화할 수 있나요?
네, RSS 또는 Atom 피드를 연결하여 새로운 항목이 자동으로 초안, 예약 게시물 또는 게시물로 전환되도록 설정할 수 있습니다.