posterly-mcp-server 0.8.3 → 0.19.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 (119) hide show
  1. package/README.md +35 -1
  2. package/dist/generated/platform-manifest.d.ts +392 -0
  3. package/dist/generated/platform-manifest.js +695 -0
  4. package/dist/index.js +321 -1
  5. package/dist/lib/api-client.d.ts +346 -0
  6. package/dist/lib/api-client.js +173 -0
  7. package/dist/tools/audit-google-business-profile.d.ts +24 -0
  8. package/dist/tools/audit-google-business-profile.js +27 -0
  9. package/dist/tools/create-oauth-client.d.ts +40 -0
  10. package/dist/tools/create-oauth-client.js +20 -0
  11. package/dist/tools/create-post.d.ts +7 -20
  12. package/dist/tools/create-post.js +4 -3
  13. package/dist/tools/create-posts-batch.d.ts +5 -5
  14. package/dist/tools/create-signed-upload.d.ts +24 -0
  15. package/dist/tools/create-signed-upload.js +20 -0
  16. package/dist/tools/create-webhook.d.ts +36 -0
  17. package/dist/tools/create-webhook.js +20 -0
  18. package/dist/tools/delete-google-business-review-reply.d.ts +32 -0
  19. package/dist/tools/delete-google-business-review-reply.js +17 -0
  20. package/dist/tools/delete-oauth-client.d.ts +20 -0
  21. package/dist/tools/delete-oauth-client.js +13 -0
  22. package/dist/tools/delete-post-group.d.ts +20 -0
  23. package/dist/tools/delete-post-group.js +13 -0
  24. package/dist/tools/delete-webhook.d.ts +20 -0
  25. package/dist/tools/delete-webhook.js +13 -0
  26. package/dist/tools/disconnect-account.d.ts +20 -0
  27. package/dist/tools/disconnect-account.js +22 -0
  28. package/dist/tools/generate-image.d.ts +4 -4
  29. package/dist/tools/generate-video.d.ts +59 -0
  30. package/dist/tools/generate-video.js +34 -0
  31. package/dist/tools/get-connect-link.d.ts +24 -0
  32. package/dist/tools/get-connect-link.js +46 -0
  33. package/dist/tools/get-google-business-review-link.d.ts +24 -0
  34. package/dist/tools/get-google-business-review-link.js +19 -0
  35. package/dist/tools/get-platform-schema.d.ts +24 -0
  36. package/dist/tools/get-platform-schema.js +44 -0
  37. package/dist/tools/get-post-missing.d.ts +16 -0
  38. package/dist/tools/get-post-missing.js +12 -0
  39. package/dist/tools/get-video-job.d.ts +24 -0
  40. package/dist/tools/get-video-job.js +31 -0
  41. package/dist/tools/get-video-options.d.ts +8 -0
  42. package/dist/tools/get-video-options.js +26 -0
  43. package/dist/tools/get-x-posting-quota.d.ts +16 -0
  44. package/dist/tools/get-x-posting-quota.js +21 -0
  45. package/dist/tools/list-activity.d.ts +32 -0
  46. package/dist/tools/list-activity.js +35 -0
  47. package/dist/tools/list-google-business-reviews.d.ts +32 -0
  48. package/dist/tools/list-google-business-reviews.js +28 -0
  49. package/dist/tools/list-oauth-clients.d.ts +8 -0
  50. package/dist/tools/list-oauth-clients.js +15 -0
  51. package/dist/tools/list-platforms.d.ts +16 -0
  52. package/dist/tools/list-platforms.js +20 -0
  53. package/dist/tools/list-posts.d.ts +3 -3
  54. package/dist/tools/list-posts.js +3 -2
  55. package/dist/tools/list-webhooks.d.ts +16 -0
  56. package/dist/tools/list-webhooks.js +24 -0
  57. package/dist/tools/reply-google-business-review.d.ts +36 -0
  58. package/dist/tools/reply-google-business-review.js +18 -0
  59. package/dist/tools/run-video-function.d.ts +24 -0
  60. package/dist/tools/run-video-function.js +25 -0
  61. package/dist/tools/suggest-google-business-review-reply.d.ts +48 -0
  62. package/dist/tools/suggest-google-business-review-reply.js +27 -0
  63. package/dist/tools/test-webhook.d.ts +20 -0
  64. package/dist/tools/test-webhook.js +14 -0
  65. package/dist/tools/trigger-platform-helper.d.ts +28 -0
  66. package/dist/tools/trigger-platform-helper.js +22 -0
  67. package/dist/tools/update-oauth-client.d.ts +44 -0
  68. package/dist/tools/update-oauth-client.js +21 -0
  69. package/dist/tools/update-post-release-id.d.ts +28 -0
  70. package/dist/tools/update-post-release-id.js +18 -0
  71. package/dist/tools/update-post-status.d.ts +28 -0
  72. package/dist/tools/update-post-status.js +23 -0
  73. package/dist/tools/update-post.js +1 -1
  74. package/dist/tools/update-webhook.d.ts +40 -0
  75. package/dist/tools/update-webhook.js +21 -0
  76. package/dist/tools/upload-media-from-url.d.ts +24 -0
  77. package/dist/tools/upload-media-from-url.js +26 -0
  78. package/dist/tools/webhook-events.d.ts +3 -0
  79. package/dist/tools/webhook-events.js +13 -0
  80. package/package.json +1 -1
  81. package/src/generated/platform-manifest.ts +695 -0
  82. package/src/index.ts +481 -1
  83. package/src/lib/api-client.ts +461 -0
  84. package/src/tools/audit-google-business-profile.ts +38 -0
  85. package/src/tools/create-oauth-client.ts +36 -0
  86. package/src/tools/create-post.ts +5 -17
  87. package/src/tools/create-signed-upload.ts +27 -0
  88. package/src/tools/create-webhook.ts +35 -0
  89. package/src/tools/delete-google-business-review-reply.ts +30 -0
  90. package/src/tools/delete-oauth-client.ts +23 -0
  91. package/src/tools/delete-post-group.ts +17 -0
  92. package/src/tools/delete-webhook.ts +18 -0
  93. package/src/tools/disconnect-account.ts +30 -0
  94. package/src/tools/generate-video.ts +38 -0
  95. package/src/tools/get-connect-link.ts +56 -0
  96. package/src/tools/get-google-business-review-link.ts +30 -0
  97. package/src/tools/get-platform-schema.ts +52 -0
  98. package/src/tools/get-post-missing.ts +17 -0
  99. package/src/tools/get-video-job.ts +36 -0
  100. package/src/tools/get-video-options.ts +30 -0
  101. package/src/tools/get-x-posting-quota.ts +25 -0
  102. package/src/tools/list-activity.ts +51 -0
  103. package/src/tools/list-google-business-reviews.ts +43 -0
  104. package/src/tools/list-oauth-clients.ts +18 -0
  105. package/src/tools/list-platforms.ts +25 -0
  106. package/src/tools/list-posts.ts +3 -2
  107. package/src/tools/list-webhooks.ts +30 -0
  108. package/src/tools/reply-google-business-review.ts +32 -0
  109. package/src/tools/run-video-function.ts +32 -0
  110. package/src/tools/suggest-google-business-review-reply.ts +44 -0
  111. package/src/tools/test-webhook.ts +18 -0
  112. package/src/tools/trigger-platform-helper.ts +34 -0
  113. package/src/tools/update-oauth-client.ts +38 -0
  114. package/src/tools/update-post-release-id.ts +26 -0
  115. package/src/tools/update-post-status.ts +31 -0
  116. package/src/tools/update-post.ts +1 -1
  117. package/src/tools/update-webhook.ts +37 -0
  118. package/src/tools/upload-media-from-url.ts +33 -0
  119. package/src/tools/webhook-events.ts +16 -0
package/dist/index.js CHANGED
@@ -3,6 +3,7 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
3
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
4
  import { PosterlyClient } from './lib/api-client.js';
5
5
  import { listAccountsTool } from './tools/list-accounts.js';
6
+ import { disconnectAccountTool } from './tools/disconnect-account.js';
6
7
  import { listBrandsTool } from './tools/list-brands.js';
7
8
  import { getBrandTool } from './tools/get-brand.js';
8
9
  import { listBrandAccountsTool } from './tools/list-brand-accounts.js';
@@ -13,15 +14,46 @@ import { findSlotTool } from './tools/find-slot.js';
13
14
  import { listPostsTool } from './tools/list-posts.js';
14
15
  import { uploadMediaTool } from './tools/upload-media.js';
15
16
  import { getPostTool } from './tools/get-post.js';
17
+ import { getPostMissingTool } from './tools/get-post-missing.js';
16
18
  import { updatePostTool } from './tools/update-post.js';
19
+ import { updatePostStatusTool } from './tools/update-post-status.js';
20
+ import { updatePostReleaseIdTool } from './tools/update-post-release-id.js';
17
21
  import { deletePostTool } from './tools/delete-post.js';
22
+ import { deletePostGroupTool } from './tools/delete-post-group.js';
18
23
  import { whoamiTool } from './tools/whoami.js';
19
24
  import { generateImageTool } from './tools/generate-image.js';
25
+ import { getVideoOptionsTool } from './tools/get-video-options.js';
26
+ import { runVideoFunctionTool } from './tools/run-video-function.js';
27
+ import { generateVideoTool } from './tools/generate-video.js';
28
+ import { getVideoJobTool } from './tools/get-video-job.js';
20
29
  import { getAccountAnalyticsTool } from './tools/get-account-analytics.js';
21
30
  import { getPostAnalyticsTool } from './tools/get-post-analytics.js';
31
+ import { listGoogleBusinessReviewsTool } from './tools/list-google-business-reviews.js';
32
+ import { getGoogleBusinessReviewLinkTool } from './tools/get-google-business-review-link.js';
33
+ import { auditGoogleBusinessProfileTool } from './tools/audit-google-business-profile.js';
34
+ import { suggestGoogleBusinessReviewReplyTool } from './tools/suggest-google-business-review-reply.js';
35
+ import { replyGoogleBusinessReviewTool } from './tools/reply-google-business-review.js';
36
+ import { deleteGoogleBusinessReviewReplyTool } from './tools/delete-google-business-review-reply.js';
37
+ import { listActivityTool } from './tools/list-activity.js';
38
+ import { listWebhooksTool } from './tools/list-webhooks.js';
39
+ import { createWebhookTool } from './tools/create-webhook.js';
40
+ import { updateWebhookTool } from './tools/update-webhook.js';
41
+ import { deleteWebhookTool } from './tools/delete-webhook.js';
42
+ import { testWebhookTool } from './tools/test-webhook.js';
43
+ import { listPlatformsTool } from './tools/list-platforms.js';
44
+ import { getPlatformSchemaTool } from './tools/get-platform-schema.js';
45
+ import { triggerPlatformHelperTool } from './tools/trigger-platform-helper.js';
46
+ import { getXPostingQuotaTool } from './tools/get-x-posting-quota.js';
47
+ import { createSignedUploadTool } from './tools/create-signed-upload.js';
48
+ import { uploadMediaFromUrlTool } from './tools/upload-media-from-url.js';
49
+ import { getConnectLinkTool } from './tools/get-connect-link.js';
50
+ import { listOAuthClientsTool } from './tools/list-oauth-clients.js';
51
+ import { createOAuthClientTool } from './tools/create-oauth-client.js';
52
+ import { updateOAuthClientTool } from './tools/update-oauth-client.js';
53
+ import { deleteOAuthClientTool } from './tools/delete-oauth-client.js';
22
54
  const server = new McpServer({
23
55
  name: 'posterly',
24
- version: '0.8.0',
56
+ version: '0.19.0',
25
57
  });
26
58
  let client;
27
59
  try {
@@ -50,6 +82,87 @@ server.tool(listAccountsTool.name, listAccountsTool.description, listAccountsToo
50
82
  return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
51
83
  }
52
84
  });
85
+ server.tool(disconnectAccountTool.name, disconnectAccountTool.description, disconnectAccountTool.inputSchema.shape, async (input) => {
86
+ try {
87
+ const text = await disconnectAccountTool.execute(client, input);
88
+ return { content: [{ type: 'text', text }] };
89
+ }
90
+ catch (err) {
91
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
92
+ }
93
+ });
94
+ server.tool(getConnectLinkTool.name, getConnectLinkTool.description, getConnectLinkTool.inputSchema.shape, async (input) => {
95
+ try {
96
+ const text = await getConnectLinkTool.execute(client, input);
97
+ return { content: [{ type: 'text', text }] };
98
+ }
99
+ catch (err) {
100
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
101
+ }
102
+ });
103
+ server.tool(listOAuthClientsTool.name, listOAuthClientsTool.description, listOAuthClientsTool.inputSchema.shape, async () => {
104
+ try {
105
+ const text = await listOAuthClientsTool.execute(client);
106
+ return { content: [{ type: 'text', text }] };
107
+ }
108
+ catch (err) {
109
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
110
+ }
111
+ });
112
+ server.tool(createOAuthClientTool.name, createOAuthClientTool.description, createOAuthClientTool.inputSchema.shape, async (input) => {
113
+ try {
114
+ const text = await createOAuthClientTool.execute(client, input);
115
+ return { content: [{ type: 'text', text }] };
116
+ }
117
+ catch (err) {
118
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
119
+ }
120
+ });
121
+ server.tool(updateOAuthClientTool.name, updateOAuthClientTool.description, updateOAuthClientTool.inputSchema.shape, async (input) => {
122
+ try {
123
+ const text = await updateOAuthClientTool.execute(client, input);
124
+ return { content: [{ type: 'text', text }] };
125
+ }
126
+ catch (err) {
127
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
128
+ }
129
+ });
130
+ server.tool(deleteOAuthClientTool.name, deleteOAuthClientTool.description, deleteOAuthClientTool.inputSchema.shape, async (input) => {
131
+ try {
132
+ const text = await deleteOAuthClientTool.execute(client, input);
133
+ return { content: [{ type: 'text', text }] };
134
+ }
135
+ catch (err) {
136
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
137
+ }
138
+ });
139
+ server.tool(listPlatformsTool.name, listPlatformsTool.description, listPlatformsTool.inputSchema.shape, async (input) => {
140
+ try {
141
+ const text = await listPlatformsTool.execute(client, input);
142
+ return { content: [{ type: 'text', text }] };
143
+ }
144
+ catch (err) {
145
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
146
+ }
147
+ });
148
+ server.tool(getPlatformSchemaTool.name, getPlatformSchemaTool.description, getPlatformSchemaTool.inputSchema.shape, async (input) => {
149
+ try {
150
+ const text = await getPlatformSchemaTool.execute(client, input);
151
+ return { content: [{ type: 'text', text }] };
152
+ }
153
+ catch (err) {
154
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
155
+ }
156
+ });
157
+ server.tool(triggerPlatformHelperTool.name, triggerPlatformHelperTool.description, triggerPlatformHelperTool.inputSchema.shape, async (input) => {
158
+ try {
159
+ const text = await triggerPlatformHelperTool.execute(client, input);
160
+ return { content: [{ type: 'text', text }] };
161
+ }
162
+ catch (err) {
163
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
164
+ }
165
+ });
53
166
  server.tool(listBrandsTool.name, listBrandsTool.description, listBrandsTool.inputSchema.shape, async (input) => {
54
167
  try {
55
168
  const text = await listBrandsTool.execute(client, input);
@@ -131,6 +244,60 @@ server.tool(uploadMediaTool.name, uploadMediaTool.description, uploadMediaTool.i
131
244
  return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
132
245
  }
133
246
  });
247
+ server.tool(uploadMediaFromUrlTool.name, uploadMediaFromUrlTool.description, uploadMediaFromUrlTool.inputSchema.shape, async (input) => {
248
+ try {
249
+ const text = await uploadMediaFromUrlTool.execute(client, input);
250
+ return { content: [{ type: 'text', text }] };
251
+ }
252
+ catch (err) {
253
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
254
+ }
255
+ });
256
+ server.tool(createSignedUploadTool.name, createSignedUploadTool.description, createSignedUploadTool.inputSchema.shape, async (input) => {
257
+ try {
258
+ const text = await createSignedUploadTool.execute(client, input);
259
+ return { content: [{ type: 'text', text }] };
260
+ }
261
+ catch (err) {
262
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
263
+ }
264
+ });
265
+ server.tool(getVideoOptionsTool.name, getVideoOptionsTool.description, getVideoOptionsTool.inputSchema.shape, async () => {
266
+ try {
267
+ const text = await getVideoOptionsTool.execute(client);
268
+ return { content: [{ type: 'text', text }] };
269
+ }
270
+ catch (err) {
271
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
272
+ }
273
+ });
274
+ server.tool(runVideoFunctionTool.name, runVideoFunctionTool.description, runVideoFunctionTool.inputSchema.shape, async (input) => {
275
+ try {
276
+ const text = await runVideoFunctionTool.execute(client, input);
277
+ return { content: [{ type: 'text', text }] };
278
+ }
279
+ catch (err) {
280
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
281
+ }
282
+ });
283
+ server.tool(generateVideoTool.name, generateVideoTool.description, generateVideoTool.inputSchema.shape, async (input) => {
284
+ try {
285
+ const text = await generateVideoTool.execute(client, input);
286
+ return { content: [{ type: 'text', text }] };
287
+ }
288
+ catch (err) {
289
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
290
+ }
291
+ });
292
+ server.tool(getVideoJobTool.name, getVideoJobTool.description, getVideoJobTool.inputSchema.shape, async (input) => {
293
+ try {
294
+ const text = await getVideoJobTool.execute(client, input);
295
+ return { content: [{ type: 'text', text }] };
296
+ }
297
+ catch (err) {
298
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
299
+ }
300
+ });
134
301
  server.tool(generateImageTool.name, generateImageTool.description, generateImageTool.inputSchema.shape, async (input) => {
135
302
  try {
136
303
  const text = await generateImageTool.execute(client, input);
@@ -149,6 +316,15 @@ server.tool(getPostTool.name, getPostTool.description, getPostTool.inputSchema.s
149
316
  return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
150
317
  }
151
318
  });
319
+ server.tool(getPostMissingTool.name, getPostMissingTool.description, getPostMissingTool.inputSchema.shape, async (input) => {
320
+ try {
321
+ const text = await getPostMissingTool.execute(client, input);
322
+ return { content: [{ type: 'text', text }] };
323
+ }
324
+ catch (err) {
325
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
326
+ }
327
+ });
152
328
  server.tool(updatePostTool.name, updatePostTool.description, updatePostTool.inputSchema.shape, async (input) => {
153
329
  try {
154
330
  const text = await updatePostTool.execute(client, input);
@@ -158,6 +334,24 @@ server.tool(updatePostTool.name, updatePostTool.description, updatePostTool.inpu
158
334
  return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
159
335
  }
160
336
  });
337
+ server.tool(updatePostStatusTool.name, updatePostStatusTool.description, updatePostStatusTool.inputSchema.shape, async (input) => {
338
+ try {
339
+ const text = await updatePostStatusTool.execute(client, input);
340
+ return { content: [{ type: 'text', text }] };
341
+ }
342
+ catch (err) {
343
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
344
+ }
345
+ });
346
+ server.tool(updatePostReleaseIdTool.name, updatePostReleaseIdTool.description, updatePostReleaseIdTool.inputSchema.shape, async (input) => {
347
+ try {
348
+ const text = await updatePostReleaseIdTool.execute(client, input);
349
+ return { content: [{ type: 'text', text }] };
350
+ }
351
+ catch (err) {
352
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
353
+ }
354
+ });
161
355
  server.tool(deletePostTool.name, deletePostTool.description, deletePostTool.inputSchema.shape, async (input) => {
162
356
  try {
163
357
  const text = await deletePostTool.execute(client, input);
@@ -167,6 +361,15 @@ server.tool(deletePostTool.name, deletePostTool.description, deletePostTool.inpu
167
361
  return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
168
362
  }
169
363
  });
364
+ server.tool(deletePostGroupTool.name, deletePostGroupTool.description, deletePostGroupTool.inputSchema.shape, async (input) => {
365
+ try {
366
+ const text = await deletePostGroupTool.execute(client, input);
367
+ return { content: [{ type: 'text', text }] };
368
+ }
369
+ catch (err) {
370
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
371
+ }
372
+ });
170
373
  server.tool(getAccountAnalyticsTool.name, getAccountAnalyticsTool.description, getAccountAnalyticsTool.inputSchema.shape, async (input) => {
171
374
  try {
172
375
  const text = await getAccountAnalyticsTool.execute(client, input);
@@ -185,6 +388,123 @@ server.tool(getPostAnalyticsTool.name, getPostAnalyticsTool.description, getPost
185
388
  return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
186
389
  }
187
390
  });
391
+ server.tool(listGoogleBusinessReviewsTool.name, listGoogleBusinessReviewsTool.description, listGoogleBusinessReviewsTool.inputSchema.shape, async (input) => {
392
+ try {
393
+ const text = await listGoogleBusinessReviewsTool.execute(client, input);
394
+ return { content: [{ type: 'text', text }] };
395
+ }
396
+ catch (err) {
397
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
398
+ }
399
+ });
400
+ server.tool(getGoogleBusinessReviewLinkTool.name, getGoogleBusinessReviewLinkTool.description, getGoogleBusinessReviewLinkTool.inputSchema.shape, async (input) => {
401
+ try {
402
+ const text = await getGoogleBusinessReviewLinkTool.execute(client, input);
403
+ return { content: [{ type: 'text', text }] };
404
+ }
405
+ catch (err) {
406
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
407
+ }
408
+ });
409
+ server.tool(auditGoogleBusinessProfileTool.name, auditGoogleBusinessProfileTool.description, auditGoogleBusinessProfileTool.inputSchema.shape, async (input) => {
410
+ try {
411
+ const text = await auditGoogleBusinessProfileTool.execute(client, input);
412
+ return { content: [{ type: 'text', text }] };
413
+ }
414
+ catch (err) {
415
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
416
+ }
417
+ });
418
+ server.tool(suggestGoogleBusinessReviewReplyTool.name, suggestGoogleBusinessReviewReplyTool.description, suggestGoogleBusinessReviewReplyTool.inputSchema.shape, async (input) => {
419
+ try {
420
+ const text = await suggestGoogleBusinessReviewReplyTool.execute(client, input);
421
+ return { content: [{ type: 'text', text }] };
422
+ }
423
+ catch (err) {
424
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
425
+ }
426
+ });
427
+ server.tool(replyGoogleBusinessReviewTool.name, replyGoogleBusinessReviewTool.description, replyGoogleBusinessReviewTool.inputSchema.shape, async (input) => {
428
+ try {
429
+ const text = await replyGoogleBusinessReviewTool.execute(client, input);
430
+ return { content: [{ type: 'text', text }] };
431
+ }
432
+ catch (err) {
433
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
434
+ }
435
+ });
436
+ server.tool(deleteGoogleBusinessReviewReplyTool.name, deleteGoogleBusinessReviewReplyTool.description, deleteGoogleBusinessReviewReplyTool.inputSchema.shape, async (input) => {
437
+ try {
438
+ const text = await deleteGoogleBusinessReviewReplyTool.execute(client, input);
439
+ return { content: [{ type: 'text', text }] };
440
+ }
441
+ catch (err) {
442
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
443
+ }
444
+ });
445
+ server.tool(listActivityTool.name, listActivityTool.description, listActivityTool.inputSchema.shape, async (input) => {
446
+ try {
447
+ const text = await listActivityTool.execute(client, input);
448
+ return { content: [{ type: 'text', text }] };
449
+ }
450
+ catch (err) {
451
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
452
+ }
453
+ });
454
+ server.tool(listWebhooksTool.name, listWebhooksTool.description, listWebhooksTool.inputSchema.shape, async (input) => {
455
+ try {
456
+ const text = await listWebhooksTool.execute(client, input);
457
+ return { content: [{ type: 'text', text }] };
458
+ }
459
+ catch (err) {
460
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
461
+ }
462
+ });
463
+ server.tool(createWebhookTool.name, createWebhookTool.description, createWebhookTool.inputSchema.shape, async (input) => {
464
+ try {
465
+ const text = await createWebhookTool.execute(client, input);
466
+ return { content: [{ type: 'text', text }] };
467
+ }
468
+ catch (err) {
469
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
470
+ }
471
+ });
472
+ server.tool(updateWebhookTool.name, updateWebhookTool.description, updateWebhookTool.inputSchema.shape, async (input) => {
473
+ try {
474
+ const text = await updateWebhookTool.execute(client, input);
475
+ return { content: [{ type: 'text', text }] };
476
+ }
477
+ catch (err) {
478
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
479
+ }
480
+ });
481
+ server.tool(deleteWebhookTool.name, deleteWebhookTool.description, deleteWebhookTool.inputSchema.shape, async (input) => {
482
+ try {
483
+ const text = await deleteWebhookTool.execute(client, input);
484
+ return { content: [{ type: 'text', text }] };
485
+ }
486
+ catch (err) {
487
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
488
+ }
489
+ });
490
+ server.tool(testWebhookTool.name, testWebhookTool.description, testWebhookTool.inputSchema.shape, async (input) => {
491
+ try {
492
+ const text = await testWebhookTool.execute(client, input);
493
+ return { content: [{ type: 'text', text }] };
494
+ }
495
+ catch (err) {
496
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
497
+ }
498
+ });
499
+ server.tool(getXPostingQuotaTool.name, getXPostingQuotaTool.description, getXPostingQuotaTool.inputSchema.shape, async (input) => {
500
+ try {
501
+ const text = await getXPostingQuotaTool.execute(client, input);
502
+ return { content: [{ type: 'text', text }] };
503
+ }
504
+ catch (err) {
505
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
506
+ }
507
+ });
188
508
  // Start the server
189
509
  async function main() {
190
510
  const transport = new StdioServerTransport();