
Company News
AWS Security Hub Adds Socket for Supply Chain Security
Socket is now in the AWS Security Hub Extended plan. Adopt it through AWS, apply committed spend, and block malicious open source packages.
posterly-mcp-server
Advanced tools
MCP server for posterly: schedule and publish social media posts across 18 platforms from any MCP client (Claude, ChatGPT, Cursor, Windsurf, Cline, and more)
Use Posterly from any MCP-compatible AI client.
This package gives Claude Desktop, Cursor, Windsurf, Cline, and other local MCP clients a stdio server that can:
Posterly also exposes the same authenticated toolset over HTTP at poster.ly/mcp, but this npm package is the local stdio connection for desktop AI clients.
https://www.poster.ly/api/mcphttps://www.poster.ly/.well-known/mcp/server-card.jsonhttps://www.poster.ly/api/openapihttps://www.poster.ly/.well-known/agent-skills/index.jsonhttps://www.poster.ly/llms-full.txthttps://www.poster.ly/agents/signuphttps://smithery.ai/servers/awpthorp/posterlyhttps://github.com/awpthorp/posterly/tree/main/mcp-serverThe official MCP Registry metadata is in server.json. Its canonical registry
name is io.github.awpthorp/posterly, matching this package's mcpName.
20+get_mcp_status, get_agent_signup_info, start_signup, and get_signup_sessionwhoami, list_accounts, create_connect_session, and create_postRecommended: use it via npx in your MCP config so your client runs the current server without a global install.
To let an AI agent start signup before a Posterly API key exists, install the server without POSTERLY_API_KEY:
{
"mcpServers": {
"posterly": {
"command": "npx",
"args": ["-y", "posterly-mcp-server@latest"]
}
}
}
After paid signup is complete and Posterly shows an API key, add POSTERLY_API_KEY to unlock the authenticated tools:
{
"mcpServers": {
"posterly": {
"command": "npx",
"args": ["-y", "posterly-mcp-server@latest"],
"env": {
"POSTERLY_API_KEY": "pst_live_your_key_here"
}
}
}
}
start_signup.POSTERLY_API_KEY.get_mcp_status, then whoami, then continue by connecting your first social account.The signup and connect tools return user-facing next steps by default, so agents should report progress in plain language instead of showing raw curl, HTTP payloads, or JSON. Pass debug: true to start_signup, get_signup_session, get_connect_link, create_connect_session, or get_connect_session only when troubleshooting.
Post tools return View in Posterly dashboard links. After scheduling, listing, reading, or deleting posts, share the returned link with the user. Current-month scheduled posts open in Calendar with the post selected; broader/future post views use Table.
Add this to your Claude Desktop MCP config:
{
"mcpServers": {
"posterly": {
"command": "npx",
"args": ["-y", "posterly-mcp-server@latest"],
"env": {
"POSTERLY_API_KEY": "pst_live_your_key_here"
}
}
}
}
Add the same server definition to your Cursor MCP settings:
{
"mcpServers": {
"posterly": {
"command": "npx",
"args": ["-y", "posterly-mcp-server@latest"],
"env": {
"POSTERLY_API_KEY": "pst_live_your_key_here"
}
}
}
}
posterly-mcp-server@0.27.0 exposes 75 tools.
Public setup tools work before POSTERLY_API_KEY exists:
get_mcp_status (show the installed server version, latest npm version, MCP endpoint health, API auth health, and update guidance)get_agent_signup_infostart_signup (start paid signup and return a Posterly checkout handoff URL)get_signup_session (poll checkout, payment, password, and agent-access status)Authenticated tools require POSTERLY_API_KEY:
whoamilist_accountsdisconnect_account (disconnect a connected social account after explicit confirmation)get_connect_linkcreate_connect_session (create a guided browser handoff for connecting a social account)get_connect_session (poll connection progress while the user approves OAuth or enters credentials)create_api_key (create a new API key after explicit confirmation; scopes cannot exceed the calling dashboard key)delete_api_key (revoke a user-created API key after explicit confirmation)get_subscription (read subscription status, tier, and cancel/pause state; requires billing:read)cancel_subscription (cancel after explicit confirmation; the agent must ask for a reason first; requires billing:write)pause_subscription (pause 30 days, one per 90-day cooldown, after confirmation; requires billing:write)resume_subscription (resume a paused subscription; requires billing:write)downgrade_subscription (downgrade one tier at next renewal after confirmation; requires billing:write)list_oauth_clientscreate_oauth_client (create a public PKCE client after explicit confirmation)update_oauth_client (update redirect URIs/scopes after explicit confirmation)delete_oauth_client (delete a developer client after explicit confirmation)list_platformsget_platform_schematrigger_platform_helperlist_brandsget_brandlist_brand_accountsget_brand_profileget_learned_voice (read the voice learned from one account's real published captions)list_postsget_postget_post_missingask_support (authenticated docs-backed support with read-only account/post diagnostics; human tickets require explicit confirmation)create_post (supports thread_posts: string[] for X / Threads reply chains, plus platform_settings for platform-specific composer controls)validate_post (checks and normalizes a post without creating it; call before requesting confirmation for create_post)submit_agent_feedback (writes bounded private operational telemetry after a real workflow outcome; never include secrets, prompts, captions, media URLs, or personal data)create_posts_batch (create up to 25 confirmed posts in one API request)update_post (also accepts platform_settings)update_post_status (pause, resume, schedule, or draft a post after confirmation)update_post_release_id (set/repair external release/group metadata after confirmation)delete_postdelete_post_group (delete grouped draft/scheduled posts after confirmation)upload_mediaupload_media_from_urlcreate_signed_uploadfind_available_slotgenerate_captionsgenerate_imageget_video_optionsrun_video_function (read-only Veo helpers for cost estimation and request validation)generate_video (queues a cost-guarded Veo video job)get_video_job (poll one job or list recent jobs)get_account_analyticsget_post_analyticsget_performance_profile (read an account's 90-day performance profile: top formats, timing, caption-length patterns, engagement-rate trend, narrative summary)get_post_insights (list per-post feedback-loop insights: performance tier, diagnosis, next action, metrics, baseline)list_post_suggestions (list evidence-based weekly post drafts in the account's learned voice, each with a rationale)dismiss_suggestion (dismiss a post suggestion after confirmation; never touches one already scheduled)list_google_business_reviewsget_google_business_review_linkaudit_google_business_profilesuggest_google_business_review_replyreply_google_business_review (post/update a public GBP review reply after explicit confirmation)delete_google_business_review_reply (delete a GBP review reply after explicit confirmation)list_google_business_media (list the photos/videos on a GBP profile gallery)add_google_business_media (add a photo/video to a GBP profile gallery from a public URL, after explicit confirmation)delete_google_business_media (remove a photo/video from a GBP profile gallery after explicit confirmation)Google Business tip: pass
account_id(the integeridfromlist_accounts) to every GBP tool. If you uselocation_idinstead, it is the numericlocation_idfromlist_accounts(the GBP location id), not theChIJ...Place ID thatget_google_business_review_linkreturns. Passing the Place ID resolves to no account and returns "Google Business Profile account not found".
list_activityget_updates (read the latest posterly product updates and news)list_webhookscreate_webhook (create a webhook after explicit confirmation)update_webhook (update a webhook after explicit confirmation)delete_webhook (delete a webhook after explicit confirmation)test_webhook (send a signed test delivery after explicit confirmation)get_x_posting_quotaAnalytics tools currently support Instagram, Facebook Pages, LinkedIn, Google Business Profile, Pinterest, YouTube, and Threads.
This npm/stdio server can read local file paths. When upload_media receives a larger local file, it automatically requests a signed upload URL and uploads the raw bytes before returning the public media URL.
The hosted HTTP MCP endpoint cannot do that for local files by itself because MCP tool calls are JSON-only. On hosted HTTP MCP, upload_media is for small base64 uploads up to 5MB decoded. For larger media there, use upload_media_from_url for public direct media URLs, or call create_signed_upload only from clients that can also PUT the raw file bytes to the returned upload_url.
Posterly workspaces often have multiple connected accounts under one client or brand.
The brand tools let an assistant work at the same level a human does:
list_brands lets the agent see clients/brands in the workspaceget_brand returns summary info for one brandlist_brand_accounts resolves a brand into the actual connected accountsget_brand_profile returns saved brand guidance like tone, audience, keywords, dos and don'ts, and visual notesThis makes prompts like:
much more reliable than forcing the agent to guess from raw account handles alone.
What Posterly accounts do I have connected?Disconnect the old Instagram account after I confirm the exact account IDList my brands in PosterlyShow me the brand profile for GrassrootsFind the next 3 posting slots for my LinkedIn accountSchedule a post for tomorrow at 9am for the Posterly Instagram accountPause post 971 after I confirm it is the right scheduled postSchedule this as an Instagram Story with a first comment and @partner as collaboratorSchedule this YouTube video as unlisted, add the thumbnail URL, and put it in our launch playlistPost this TikTok with direct-post privacy set to public and stitch disabledSchedule these 5 photos as a TikTok (image posts auto-detect as a photo slideshow of 1 to 35 images, no post type needed)How did Grassroots perform on Instagram in the last 30 days?Ask posterly support why post 3041 failed, but do not raise a human ticket unless I confirmThis package uses the Posterly API/MCP add-on:
$3/month add-on100 create-post requests/hour per API key, with separate media/read limitsEach API call counts as one request, so use create_posts_batch when you need to schedule multiple posts in one confirmed operation.
Details: poster.ly/dashboard/api
From the mcp-server directory:
npm install
npm run build
npm start
The package reads:
POSTERLY_API_KEY for authenticated Posterly toolsPOSTERLY_URL if you need to point at a non-production environmentFAQs
MCP server for posterly: schedule and publish social media posts across 18 platforms from any MCP client (Claude, ChatGPT, Cursor, Windsurf, Cline, and more)
The npm package posterly-mcp-server receives a total of 239 weekly downloads. As such, posterly-mcp-server popularity was classified as not popular.
We found that posterly-mcp-server demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Socket is now in the AWS Security Hub Extended plan. Adopt it through AWS, apply committed spend, and block malicious open source packages.

Research
/Security News
Popular npm packages keyv and cacheable compromised.

Security News
A misconfiguration gave three Anthropic models internet access, and one, believing it was in a simulation, shipped a credential-stealing package to PyPI.