MCP tool changes

posterly's MCP server now has 59 tools covering 91 actions. What moved where, when the old names stop working, and what to update.

Last updated Oct 13, 2026Updated this week

posterly's MCP server was reorganised so your AI assistant has fewer, clearer tools to choose from. Nothing was removed: 38 tools were folded into related tools as a view (for reads) or an action (for changes). The hosted endpoint now has 59 tools covering 91 actions, and the npm package has 62 tools covering 94 actions.

The REST API did not change. Only MCP tool names moved.

Do I need to do anything?

  • You only chat with your assistant (ChatGPT, Claude, Cursor, Poke, and so on): no action needed. Your assistant picks up the new tools the next time it loads the tool list. In ChatGPT, if the assistant still offers old tools, refresh the posterly connector in ChatGPT's app settings (or disconnect and reconnect it).
  • You use the npm package with npx -y posterly-mcp-server@latest: restart your MCP client to load version 0.45.0. A version you pinned yourself keeps its old tool list until you upgrade.
  • You have scripts, agent skills, saved prompts, or automations that call tools by name: switch them to the new names below. The old names keep working until the date below, so nothing breaks today.
  • You approved tools with "always allow" (or keep an allowlist, for example Claude Code's permission settings): those approvals are tied to the old tool names and do not carry over. Your client asks once for each new tool; approve it again, or update your allowlist entries to the new names (for example mcp__posterly__list_analytics instead of mcp__posterly__get_post_analytics).

When the old names stop working

The old names are hidden aliases. They are not listed any more, but a call to an old name still runs the new tool and returns the same result as before, plus a short note at the end naming the new call. Two small differences: empty cells in account tables now read "n/a", and on the hosted endpoint an old name now rejects fields it does not use (fields sent as empty or null are simply ignored). The old names may stop working after 12 January 2027 (2027-01-12). Move to the new names before then.

Until that date, an old name also keeps its old one-step confirm: confirm: true alone still runs it. The new names use preview then confirm for public and destructive actions (see below).

Preview then confirm

Actions that post publicly or delete things now take two calls on the new names:

  1. Call the tool without confirm. Nothing changes. You get a plain summary of what will happen and a preview_id.
  2. Show the preview to the user. Only after they approve, call again with the same fields plus confirm: true and that preview_id.

A preview expires after 10 minutes and only works for exactly the same fields and the same user. Public posts (a comment reply, a DM, a Google review reply, new Google profile media) can be confirmed once, so a retried call never posts twice. Other changes keep a single confirm: true after the user confirms.

For example, replying to a comment:

{ "name": "manage_comment", "arguments": { "action": "reply", "comment_id": "c_123", "content": "Thank you!" } }

returns a preview with a preview_id. After the user approves:

{ "name": "manage_comment", "arguments": { "action": "reply", "comment_id": "c_123", "content": "Thank you!", "confirm": true, "preview_id": "pv1...." } }

What moved where

Each row shows the old name, the tool it moved into, and the view, action, or parameter that picks the same behaviour. All other arguments stay the same.

Status and accounts

Old nameNew toolHow to call itPreview first
get_mcp_statuswhoamiview: "status"No
get_connect_sessionlist_accountsview: "connect_session"No
get_learned_voicelist_accountsview: "learned_voice"No
get_performance_profilelist_accountsview: "performance_profile"No

Platforms and connection links

Old nameNew toolHow to call itPreview first
get_platform_schemalist_platformsview: "schema"No
get_connect_linklist_platformsview: "connect_link" (the old platform parameter is now target)No

Brands

Old nameNew toolHow to call itPreview first
get_brandlist_brandsview: "brand"No
list_brand_accountslist_brandsview: "accounts"No
get_brand_profilelist_brandsview: "profile"No

Posts

Old nameNew toolHow to call itPreview first
get_post_missingget_postview: "missing"No
update_post_statusupdate_postpass statusNo
update_post_release_idupdate_postpass release_idNo
delete_post_groupdelete_postpass group_idYes

Media

Old nameNew toolHow to call itPreview first
upload_media_from_urlupload_mediapass urlNo

Analytics

Old nameNew toolHow to call itPreview first
get_account_analyticslist_analyticsview: "accounts"No
get_post_analyticslist_analyticsview: "posts"No
get_post_insightslist_analyticsview: "insights"No

AI jobs

Old nameNew toolHow to call itPreview first
get_image_joblist_jobstype: "image"No
get_video_joblist_jobstype: "video"No

Inbox comments

Old nameNew toolHow to call itPreview first
get_commentlist_commentspass comment_idNo
reply_to_commentmanage_commentaction: "reply"Yes
update_commentmanage_commentaction: "update"No
delete_commentmanage_commentaction: "delete"Yes

Inbox DMs

Old nameNew toolHow to call itPreview first
get_conversationlist_conversationspass conversation_idNo
send_messagemanage_conversationaction: "send"Yes
sync_inboxmanage_conversationaction: "sync"No

Google Business reviews

Old nameNew toolHow to call itPreview first
get_google_business_review_linklist_google_business_reviewsview: "review_link"No
suggest_google_business_review_replymanage_google_business_reviewaction: "suggest_reply"No
reply_google_business_reviewmanage_google_business_reviewaction: "reply"Yes
delete_google_business_review_replymanage_google_business_reviewaction: "delete_reply"Yes

Google Business profile media

Old nameNew toolHow to call itPreview first
add_google_business_mediamanage_google_business_mediaaction: "add"Yes
delete_google_business_mediamanage_google_business_mediaaction: "delete"Yes

Webhooks

Old nameNew toolHow to call itPreview first
update_webhookmanage_webhookaction: "update"No
delete_webhookmanage_webhookaction: "delete"Yes
test_webhookmanage_webhookaction: "test"No

OAuth developer clients

Old nameNew toolHow to call itPreview first
create_oauth_clientmanage_oauth_clientaction: "create"No
update_oauth_clientmanage_oauth_clientaction: "update"No
delete_oauth_clientmanage_oauth_clientaction: "delete"Yes

Tools that kept their names

whoami, list_accounts, list_platforms, list_brands, get_post, update_post, delete_post, upload_media, list_comments, list_conversations, and list_google_business_reviews kept their names and now also cover the tools merged into them. Called the old way (without a view or the new parameters), each behaves exactly as before. Every other tool is unchanged. The full list with every view and action is on the MCP Server page.

Later additions

  • 0.46.0: teammates and API access. manage_workspace_member with action: "update", a member_id and api_access (true or false, sent on its own) turns a teammate's API and AI access on or off, preview then confirm. list_workspace_members shows API access for each member (and, for owners and admins, their key count, connected AI apps and last use). whoami shows api_access and api_access_source per workspace. generate_image, generate_video, upload_media, create_signed_upload and create_media_drop take an optional workspace_id to say which workspace pays. No tool was renamed. Details: Teammates and API access.
  • 0.47.1: Instagram caption add-ons. Create or update can attach an Instagram caption add-on (a poll or a comment prompt) when that Instagram account has a Meta (Facebook Login) connection in this workspace. Accounts connected only through Instagram Login cannot use add-ons. Details: Instagram caption add-ons.
  • 0.48.0: published post deletion choice. delete_post gains an optional delete_mode: posterly keeps live content; platform also needs confirm_published: true. Live removal covers eligible connected platforms that have saved post IDs and deletion permissions. Threads needs threads_delete, which the current connection flow does not request. YouTube upload-only permission is insufficient. Instagram live deletion is disabled: Meta requires instagram_manage_contents through Facebook Login and a Facebook user token, which our current deletion integration does not provide. Publishing permissions are insufficient. A refusal keeps the posterly record. Group or bulk deletes never request live deletion. Details: MCP Server and Update or delete a post.
  • 0.48.2: TikTok inbox warning on create. create_post and create_posts_batch can return a warnings array alongside a successful create. For TikTok posts sent to the inbox (no privacy_level set), a warning fires when the account already has around 5 pending inbox shares, since TikTok only holds a handful at once. The post is still created; the warning just flags that it may fail to publish until waiting videos are finished or deleted in the TikTok app. Details: MCP Server and Create a post.
  • 0.48.3: best times to post. find_available_slot gains an optional strategy. The default, next_free, works exactly as before. best_engagement (needs account_ids) ranks the next 7 days by when those accounts get the most engagement and returns up to count times, each with a reason and a basis: your own posts (needs analytics:read and paid analytics), the platform-wide pattern, or a general default. No tool was renamed. Details: Suggested times and Suggest the best times to post.
  • 0.48.4: star ratings on best-times results. find_available_slot with strategy: "best_engagement" now shows a Rating column (1 to 5 stars) alongside the reason, confidence-capped by basis: your own posts up to 5, the platform pattern up to 4, a general default up to 3. No tool was renamed. Details: Suggested times and Suggest the best times to post.
  • 0.48.5: pause and resume publishing. Two new tools in the admin set. list_publishing_pauses shows whether the workspace or any brand you can see is paused, and what you may do. manage_publishing_pause takes action: "pause" (optional brand_id; call without confirm for a preview of how many scheduled posts it holds, then confirm: true after the user agrees; publisher or higher), action: "resume" (admin or higher; returns the posts back on the schedule and the IDs of posts that missed their time), and action: "publish_missed" (post_ids and confirm: true; admin or higher). Missed posts never publish on their own. No tool was renamed. Details: Pause all publishing for a workspace or a brand and Pause and resume publishing.
  • 0.49.0: whole months and honest totals. list_posts takes scheduled_from, scheduled_to (a plain end date includes its whole day), timezone, order, and offset, and limit now goes up to 200. With a date range it lists oldest first. Every answer says whether all matching posts are shown and, if not, which offset to call next. A new view: "counts" returns exact totals per day, status, account, and brand for a range (up to 366 days). view: "list" is the default. Answers now end with that completeness line, show each post's type, account ID, and brand ID, and show times with their time zone (UTC unless you pass timezone). Unknown arguments now return an error naming them, so assistants retry with the right parameter instead of silently getting the wrong posts. list_activity, list_media, list_post_suggestions, and get_updates also take offset and say when there is more. No tool was renamed. Details: MCP Server and List posts.
  • 0.49.2: Nano Banana 2.1 and image sizes. generate_image with the Google flash model now runs on Nano Banana 2.1. resolution is 1K, 2K, or 4K; 512 is no longer offered and is rejected by the tool schema, and a direct API call with it gets a 400 that names the supported sizes. Credit prices are unchanged (15, 23, and 35 at 1K, 2K, and 4K). No tool was renamed. Details: MCP Server and AI Images.

Tool sets

Tools are now grouped into sets: core, creative, inbox, google_business, admin, and billing (plus signup on the npm package). Every set is on by default, so you do not need to change anything. If you want your assistant to see fewer tools, set POSTERLY_TOOLSETS=core,inbox for the npm package, or add ?toolsets=core,inbox to the endpoint URL when you connect with an API key. Any tool can still be called by name. Details: MCP Server.