posterly-mcp-server 0.23.1 → 0.24.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 (45) hide show
  1. package/README.md +12 -2
  2. package/dist/generated/platform-manifest.d.ts +82 -66
  3. package/dist/generated/platform-manifest.js +126 -77
  4. package/dist/index.js +40 -0
  5. package/dist/lib/api-client.d.ts +90 -0
  6. package/dist/lib/api-client.js +100 -0
  7. package/dist/lib/version.d.ts +1 -1
  8. package/dist/lib/version.js +1 -1
  9. package/dist/tools/create-connect-session.d.ts +3 -3
  10. package/dist/tools/create-connect-session.js +1 -1
  11. package/dist/tools/create-post.d.ts +27 -9
  12. package/dist/tools/create-post.js +1 -0
  13. package/dist/tools/create-posts-batch.d.ts +12 -5
  14. package/dist/tools/dismiss-suggestion.d.ts +16 -0
  15. package/dist/tools/dismiss-suggestion.js +18 -0
  16. package/dist/tools/get-account-analytics.js +1 -1
  17. package/dist/tools/get-connect-link.d.ts +3 -3
  18. package/dist/tools/get-performance-profile.d.ts +16 -0
  19. package/dist/tools/get-performance-profile.js +39 -0
  20. package/dist/tools/get-platform-schema.d.ts +3 -3
  21. package/dist/tools/get-post-analytics.js +1 -1
  22. package/dist/tools/get-post-insights.d.ts +28 -0
  23. package/dist/tools/get-post-insights.js +39 -0
  24. package/dist/tools/get-video-job.d.ts +2 -2
  25. package/dist/tools/list-activity.d.ts +2 -2
  26. package/dist/tools/list-post-suggestions.d.ts +24 -0
  27. package/dist/tools/list-post-suggestions.js +36 -0
  28. package/dist/tools/list-posts.d.ts +3 -3
  29. package/dist/tools/trigger-platform-helper.d.ts +6 -6
  30. package/dist/tools/update-post.d.ts +8 -0
  31. package/dist/tools/update-post.js +1 -0
  32. package/package.json +1 -1
  33. package/src/generated/platform-manifest.ts +126 -77
  34. package/src/index.ts +60 -0
  35. package/src/lib/api-client.ts +205 -0
  36. package/src/lib/version.ts +1 -1
  37. package/src/tools/create-connect-session.ts +1 -1
  38. package/src/tools/create-post.ts +1 -0
  39. package/src/tools/dismiss-suggestion.ts +22 -0
  40. package/src/tools/get-account-analytics.ts +1 -1
  41. package/src/tools/get-performance-profile.ts +47 -0
  42. package/src/tools/get-post-analytics.ts +1 -1
  43. package/src/tools/get-post-insights.ts +60 -0
  44. package/src/tools/list-post-suggestions.ts +56 -0
  45. package/src/tools/update-post.ts +1 -0
package/README.md CHANGED
@@ -162,6 +162,10 @@ Authenticated tools require `POSTERLY_API_KEY`:
162
162
  - `get_video_job` (poll one job or list recent jobs)
163
163
  - `get_account_analytics`
164
164
  - `get_post_analytics`
165
+ - `get_performance_profile` (read an account's 90-day performance profile: top formats, timing, caption-length patterns, engagement-rate trend, narrative summary)
166
+ - `get_post_insights` (list per-post feedback-loop insights: performance tier, diagnosis, next action, metrics, baseline)
167
+ - `list_post_suggestions` (list evidence-based weekly post drafts in the account's learned voice, each with a rationale)
168
+ - `dismiss_suggestion` (dismiss a post suggestion after confirmation; never touches one already scheduled)
165
169
  - `list_google_business_reviews`
166
170
  - `get_google_business_review_link`
167
171
  - `audit_google_business_profile`
@@ -182,7 +186,13 @@ Authenticated tools require `POSTERLY_API_KEY`:
182
186
  - `test_webhook` (send a signed test delivery after explicit confirmation)
183
187
  - `get_x_posting_quota`
184
188
 
185
- Analytics tools currently support Instagram, LinkedIn, Google Business Profile, Pinterest, and YouTube.
189
+ Analytics tools currently support Instagram, Facebook Pages, LinkedIn, Google Business Profile, Pinterest, YouTube, and Threads.
190
+
191
+ ## Media uploads
192
+
193
+ 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.
194
+
195
+ 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`.
186
196
 
187
197
  ## What the brand tools are for
188
198
 
@@ -226,7 +236,7 @@ This package uses the Posterly API/MCP add-on:
226
236
  - `$3/month` add-on
227
237
  - `100 create-post requests/hour` per API key, with separate media/read limits
228
238
  - user-created API keys per plan: Starter 1, Pro 2, Power User 3, Agency 4
229
- - works across all 11 supported platforms
239
+ - works across all 17 supported platforms
230
240
 
231
241
  Each API call counts as one request, so use `create_posts_batch` when you need to schedule multiple posts in one confirmed operation.
232
242
 
@@ -1,10 +1,10 @@
1
1
  export declare const PLATFORM_MANIFEST: {
2
2
  readonly source: "lib/api-platform-registry.ts";
3
- readonly supportedPlatformIds: readonly ["instagram", "facebook", "tiktok", "twitter", "linkedin", "youtube", "pinterest", "threads", "google_business", "telegram", "bluesky"];
4
- readonly plannedPlatformIds: readonly ["reddit", "wordpress", "mastodon", "medium", "devto", "hashnode", "discord", "slack", "skool", "whop"];
5
- readonly allPlatformIds: readonly ["instagram", "facebook", "tiktok", "twitter", "linkedin", "youtube", "pinterest", "threads", "google_business", "telegram", "bluesky", "reddit", "wordpress", "mastodon", "medium", "devto", "hashnode", "discord", "slack", "skool", "whop"];
6
- readonly supportedPlatformInputs: readonly ["bluesky", "facebook", "gmb", "google-business", "google_business", "google_business_profile", "instagram", "instagram-standalone", "linkedin", "pinterest", "telegram", "threads", "tiktok", "twitter", "x", "youtube"];
7
- readonly allPlatformInputs: readonly ["bluesky", "devto", "discord", "facebook", "gmb", "google-business", "google_business", "google_business_profile", "hashnode", "instagram", "instagram-standalone", "linkedin", "mastodon", "medium", "pinterest", "reddit", "skool", "slack", "telegram", "threads", "tiktok", "twitter", "whop", "wordpress", "x", "youtube"];
3
+ readonly supportedPlatformIds: readonly ["instagram", "facebook", "tiktok", "twitter", "linkedin", "youtube", "pinterest", "threads", "google_business", "telegram", "bluesky", "discord", "mastodon", "devto", "hashnode", "wordpress", "lemmy"];
4
+ readonly plannedPlatformIds: readonly ["reddit", "medium", "slack", "skool", "whop"];
5
+ readonly allPlatformIds: readonly ["instagram", "facebook", "tiktok", "twitter", "linkedin", "youtube", "pinterest", "threads", "google_business", "telegram", "bluesky", "discord", "mastodon", "devto", "hashnode", "wordpress", "lemmy", "reddit", "medium", "slack", "skool", "whop"];
6
+ readonly supportedPlatformInputs: readonly ["bluesky", "devto", "discord", "facebook", "gmb", "google-business", "google_business", "google_business_profile", "hashnode", "instagram", "instagram-standalone", "lemmy", "linkedin", "mastodon", "pinterest", "telegram", "threads", "tiktok", "twitter", "wordpress", "x", "youtube"];
7
+ readonly allPlatformInputs: readonly ["bluesky", "devto", "discord", "facebook", "gmb", "google-business", "google_business", "google_business_profile", "hashnode", "instagram", "instagram-standalone", "lemmy", "linkedin", "mastodon", "medium", "pinterest", "reddit", "skool", "slack", "telegram", "threads", "tiktok", "twitter", "whop", "wordpress", "x", "youtube"];
8
8
  readonly platformAliases: {
9
9
  readonly bluesky: "bluesky";
10
10
  readonly devto: "devto";
@@ -16,6 +16,7 @@ export declare const PLATFORM_MANIFEST: {
16
16
  readonly hashnode: "hashnode";
17
17
  readonly instagram: "instagram";
18
18
  readonly instagram_standalone: "instagram";
19
+ readonly lemmy: "lemmy";
19
20
  readonly linkedin: "linkedin";
20
21
  readonly mastodon: "mastodon";
21
22
  readonly medium: "medium";
@@ -32,10 +33,10 @@ export declare const PLATFORM_MANIFEST: {
32
33
  readonly x: "twitter";
33
34
  readonly youtube: "youtube";
34
35
  };
35
- readonly helperNames: readonly ["linkedin.recent_mentions", "pinterest.boards", "tiktok.creator_info", "x.quota", "youtube.playlists"];
36
- readonly analyticsPlatformIds: readonly ["instagram", "facebook", "linkedin", "youtube", "pinterest", "google_business"];
37
- readonly connectTargetIds: readonly ["instagram", "meta", "facebook", "youtube", "tiktok", "linkedin", "linkedin_page", "threads", "google_business", "pinterest", "twitter", "telegram", "bluesky", "reddit", "wordpress", "mastodon", "medium", "devto", "hashnode", "discord", "slack", "skool", "whop"];
38
- readonly connectInputs: readonly ["bluesky", "devto", "discord", "facebook", "facebook_instagram", "facebook_pages", "gmb", "google-business", "google_business", "google_business_profile", "hashnode", "instagram", "instagram-standalone", "instagram_direct", "linkedin", "linkedin-company", "linkedin-page", "linkedin_company", "linkedin_page", "linkedin_personal", "mastodon", "medium", "meta", "meta_business", "pinterest", "reddit", "skool", "slack", "telegram", "threads", "tiktok", "twitter", "whop", "wordpress", "x", "x_twitter", "youtube"];
36
+ readonly helperNames: readonly ["linkedin.recent_mentions", "pinterest.boards", "tiktok.creator_info", "x.quota"];
37
+ readonly analyticsPlatformIds: readonly ["instagram", "facebook", "linkedin", "youtube", "pinterest", "threads", "google_business"];
38
+ readonly connectTargetIds: readonly ["instagram", "meta", "facebook", "youtube", "tiktok", "linkedin", "linkedin_page", "threads", "google_business", "pinterest", "twitter", "telegram", "bluesky", "discord", "mastodon", "devto", "hashnode", "wordpress", "lemmy", "reddit", "medium", "slack", "skool", "whop"];
39
+ readonly connectInputs: readonly ["bluesky", "devto", "discord", "facebook", "facebook_instagram", "facebook_pages", "gmb", "google-business", "google_business", "google_business_profile", "hashnode", "instagram", "instagram-standalone", "instagram_direct", "lemmy", "linkedin", "linkedin-company", "linkedin-page", "linkedin_company", "linkedin_page", "linkedin_personal", "mastodon", "medium", "meta", "meta_business", "pinterest", "reddit", "skool", "slack", "telegram", "threads", "tiktok", "twitter", "whop", "wordpress", "x", "x_twitter", "youtube"];
39
40
  readonly connectAliases: {
40
41
  readonly bluesky: "bluesky";
41
42
  readonly devto: "devto";
@@ -50,6 +51,7 @@ export declare const PLATFORM_MANIFEST: {
50
51
  readonly instagram: "instagram";
51
52
  readonly instagram_direct: "instagram";
52
53
  readonly instagram_standalone: "instagram";
54
+ readonly lemmy: "lemmy";
53
55
  readonly linkedin: "linkedin";
54
56
  readonly linkedin_company: "linkedin_page";
55
57
  readonly linkedin_page: "linkedin_page";
@@ -119,7 +121,7 @@ export declare const PLATFORM_MANIFEST: {
119
121
  readonly aliases: readonly [];
120
122
  readonly postTypes: readonly ["video"];
121
123
  readonly analyticsSupported: true;
122
- readonly helpers: readonly ["youtube.playlists"];
124
+ readonly helpers: readonly [];
123
125
  }, {
124
126
  readonly id: "pinterest";
125
127
  readonly label: "Pinterest";
@@ -134,7 +136,7 @@ export declare const PLATFORM_MANIFEST: {
134
136
  readonly status: "supported";
135
137
  readonly aliases: readonly [];
136
138
  readonly postTypes: readonly ["text", "image", "video", "carousel", "threads_thread"];
137
- readonly analyticsSupported: false;
139
+ readonly analyticsSupported: true;
138
140
  readonly helpers: readonly [];
139
141
  }, {
140
142
  readonly id: "google_business";
@@ -161,56 +163,64 @@ export declare const PLATFORM_MANIFEST: {
161
163
  readonly analyticsSupported: false;
162
164
  readonly helpers: readonly [];
163
165
  }, {
164
- readonly id: "reddit";
165
- readonly label: "Reddit";
166
- readonly status: "planned";
166
+ readonly id: "discord";
167
+ readonly label: "Discord";
168
+ readonly status: "supported";
167
169
  readonly aliases: readonly [];
168
- readonly postTypes: readonly [];
170
+ readonly postTypes: readonly ["text", "image", "video", "carousel"];
169
171
  readonly analyticsSupported: false;
170
172
  readonly helpers: readonly [];
171
173
  }, {
172
- readonly id: "wordpress";
173
- readonly label: "WordPress";
174
- readonly status: "planned";
174
+ readonly id: "mastodon";
175
+ readonly label: "Mastodon";
176
+ readonly status: "supported";
175
177
  readonly aliases: readonly [];
176
- readonly postTypes: readonly [];
178
+ readonly postTypes: readonly ["text", "image", "video", "carousel"];
177
179
  readonly analyticsSupported: false;
178
180
  readonly helpers: readonly [];
179
181
  }, {
180
- readonly id: "mastodon";
181
- readonly label: "Mastodon";
182
- readonly status: "planned";
182
+ readonly id: "devto";
183
+ readonly label: "Dev.to";
184
+ readonly status: "supported";
183
185
  readonly aliases: readonly [];
184
- readonly postTypes: readonly [];
186
+ readonly postTypes: readonly ["text", "image"];
185
187
  readonly analyticsSupported: false;
186
188
  readonly helpers: readonly [];
187
189
  }, {
188
- readonly id: "medium";
189
- readonly label: "Medium";
190
- readonly status: "planned";
190
+ readonly id: "hashnode";
191
+ readonly label: "Hashnode";
192
+ readonly status: "supported";
191
193
  readonly aliases: readonly [];
192
- readonly postTypes: readonly [];
194
+ readonly postTypes: readonly ["text", "image"];
193
195
  readonly analyticsSupported: false;
194
196
  readonly helpers: readonly [];
195
197
  }, {
196
- readonly id: "devto";
197
- readonly label: "Dev.to";
198
- readonly status: "planned";
198
+ readonly id: "wordpress";
199
+ readonly label: "WordPress";
200
+ readonly status: "supported";
199
201
  readonly aliases: readonly [];
200
- readonly postTypes: readonly [];
202
+ readonly postTypes: readonly ["text", "image"];
201
203
  readonly analyticsSupported: false;
202
204
  readonly helpers: readonly [];
203
205
  }, {
204
- readonly id: "hashnode";
205
- readonly label: "Hashnode";
206
+ readonly id: "lemmy";
207
+ readonly label: "Lemmy";
208
+ readonly status: "supported";
209
+ readonly aliases: readonly [];
210
+ readonly postTypes: readonly ["text", "image"];
211
+ readonly analyticsSupported: false;
212
+ readonly helpers: readonly [];
213
+ }, {
214
+ readonly id: "reddit";
215
+ readonly label: "Reddit";
206
216
  readonly status: "planned";
207
217
  readonly aliases: readonly [];
208
218
  readonly postTypes: readonly [];
209
219
  readonly analyticsSupported: false;
210
220
  readonly helpers: readonly [];
211
221
  }, {
212
- readonly id: "discord";
213
- readonly label: "Discord";
222
+ readonly id: "medium";
223
+ readonly label: "Medium";
214
224
  readonly status: "planned";
215
225
  readonly aliases: readonly [];
216
226
  readonly postTypes: readonly [];
@@ -320,44 +330,50 @@ export declare const PLATFORM_MANIFEST: {
320
330
  readonly aliases: readonly [];
321
331
  readonly method: "manual_credentials";
322
332
  }, {
323
- readonly id: "reddit";
324
- readonly label: "Reddit";
325
- readonly status: "planned";
326
- readonly aliases: readonly [];
327
- readonly method: "planned";
328
- }, {
329
- readonly id: "wordpress";
330
- readonly label: "WordPress";
331
- readonly status: "planned";
333
+ readonly id: "discord";
334
+ readonly label: "Discord";
335
+ readonly status: "supported";
332
336
  readonly aliases: readonly [];
333
- readonly method: "planned";
337
+ readonly method: "manual_credentials";
334
338
  }, {
335
339
  readonly id: "mastodon";
336
340
  readonly label: "Mastodon";
337
- readonly status: "planned";
338
- readonly aliases: readonly [];
339
- readonly method: "planned";
340
- }, {
341
- readonly id: "medium";
342
- readonly label: "Medium";
343
- readonly status: "planned";
341
+ readonly status: "supported";
344
342
  readonly aliases: readonly [];
345
- readonly method: "planned";
343
+ readonly method: "manual_credentials";
346
344
  }, {
347
345
  readonly id: "devto";
348
346
  readonly label: "Dev.to";
349
- readonly status: "planned";
347
+ readonly status: "supported";
350
348
  readonly aliases: readonly [];
351
- readonly method: "planned";
349
+ readonly method: "manual_credentials";
352
350
  }, {
353
351
  readonly id: "hashnode";
354
352
  readonly label: "Hashnode";
353
+ readonly status: "supported";
354
+ readonly aliases: readonly [];
355
+ readonly method: "manual_credentials";
356
+ }, {
357
+ readonly id: "wordpress";
358
+ readonly label: "WordPress";
359
+ readonly status: "supported";
360
+ readonly aliases: readonly [];
361
+ readonly method: "manual_credentials";
362
+ }, {
363
+ readonly id: "lemmy";
364
+ readonly label: "Lemmy";
365
+ readonly status: "supported";
366
+ readonly aliases: readonly [];
367
+ readonly method: "manual_credentials";
368
+ }, {
369
+ readonly id: "reddit";
370
+ readonly label: "Reddit";
355
371
  readonly status: "planned";
356
372
  readonly aliases: readonly [];
357
373
  readonly method: "planned";
358
374
  }, {
359
- readonly id: "discord";
360
- readonly label: "Discord";
375
+ readonly id: "medium";
376
+ readonly label: "Medium";
361
377
  readonly status: "planned";
362
378
  readonly aliases: readonly [];
363
379
  readonly method: "planned";
@@ -381,12 +397,12 @@ export declare const PLATFORM_MANIFEST: {
381
397
  readonly method: "planned";
382
398
  }];
383
399
  };
384
- export declare const SUPPORTED_PLATFORM_IDS: readonly ["instagram", "facebook", "tiktok", "twitter", "linkedin", "youtube", "pinterest", "threads", "google_business", "telegram", "bluesky"];
385
- export declare const PLANNED_PLATFORM_IDS: readonly ["reddit", "wordpress", "mastodon", "medium", "devto", "hashnode", "discord", "slack", "skool", "whop"];
386
- export declare const ALL_PLATFORM_IDS: readonly ["instagram", "facebook", "tiktok", "twitter", "linkedin", "youtube", "pinterest", "threads", "google_business", "telegram", "bluesky", "reddit", "wordpress", "mastodon", "medium", "devto", "hashnode", "discord", "slack", "skool", "whop"];
387
- export declare const SUPPORTED_PLATFORM_INPUTS: readonly ["bluesky", "facebook", "gmb", "google-business", "google_business", "google_business_profile", "instagram", "instagram-standalone", "linkedin", "pinterest", "telegram", "threads", "tiktok", "twitter", "x", "youtube"];
388
- export declare const ALL_PLATFORM_INPUTS: readonly ["bluesky", "devto", "discord", "facebook", "gmb", "google-business", "google_business", "google_business_profile", "hashnode", "instagram", "instagram-standalone", "linkedin", "mastodon", "medium", "pinterest", "reddit", "skool", "slack", "telegram", "threads", "tiktok", "twitter", "whop", "wordpress", "x", "youtube"];
389
- export declare const PLATFORM_HELPER_NAMES: readonly ["linkedin.recent_mentions", "pinterest.boards", "tiktok.creator_info", "x.quota", "youtube.playlists"];
390
- export declare const CONNECT_TARGET_IDS: readonly ["instagram", "meta", "facebook", "youtube", "tiktok", "linkedin", "linkedin_page", "threads", "google_business", "pinterest", "twitter", "telegram", "bluesky", "reddit", "wordpress", "mastodon", "medium", "devto", "hashnode", "discord", "slack", "skool", "whop"];
391
- export declare const CONNECT_INPUTS: readonly ["bluesky", "devto", "discord", "facebook", "facebook_instagram", "facebook_pages", "gmb", "google-business", "google_business", "google_business_profile", "hashnode", "instagram", "instagram-standalone", "instagram_direct", "linkedin", "linkedin-company", "linkedin-page", "linkedin_company", "linkedin_page", "linkedin_personal", "mastodon", "medium", "meta", "meta_business", "pinterest", "reddit", "skool", "slack", "telegram", "threads", "tiktok", "twitter", "whop", "wordpress", "x", "x_twitter", "youtube"];
392
- export declare const ANALYTICS_PLATFORM_IDS: readonly ["instagram", "facebook", "linkedin", "youtube", "pinterest", "google_business"];
400
+ export declare const SUPPORTED_PLATFORM_IDS: readonly ["instagram", "facebook", "tiktok", "twitter", "linkedin", "youtube", "pinterest", "threads", "google_business", "telegram", "bluesky", "discord", "mastodon", "devto", "hashnode", "wordpress", "lemmy"];
401
+ export declare const PLANNED_PLATFORM_IDS: readonly ["reddit", "medium", "slack", "skool", "whop"];
402
+ export declare const ALL_PLATFORM_IDS: readonly ["instagram", "facebook", "tiktok", "twitter", "linkedin", "youtube", "pinterest", "threads", "google_business", "telegram", "bluesky", "discord", "mastodon", "devto", "hashnode", "wordpress", "lemmy", "reddit", "medium", "slack", "skool", "whop"];
403
+ export declare const SUPPORTED_PLATFORM_INPUTS: readonly ["bluesky", "devto", "discord", "facebook", "gmb", "google-business", "google_business", "google_business_profile", "hashnode", "instagram", "instagram-standalone", "lemmy", "linkedin", "mastodon", "pinterest", "telegram", "threads", "tiktok", "twitter", "wordpress", "x", "youtube"];
404
+ export declare const ALL_PLATFORM_INPUTS: readonly ["bluesky", "devto", "discord", "facebook", "gmb", "google-business", "google_business", "google_business_profile", "hashnode", "instagram", "instagram-standalone", "lemmy", "linkedin", "mastodon", "medium", "pinterest", "reddit", "skool", "slack", "telegram", "threads", "tiktok", "twitter", "whop", "wordpress", "x", "youtube"];
405
+ export declare const PLATFORM_HELPER_NAMES: readonly ["linkedin.recent_mentions", "pinterest.boards", "tiktok.creator_info", "x.quota"];
406
+ export declare const CONNECT_TARGET_IDS: readonly ["instagram", "meta", "facebook", "youtube", "tiktok", "linkedin", "linkedin_page", "threads", "google_business", "pinterest", "twitter", "telegram", "bluesky", "discord", "mastodon", "devto", "hashnode", "wordpress", "lemmy", "reddit", "medium", "slack", "skool", "whop"];
407
+ export declare const CONNECT_INPUTS: readonly ["bluesky", "devto", "discord", "facebook", "facebook_instagram", "facebook_pages", "gmb", "google-business", "google_business", "google_business_profile", "hashnode", "instagram", "instagram-standalone", "instagram_direct", "lemmy", "linkedin", "linkedin-company", "linkedin-page", "linkedin_company", "linkedin_page", "linkedin_personal", "mastodon", "medium", "meta", "meta_business", "pinterest", "reddit", "skool", "slack", "telegram", "threads", "tiktok", "twitter", "whop", "wordpress", "x", "x_twitter", "youtube"];
408
+ export declare const ANALYTICS_PLATFORM_IDS: readonly ["instagram", "facebook", "linkedin", "youtube", "pinterest", "threads", "google_business"];