posterly-mcp-server 0.44.0 → 0.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/README.md +310 -111
  2. package/dist/index.js +190 -894
  3. package/dist/lib/alias-transport.d.ts +84 -0
  4. package/dist/lib/alias-transport.js +193 -0
  5. package/dist/lib/api-client.d.ts +18 -0
  6. package/dist/lib/api-client.js +55 -0
  7. package/dist/lib/preview-token-core.d.ts +62 -0
  8. package/dist/lib/preview-token-core.js +131 -0
  9. package/dist/lib/preview-token.d.ts +23 -0
  10. package/dist/lib/preview-token.js +44 -0
  11. package/dist/lib/tool-registry.d.ts +246 -0
  12. package/dist/lib/tool-registry.js +394 -0
  13. package/dist/lib/tool-runtime.d.ts +68 -0
  14. package/dist/lib/tool-runtime.js +85 -0
  15. package/dist/lib/version.d.ts +1 -1
  16. package/dist/lib/version.js +1 -1
  17. package/dist/tools/audit-google-business-profile.js +1 -1
  18. package/dist/tools/connect-account.d.ts +4 -4
  19. package/dist/tools/connect-account.js +2 -2
  20. package/dist/tools/create-connect-session.d.ts +2 -2
  21. package/dist/tools/create-connect-session.js +2 -2
  22. package/dist/tools/create-post.d.ts +6 -6
  23. package/dist/tools/create-post.js +3 -3
  24. package/dist/tools/create-posts-batch.d.ts +4 -4
  25. package/dist/tools/create-webhook.d.ts +2 -2
  26. package/dist/tools/delete-post.d.ts +34 -10
  27. package/dist/tools/delete-post.js +52 -16
  28. package/dist/tools/generate-captions.d.ts +2 -2
  29. package/dist/tools/generate-image.d.ts +4 -4
  30. package/dist/tools/generate-image.js +2 -2
  31. package/dist/tools/generate-video.d.ts +6 -6
  32. package/dist/tools/generate-video.js +1 -1
  33. package/dist/tools/get-agent-signup-info.js +2 -2
  34. package/dist/tools/get-post.d.ts +16 -1
  35. package/dist/tools/get-post.js +35 -19
  36. package/dist/tools/list-accounts.d.ts +49 -3
  37. package/dist/tools/list-accounts.js +148 -33
  38. package/dist/tools/list-analytics.d.ts +111 -0
  39. package/dist/tools/list-analytics.js +393 -0
  40. package/dist/tools/list-brands.d.ts +38 -3
  41. package/dist/tools/list-brands.js +138 -20
  42. package/dist/tools/list-comments.d.ts +29 -9
  43. package/dist/tools/list-comments.js +75 -34
  44. package/dist/tools/list-conversations.d.ts +32 -9
  45. package/dist/tools/list-conversations.js +63 -27
  46. package/dist/tools/list-google-business-media.js +1 -1
  47. package/dist/tools/list-google-business-reviews.d.ts +32 -9
  48. package/dist/tools/list-google-business-reviews.js +77 -52
  49. package/dist/tools/list-jobs.d.ts +60 -0
  50. package/dist/tools/list-jobs.js +81 -0
  51. package/dist/tools/list-platforms.d.ts +62 -3
  52. package/dist/tools/list-platforms.js +118 -9
  53. package/dist/tools/list-posts.d.ts +2 -2
  54. package/dist/tools/manage-comment.d.ts +102 -0
  55. package/dist/tools/manage-comment.js +125 -0
  56. package/dist/tools/manage-conversation.d.ts +79 -0
  57. package/dist/tools/manage-conversation.js +75 -0
  58. package/dist/tools/manage-google-business-media.d.ts +103 -0
  59. package/dist/tools/manage-google-business-media.js +126 -0
  60. package/dist/tools/manage-google-business-review.d.ts +146 -0
  61. package/dist/tools/manage-google-business-review.js +115 -0
  62. package/dist/tools/manage-oauth-client.d.ts +121 -0
  63. package/dist/tools/manage-oauth-client.js +94 -0
  64. package/dist/tools/manage-webhook.d.ts +99 -0
  65. package/dist/tools/manage-webhook.js +87 -0
  66. package/dist/tools/start-signup.d.ts +2 -2
  67. package/dist/tools/submit-agent-feedback.d.ts +4 -4
  68. package/dist/tools/trigger-platform-helper.d.ts +2 -2
  69. package/dist/tools/update-post.d.ts +62 -11
  70. package/dist/tools/update-post.js +79 -26
  71. package/dist/tools/upload-media.d.ts +32 -9
  72. package/dist/tools/upload-media.js +54 -18
  73. package/dist/tools/validate-post.d.ts +4 -4
  74. package/dist/tools/whoami.d.ts +15 -2
  75. package/dist/tools/whoami.js +221 -25
  76. package/package.json +5 -3
  77. package/scripts/test-alias-transport.mjs +368 -0
  78. package/scripts/test-client-header-sanitization.mjs +78 -0
  79. package/scripts/test-tool-annotations.mjs +38 -17
  80. package/server.json +9 -2
  81. package/src/index.ts +227 -1443
  82. package/src/lib/alias-transport.ts +233 -0
  83. package/src/lib/api-client.ts +65 -0
  84. package/src/lib/preview-token-core.ts +157 -0
  85. package/src/lib/preview-token.ts +54 -0
  86. package/src/lib/tool-registry.ts +538 -0
  87. package/src/lib/tool-runtime.ts +117 -0
  88. package/src/lib/version.ts +1 -1
  89. package/src/tools/audit-google-business-profile.ts +1 -1
  90. package/src/tools/connect-account.ts +2 -2
  91. package/src/tools/create-connect-session.ts +2 -2
  92. package/src/tools/create-post.ts +3 -3
  93. package/src/tools/delete-post.ts +60 -19
  94. package/src/tools/generate-image.ts +2 -2
  95. package/src/tools/generate-video.ts +1 -1
  96. package/src/tools/get-agent-signup-info.ts +2 -2
  97. package/src/tools/get-post.ts +35 -21
  98. package/src/tools/list-accounts.ts +187 -39
  99. package/src/tools/list-analytics.ts +444 -0
  100. package/src/tools/list-brands.ts +162 -26
  101. package/src/tools/list-comments.ts +86 -43
  102. package/src/tools/list-conversations.ts +81 -39
  103. package/src/tools/list-google-business-media.ts +1 -1
  104. package/src/tools/list-google-business-reviews.ts +93 -64
  105. package/src/tools/list-jobs.ts +91 -0
  106. package/src/tools/list-platforms.ts +135 -11
  107. package/src/tools/manage-comment.ts +142 -0
  108. package/src/tools/manage-conversation.ts +89 -0
  109. package/src/tools/manage-google-business-media.ts +147 -0
  110. package/src/tools/manage-google-business-review.ts +139 -0
  111. package/src/tools/manage-oauth-client.ts +116 -0
  112. package/src/tools/manage-webhook.ts +103 -0
  113. package/src/tools/update-post.ts +106 -39
  114. package/src/tools/upload-media.ts +76 -28
  115. package/src/tools/whoami.ts +253 -30
  116. package/tool-annotations.json +76 -149
  117. package/tool-registry.json +2085 -0
  118. package/src/tools/add-google-business-media.ts +0 -50
  119. package/src/tools/create-oauth-client.ts +0 -36
  120. package/src/tools/delete-comment.ts +0 -29
  121. package/src/tools/delete-google-business-media.ts +0 -30
  122. package/src/tools/delete-google-business-review-reply.ts +0 -30
  123. package/src/tools/delete-oauth-client.ts +0 -23
  124. package/src/tools/delete-post-group.ts +0 -17
  125. package/src/tools/delete-webhook.ts +0 -17
  126. package/src/tools/get-account-analytics.ts +0 -171
  127. package/src/tools/get-brand-profile.ts +0 -86
  128. package/src/tools/get-brand.ts +0 -34
  129. package/src/tools/get-comment.ts +0 -47
  130. package/src/tools/get-connect-link.ts +0 -61
  131. package/src/tools/get-connect-session.ts +0 -63
  132. package/src/tools/get-conversation.ts +0 -44
  133. package/src/tools/get-google-business-review-link.ts +0 -30
  134. package/src/tools/get-image-job.ts +0 -36
  135. package/src/tools/get-learned-voice.ts +0 -31
  136. package/src/tools/get-mcp-status.ts +0 -212
  137. package/src/tools/get-performance-profile.ts +0 -47
  138. package/src/tools/get-platform-schema.ts +0 -56
  139. package/src/tools/get-post-analytics.ts +0 -243
  140. package/src/tools/get-post-insights.ts +0 -60
  141. package/src/tools/get-post-missing.ts +0 -16
  142. package/src/tools/get-video-job.ts +0 -36
  143. package/src/tools/list-brand-accounts.ts +0 -36
  144. package/src/tools/reply-google-business-review.ts +0 -32
  145. package/src/tools/reply-to-comment.ts +0 -30
  146. package/src/tools/send-message.ts +0 -28
  147. package/src/tools/suggest-google-business-review-reply.ts +0 -44
  148. package/src/tools/sync-inbox.ts +0 -28
  149. package/src/tools/test-webhook.ts +0 -18
  150. package/src/tools/update-comment.ts +0 -31
  151. package/src/tools/update-oauth-client.ts +0 -38
  152. package/src/tools/update-post-release-id.ts +0 -25
  153. package/src/tools/update-post-status.ts +0 -31
  154. package/src/tools/update-webhook.ts +0 -36
  155. package/src/tools/upload-media-from-url.ts +0 -33
package/README.md CHANGED
@@ -33,7 +33,7 @@ name is `io.github.awpthorp/posterly`, matching this package's `mcpName`.
33
33
  ## Requirements
34
34
 
35
35
  - Node.js `20+`
36
- - No API key is required for the public setup tools: `get_mcp_status`, `get_agent_signup_info`, `start_signup`, and `get_signup_session`
36
+ - No API key is required for the public setup tools: `whoami` with `view: "status"`, `get_agent_signup_info`, `start_signup`, and `get_signup_session`
37
37
  - A posterly account, API add-on, and API key are required for authenticated tools like `whoami`, `list_accounts`, `create_connect_session`, and `create_post`
38
38
 
39
39
  ## Install
@@ -76,9 +76,9 @@ After paid signup is complete and posterly shows an API key, add `POSTERLY_API_K
76
76
  3. Pay in Stripe Checkout and set your posterly password in the browser.
77
77
  4. When posterly shows your API key, add it as `POSTERLY_API_KEY`.
78
78
  5. Restart your AI client.
79
- 6. Ask the AI to call `get_mcp_status`, then `whoami`, then continue by connecting your first social account.
79
+ 6. Ask the AI to call `whoami` with `view: "status"`, then `whoami`, then continue by connecting your first social account.
80
80
 
81
- 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.
81
+ 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`, `create_connect_session`, `list_platforms` (`view: "connect_link"`), or `list_accounts` (`view: "connect_session"`) only when troubleshooting.
82
82
 
83
83
  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.
84
84
 
@@ -122,116 +122,314 @@ Add the same server definition to your Cursor MCP settings:
122
122
 
123
123
  ## Available tools
124
124
 
125
- `posterly-mcp-server@0.44.0` exposes 92 tools.
126
-
127
- Public setup tools work before `POSTERLY_API_KEY` exists:
128
-
129
- - `get_mcp_status` (show the installed server version, latest npm version, MCP endpoint health, API auth health, and update guidance)
130
- - `get_agent_signup_info`
131
- - `start_signup` (start paid signup and return a poll URL, browser Checkout fallback, and prepaid PaymentIntent fields when agent-card pay is enabled)
132
- - `get_signup_session` (poll checkout, payment, password, and agent-access status)
133
-
134
- Authenticated tools require `POSTERLY_API_KEY`:
135
-
136
- - `whoami`
137
- - `list_accounts`
138
- - `disconnect_account` (disconnect a connected social account after explicit confirmation)
139
- - `get_connect_link`
140
- - `connect_account` (connect a credential-based account: telegram, bluesky, discord, wordpress, devto, hashnode, lemmy; no browser session needed)
141
- - `create_connect_session` (create a guided browser handoff for connecting a social account)
142
- - `get_connect_session` (poll connection progress while the user approves OAuth or enters credentials)
143
- - `create_api_key` (create a new API key after explicit confirmation; scopes cannot exceed the calling dashboard key)
144
- - `delete_api_key` (revoke a user-created API key after explicit confirmation)
145
- - `list_workspace_members` (list teammates, roles, brand access, and pending invites; requires `members:read`, granted by the "Manage team" permission)
146
- - `manage_workspace_member` (invite, update, or remove a colleague with `action`; always returns a preview first and only acts on `confirm: true` plus the `preview_id` after the user approves; requires `members:write`)
147
- - `get_subscription` (read subscription status, tier, and cancel/pause state; requires `billing:read`)
148
- - `cancel_subscription` (cancel after explicit confirmation; the agent must ask for a `reason` first; requires `billing:write`)
149
- - `pause_subscription` (pause 30 days, one per 90-day cooldown, after confirmation; requires `billing:write`)
150
- - `resume_subscription` (resume a paused subscription; requires `billing:write`)
151
- - `downgrade_subscription` (downgrade one tier at next renewal after confirmation; requires `billing:write`)
152
- - `list_oauth_clients`
153
- - `create_oauth_client` (create a public PKCE client after explicit confirmation)
154
- - `update_oauth_client` (update redirect URIs/scopes after explicit confirmation)
155
- - `delete_oauth_client` (delete a developer client after explicit confirmation)
156
- - `list_platforms`
157
- - `get_platform_schema`
158
- - `trigger_platform_helper`
159
- - `list_brands`
160
- - `get_brand`
161
- - `list_brand_accounts`
162
- - `get_brand_profile`
163
- - `get_learned_voice` (read the voice learned from one account's real published captions)
164
- - `list_posts`
165
- - `get_post`
166
- - `get_post_missing`
167
- - `ask_support` (authenticated docs-backed support with read-only account/post diagnostics; human tickets require explicit confirmation)
168
- - `create_post` (supports `thread_posts: string[]` for X / Threads reply chains, plus `platform_settings` for platform-specific composer controls)
169
- - `validate_post` (checks and normalizes a post without creating it; call before requesting confirmation for `create_post`)
170
- - `submit_agent_feedback` (writes bounded private operational telemetry after a real workflow outcome; never include secrets, prompts, captions, media URLs, or personal data)
171
- - `submit_product_feedback` (files a product bug/idea/feedback on the public dashboard board after explicit user confirmation; not for tool failures)
172
- - `create_posts_batch` (create up to 25 confirmed posts in one API request)
173
- - `update_post` (also accepts `platform_settings`)
174
- - `update_post_status` (pause, resume, schedule, or draft a post after confirmation)
175
- - `update_post_release_id` (set/repair external release/group metadata after confirmation)
176
- - `delete_post`
177
- - `delete_post_group` (delete grouped draft/scheduled posts after confirmation)
178
- - `upload_media`
179
- - `upload_media_from_url`
180
- - `create_signed_upload`
181
- - `create_media_drop` (human drop page at https://www.poster.ly/drop/<token> for ChatGPT/Claude laptop files)
182
- - `list_media`
183
- - `find_available_slot`
184
- - `generate_captions`
185
- - `generate_image` (queues a Railway job; Gemini thinking_level / quality high, resolution up to 4K, optional reference_image_urls)
186
- - `get_image_job` (poll one job or list recent image jobs)
187
- - `get_video_options`
188
- - `run_video_function` (read-only Veo helpers for cost estimation and request validation)
189
- - `generate_video` (queues a cost-guarded Veo video job)
190
- - `get_credits` (read-only AI credit balance)
191
- - `get_video_job` (poll one job or list recent jobs)
192
- - `get_account_analytics`
193
- - `get_post_analytics`
194
- - `get_performance_profile` (read an account's 90-day performance profile: top formats, timing, caption-length patterns, engagement-rate trend, narrative summary)
195
- - `get_post_insights` (list per-post feedback-loop insights: performance tier, diagnosis, next action, metrics, baseline)
196
- - `list_post_suggestions` (list evidence-based weekly post drafts in the account's learned voice, each with a rationale)
197
- - `dismiss_suggestion` (dismiss a post suggestion after confirmation; never touches one already scheduled)
198
- - `list_conversations` (Instagram and Facebook Page inbox DMs; Threads has no DMs)
199
- - `get_conversation`
200
- - `send_message` (DM reply after explicit confirmation; honors Meta 24-hour windows)
201
- - `list_comments` (Instagram, Facebook Page, Threads, and LinkedIn Page inbox comments)
202
- - `get_comment`
203
- - `reply_to_comment` (comment reply after explicit confirmation)
204
- - `update_comment` (hide/unhide or mark read; hide is reversible)
205
- - `delete_comment` (delete an Instagram or Facebook comment after confirmation; Threads replies cannot be deleted)
206
- - `sync_inbox` (pull latest inbox data for one account; 30-second cooldown)
207
- - `list_google_business_reviews`
208
- - `get_google_business_review_link`
209
- - `audit_google_business_profile`
210
- - `suggest_google_business_review_reply`
211
- - `reply_google_business_review` (post/update a public GBP review reply after explicit confirmation)
212
- - `delete_google_business_review_reply` (delete a GBP review reply after explicit confirmation)
213
- - `list_google_business_media` (list the photos/videos on a GBP profile gallery)
214
- - `add_google_business_media` (add a photo/video to a GBP profile gallery from a public URL, after explicit confirmation)
215
- - `delete_google_business_media` (remove a photo/video from a GBP profile gallery after explicit confirmation)
216
-
217
- > Google Business tip: pass `account_id` (the integer `id` from `list_accounts`) to every GBP tool. If you use `location_id` instead, it is the numeric `location_id` from `list_accounts` (the GBP location id), not the `ChIJ...` Place ID that `get_google_business_review_link` returns. Passing the Place ID resolves to no account and returns "Google Business Profile account not found".
218
-
219
- - `list_activity`
220
- - `get_updates` (read the latest posterly product updates and news)
221
- - `list_webhooks`
222
- - `create_webhook` (create a webhook after explicit confirmation)
223
- - `update_webhook` (update a webhook after explicit confirmation)
224
- - `delete_webhook` (delete a webhook after explicit confirmation)
225
- - `test_webhook` (send a signed test delivery after explicit confirmation)
226
- - `get_x_posting_quota`
227
-
228
- Analytics tools currently support Instagram, Facebook Pages, LinkedIn, Google Business Profile, Pinterest, YouTube, and Threads.
125
+ `posterly-mcp-server@0.45.0` exposes 62 tools covering 94 actions. The hosted HTTP endpoint exposes the same catalog minus the three signup tools: 59 tools covering 91 actions.
126
+
127
+ Many tools pick what to do with one parameter: `view` (reads), `action` (writes), or `type`. A few pick their mode from which parameters you pass (for example `update_post` with `status` changes the status instead of editing). Every tool description names all of its views and actions.
128
+
129
+ Public setup tools work before `POSTERLY_API_KEY` exists: `whoami` with `view: "status"` (installed version, latest npm version, endpoint and API key health, update guidance), `get_agent_signup_info`, `start_signup`, and `get_signup_session`. Every other tool needs `POSTERLY_API_KEY`.
130
+
131
+ ### Preview then confirm
132
+
133
+ Actions that post publicly or delete things work in two steps: call once without `confirm` to get a preview and a `preview_id`, show the preview to the user, then call again with the same fields plus `confirm: true` and that `preview_id`. A preview expires after 10 minutes, only works for exactly the same fields, and a public post (a comment reply, a DM, a Google review reply, new Google profile media) can be confirmed once. Other writes keep the single `confirm: true` after explicit user confirmation.
134
+
135
+ ### Tool sets
136
+
137
+ Tools are grouped into sets: `core`, `creative`, `inbox`, `google_business`, `admin`, and `billing`, plus `signup` (always on). Every set is listed by default. To list fewer, set `POSTERLY_TOOLSETS=core,inbox` (or pass `--toolsets=core,inbox`). Sets only change what is listed; any tool can still be called by name.
138
+
139
+ ### Core (`core`)
140
+
141
+ Accounts, posting, media, schedule, analytics, and support. What most assistants need.
142
+
143
+ | Tool | What it does |
144
+ | --- | --- |
145
+ | `disconnect_account` | Disconnect an account |
146
+ | `connect_account` | Connect with credentials |
147
+ | `create_connect_session` | Start a connect session |
148
+ | `trigger_platform_helper` | Run a platform helper |
149
+ | `list_posts` | Posts |
150
+ | `ask_support` | Ask support |
151
+ | `find_available_slot` | Find a free slot |
152
+ | `submit_agent_feedback` | Agent feedback |
153
+ | `submit_product_feedback` | Product feedback |
154
+ | `validate_post` | Validate a post |
155
+ | `create_post` | Create a post |
156
+ | `create_posts_batch` | Create posts in bulk |
157
+ | `get_x_posting_quota` | X posting quota |
158
+ | `create_signed_upload` | Signed upload link |
159
+ | `create_media_drop` | Media drop link |
160
+ | `list_media` | Media library |
161
+ | `generate_captions` | Generate captions |
162
+ | `list_activity` | Activity feed |
163
+ | `get_credits` | AI credits |
164
+ | `get_updates` | Product updates |
165
+
166
+ **`whoami`**: Who am I
167
+
168
+ | View | What it does |
169
+ | --- | --- |
170
+ | `identity` (default) | You, your scopes, and your workspaces |
171
+ | `status` | MCP server and connection status |
172
+
173
+ **`list_accounts`**: Connected accounts
174
+
175
+ | View | What it does |
176
+ | --- | --- |
177
+ | `accounts` (default) | Connected accounts |
178
+ | `learned_voice` | Learned voice of an account |
179
+ | `performance_profile` | Performance profile of an account |
180
+ | `connect_session` | Check a connect session |
181
+
182
+ **`list_platforms`**: Platforms
183
+
184
+ | View | What it does |
185
+ | --- | --- |
186
+ | `platforms` (default) | Supported platforms |
187
+ | `schema` | Platform or account schema |
188
+ | `connect_link` | Connection links |
189
+
190
+ **`list_brands`**: Brands
191
+
192
+ | View | What it does |
193
+ | --- | --- |
194
+ | `brands` (default) | All brands |
195
+ | `brand` | One brand |
196
+ | `accounts` | Brand accounts |
197
+ | `profile` | Brand profile |
198
+
199
+ **`get_post`**: One post
200
+
201
+ | View | What it does |
202
+ | --- | --- |
203
+ | `post` (default) | One post |
204
+ | `missing` | What a post is missing |
205
+
206
+ **`update_post`**: Edit a post
207
+
208
+ | Mode (picked by params) | What it does |
209
+ | --- | --- |
210
+ | `edit` (default) | Edit caption, media, schedule, or settings |
211
+ | `status` (pass `status`) | Pause, resume, schedule, or move to draft |
212
+ | `release_id` (pass `release_id`) | Set a release or group ID |
213
+
214
+ **`delete_post`**: Delete posts
215
+
216
+ | Mode (picked by params) | What it does |
217
+ | --- | --- |
218
+ | `post` (default) | Delete one post |
219
+ | `group` (pass `group_id`) | Delete a post group (preview then confirm) |
220
+
221
+ **`upload_media`**: Upload media
222
+
223
+ | Mode (picked by params) | What it does |
224
+ | --- | --- |
225
+ | `file` (default) | Upload a file |
226
+ | `url` (pass `url`) | Upload from a URL |
227
+
228
+ **`list_analytics`**: Analytics
229
+
230
+ | View | What it does |
231
+ | --- | --- |
232
+ | `accounts` | Account analytics |
233
+ | `posts` | Post analytics |
234
+ | `insights` | Post insights |
235
+
236
+ ### Creative (`creative`)
237
+
238
+ AI image and video generation, jobs, and post suggestions.
239
+
240
+ | Tool | What it does |
241
+ | --- | --- |
242
+ | `list_post_suggestions` | Post suggestions |
243
+ | `dismiss_suggestion` | Dismiss a suggestion |
244
+ | `get_video_options` | Video options |
245
+ | `run_video_function` | Video helper |
246
+ | `generate_video` | Generate a video |
247
+ | `generate_image` | Generate an image |
248
+
249
+ **`list_jobs`**: AI jobs
250
+
251
+ | Type | What it does |
252
+ | --- | --- |
253
+ | `image` | Image jobs |
254
+ | `video` | Video jobs |
255
+
256
+ ### Inbox (`inbox`)
257
+
258
+ Social inbox comments and DMs.
259
+
260
+ **`list_conversations`**: Conversations
261
+
262
+ | Mode (picked by params) | What it does |
263
+ | --- | --- |
264
+ | `list` (default) | List conversations |
265
+ | `conversation` (pass `conversation_id`) | One conversation with its messages |
266
+
267
+ **`manage_conversation`**: Manage conversations
268
+
269
+ | Action | What it does |
270
+ | --- | --- |
271
+ | `send` | Send a DM (preview then confirm) |
272
+ | `sync` | Sync the inbox |
273
+
274
+ **`list_comments`**: Comments
275
+
276
+ | Mode (picked by params) | What it does |
277
+ | --- | --- |
278
+ | `list` (default) | List comments |
279
+ | `comment` (pass `comment_id`) | One comment with its replies |
280
+
281
+ **`manage_comment`**: Manage comments
282
+
283
+ | Action | What it does |
284
+ | --- | --- |
285
+ | `reply` | Reply to a comment (preview then confirm) |
286
+ | `update` | Hide or mark read |
287
+ | `delete` | Delete a comment (preview then confirm) |
288
+
289
+ ### Google Business (`google_business`)
290
+
291
+ Google Business Profile reviews, media, and audits.
292
+
293
+ | Tool | What it does |
294
+ | --- | --- |
295
+ | `audit_google_business_profile` | Audit a Google profile |
296
+ | `list_google_business_media` | Google profile media |
297
+
298
+ **`list_google_business_reviews`**: Google reviews
299
+
300
+ | View | What it does |
301
+ | --- | --- |
302
+ | `reviews` (default) | Google reviews |
303
+ | `review_link` | Google review link |
304
+
305
+ **`manage_google_business_review`**: Manage Google reviews
306
+
307
+ | Action | What it does |
308
+ | --- | --- |
309
+ | `suggest_reply` | Suggest a reply (never posts) |
310
+ | `reply` | Reply to a review (preview then confirm) |
311
+ | `delete_reply` | Delete a review reply (preview then confirm) |
312
+
313
+ **`manage_google_business_media`**: Manage Google profile media
314
+
315
+ | Action | What it does |
316
+ | --- | --- |
317
+ | `add` | Add a photo or video (preview then confirm) |
318
+ | `delete` | Delete a photo or video (preview then confirm) |
319
+
320
+ ### Admin (`admin`)
321
+
322
+ API keys, OAuth clients, webhooks, and workspace members.
323
+
324
+ | Tool | What it does |
325
+ | --- | --- |
326
+ | `create_api_key` | Create an API key |
327
+ | `delete_api_key` | Revoke an API key |
328
+ | `list_workspace_members` | Workspace members |
329
+ | `list_oauth_clients` | OAuth clients |
330
+ | `list_webhooks` | Webhooks |
331
+ | `create_webhook` | Create a webhook |
332
+
333
+ **`manage_workspace_member`**: Manage a workspace member
334
+
335
+ | Action | What it does |
336
+ | --- | --- |
337
+ | `invite` | Invite a colleague (preview then confirm) |
338
+ | `update` | Change role or brands (preview then confirm) |
339
+ | `remove` | Remove a member or invite (preview then confirm) |
340
+
341
+ **`manage_oauth_client`**: Manage an OAuth client
342
+
343
+ | Action | What it does |
344
+ | --- | --- |
345
+ | `create` | Create an OAuth client |
346
+ | `update` | Update an OAuth client |
347
+ | `delete` | Delete an OAuth client (preview then confirm) |
348
+
349
+ **`manage_webhook`**: Manage a webhook
350
+
351
+ | Action | What it does |
352
+ | --- | --- |
353
+ | `update` | Update a webhook |
354
+ | `delete` | Delete a webhook (preview then confirm) |
355
+ | `test` | Send a test delivery |
356
+
357
+ ### Billing (`billing`)
358
+
359
+ Subscription changes.
360
+
361
+ | Tool | What it does |
362
+ | --- | --- |
363
+ | `get_subscription` | Subscription |
364
+ | `cancel_subscription` | Cancel subscription |
365
+ | `pause_subscription` | Pause subscription |
366
+ | `resume_subscription` | Resume subscription |
367
+ | `downgrade_subscription` | Downgrade subscription |
368
+
369
+ ### Signup (`signup`)
370
+
371
+ Pre-auth signup for brand-new users. Local npm package only; always on.
372
+
373
+ | Tool | What it does |
374
+ | --- | --- |
375
+ | `get_agent_signup_info` | Signup info for agents |
376
+ | `start_signup` | Start a paid signup |
377
+ | `get_signup_session` | Check a signup session |
378
+
379
+ > Google Business tip: pass `account_id` (the integer `id` from `list_accounts`) to every Google Business tool. If you use `location_id` instead, it is the numeric `location_id` from `list_accounts` (the GBP location id), not the `ChIJ...` Place ID that `list_google_business_reviews` with `view: "review_link"` returns. Passing the Place ID resolves to no account and returns "Google Business Profile account not found".
380
+
381
+ Analytics (`list_analytics`) currently supports Instagram, Facebook Pages, LinkedIn, Google Business Profile, Pinterest, YouTube, and Threads.
382
+
383
+ ## Renamed tools
384
+
385
+ In 0.45.0, the old tools below moved into the tools above. The old names still work (they are not listed, and each result ends with a short note naming the new call) and may stop working after 2027-01-12. Update scripts, prompts, and "always allow" permission lists to the new names. Full guide: [MCP tool changes](https://www.poster.ly/docs/integrations/mcp-tool-changes).
386
+
387
+ | Old name | New tool | Pass |
388
+ | --- | --- | --- |
389
+ | `get_mcp_status` | `whoami` | `view=status` |
390
+ | `get_connect_session` | `list_accounts` | `view=connect_session` |
391
+ | `get_learned_voice` | `list_accounts` | `view=learned_voice` |
392
+ | `get_performance_profile` | `list_accounts` | `view=performance_profile` |
393
+ | `get_platform_schema` | `list_platforms` | `view=schema` |
394
+ | `get_connect_link` | `list_platforms` | `view=connect_link` (the old `platform` param is now `target`) |
395
+ | `get_brand` | `list_brands` | `view=brand` |
396
+ | `list_brand_accounts` | `list_brands` | `view=accounts` |
397
+ | `get_brand_profile` | `list_brands` | `view=profile` |
398
+ | `get_post_missing` | `get_post` | `view=missing` |
399
+ | `update_post_status` | `update_post` | pass `status` |
400
+ | `update_post_release_id` | `update_post` | pass `release_id` |
401
+ | `delete_post_group` | `delete_post` | pass `group_id` (preview then confirm) |
402
+ | `upload_media_from_url` | `upload_media` | pass `url` |
403
+ | `get_account_analytics` | `list_analytics` | `view=accounts` |
404
+ | `get_post_analytics` | `list_analytics` | `view=posts` |
405
+ | `get_post_insights` | `list_analytics` | `view=insights` |
406
+ | `get_image_job` | `list_jobs` | `type=image` |
407
+ | `get_video_job` | `list_jobs` | `type=video` |
408
+ | `get_comment` | `list_comments` | pass `comment_id` |
409
+ | `reply_to_comment` | `manage_comment` | `action=reply` (preview then confirm) |
410
+ | `update_comment` | `manage_comment` | `action=update` |
411
+ | `delete_comment` | `manage_comment` | `action=delete` (preview then confirm) |
412
+ | `get_conversation` | `list_conversations` | pass `conversation_id` |
413
+ | `send_message` | `manage_conversation` | `action=send` (preview then confirm) |
414
+ | `sync_inbox` | `manage_conversation` | `action=sync` |
415
+ | `get_google_business_review_link` | `list_google_business_reviews` | `view=review_link` |
416
+ | `suggest_google_business_review_reply` | `manage_google_business_review` | `action=suggest_reply` |
417
+ | `reply_google_business_review` | `manage_google_business_review` | `action=reply` (preview then confirm) |
418
+ | `delete_google_business_review_reply` | `manage_google_business_review` | `action=delete_reply` (preview then confirm) |
419
+ | `add_google_business_media` | `manage_google_business_media` | `action=add` (preview then confirm) |
420
+ | `delete_google_business_media` | `manage_google_business_media` | `action=delete` (preview then confirm) |
421
+ | `update_webhook` | `manage_webhook` | `action=update` |
422
+ | `delete_webhook` | `manage_webhook` | `action=delete` (preview then confirm) |
423
+ | `test_webhook` | `manage_webhook` | `action=test` |
424
+ | `create_oauth_client` | `manage_oauth_client` | `action=create` |
425
+ | `update_oauth_client` | `manage_oauth_client` | `action=update` |
426
+ | `delete_oauth_client` | `manage_oauth_client` | `action=delete` (preview then confirm) |
229
427
 
230
428
  ## Media uploads
231
429
 
232
430
  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.
233
431
 
234
- 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`.
432
+ 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` with `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`.
235
433
 
236
434
  ## What the brand tools are for
237
435
 
@@ -240,9 +438,9 @@ Posterly workspaces often have multiple connected accounts under one client or b
240
438
  The brand tools let an assistant work at the same level a human does:
241
439
 
242
440
  - `list_brands` lets the agent see clients/brands in the workspace
243
- - `get_brand` returns summary info for one brand
244
- - `list_brand_accounts` resolves a brand into the actual connected accounts
245
- - `get_brand_profile` returns saved brand guidance like tone, audience, keywords, dos and don'ts, and visual notes
441
+ - `list_brands` with `view: "brand"` returns summary info for one brand
442
+ - `list_brands` with `view: "accounts"` resolves a brand into the actual connected accounts
443
+ - `list_brands` with `view: "profile"` returns saved brand guidance like tone, audience, keywords, dos and don'ts, and visual notes
246
444
 
247
445
  This makes prompts like:
248
446
 
@@ -316,3 +514,4 @@ The package reads:
316
514
 
317
515
  - optional `POSTERLY_API_KEY` for authenticated posterly tools
318
516
  - optional `POSTERLY_URL` if you need to point at a non-production environment
517
+ - optional `POSTERLY_TOOLSETS` (for example `core,inbox`) to list fewer tool sets