posterly-mcp-server 0.8.2 → 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 (121) hide show
  1. package/README.md +38 -3
  2. package/dist/generated/platform-manifest.d.ts +392 -0
  3. package/dist/generated/platform-manifest.js +695 -0
  4. package/dist/index.js +331 -1
  5. package/dist/lib/api-client.d.ts +391 -24
  6. package/dist/lib/api-client.js +176 -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 +399 -20
  12. package/dist/tools/create-post.js +81 -78
  13. package/dist/tools/create-posts-batch.d.ts +567 -0
  14. package/dist/tools/create-posts-batch.js +38 -0
  15. package/dist/tools/create-signed-upload.d.ts +24 -0
  16. package/dist/tools/create-signed-upload.js +20 -0
  17. package/dist/tools/create-webhook.d.ts +36 -0
  18. package/dist/tools/create-webhook.js +20 -0
  19. package/dist/tools/delete-google-business-review-reply.d.ts +32 -0
  20. package/dist/tools/delete-google-business-review-reply.js +17 -0
  21. package/dist/tools/delete-oauth-client.d.ts +20 -0
  22. package/dist/tools/delete-oauth-client.js +13 -0
  23. package/dist/tools/delete-post-group.d.ts +20 -0
  24. package/dist/tools/delete-post-group.js +13 -0
  25. package/dist/tools/delete-webhook.d.ts +20 -0
  26. package/dist/tools/delete-webhook.js +13 -0
  27. package/dist/tools/disconnect-account.d.ts +20 -0
  28. package/dist/tools/disconnect-account.js +22 -0
  29. package/dist/tools/generate-image.d.ts +4 -4
  30. package/dist/tools/generate-video.d.ts +59 -0
  31. package/dist/tools/generate-video.js +34 -0
  32. package/dist/tools/get-connect-link.d.ts +24 -0
  33. package/dist/tools/get-connect-link.js +46 -0
  34. package/dist/tools/get-google-business-review-link.d.ts +24 -0
  35. package/dist/tools/get-google-business-review-link.js +19 -0
  36. package/dist/tools/get-platform-schema.d.ts +24 -0
  37. package/dist/tools/get-platform-schema.js +44 -0
  38. package/dist/tools/get-post-missing.d.ts +16 -0
  39. package/dist/tools/get-post-missing.js +12 -0
  40. package/dist/tools/get-video-job.d.ts +24 -0
  41. package/dist/tools/get-video-job.js +31 -0
  42. package/dist/tools/get-video-options.d.ts +8 -0
  43. package/dist/tools/get-video-options.js +26 -0
  44. package/dist/tools/get-x-posting-quota.d.ts +16 -0
  45. package/dist/tools/get-x-posting-quota.js +21 -0
  46. package/dist/tools/list-activity.d.ts +32 -0
  47. package/dist/tools/list-activity.js +35 -0
  48. package/dist/tools/list-google-business-reviews.d.ts +32 -0
  49. package/dist/tools/list-google-business-reviews.js +28 -0
  50. package/dist/tools/list-oauth-clients.d.ts +8 -0
  51. package/dist/tools/list-oauth-clients.js +15 -0
  52. package/dist/tools/list-platforms.d.ts +16 -0
  53. package/dist/tools/list-platforms.js +20 -0
  54. package/dist/tools/list-posts.d.ts +3 -3
  55. package/dist/tools/list-posts.js +3 -2
  56. package/dist/tools/list-webhooks.d.ts +16 -0
  57. package/dist/tools/list-webhooks.js +24 -0
  58. package/dist/tools/reply-google-business-review.d.ts +36 -0
  59. package/dist/tools/reply-google-business-review.js +18 -0
  60. package/dist/tools/run-video-function.d.ts +24 -0
  61. package/dist/tools/run-video-function.js +25 -0
  62. package/dist/tools/suggest-google-business-review-reply.d.ts +48 -0
  63. package/dist/tools/suggest-google-business-review-reply.js +27 -0
  64. package/dist/tools/test-webhook.d.ts +20 -0
  65. package/dist/tools/test-webhook.js +14 -0
  66. package/dist/tools/trigger-platform-helper.d.ts +28 -0
  67. package/dist/tools/trigger-platform-helper.js +22 -0
  68. package/dist/tools/update-oauth-client.d.ts +44 -0
  69. package/dist/tools/update-oauth-client.js +21 -0
  70. package/dist/tools/update-post-release-id.d.ts +28 -0
  71. package/dist/tools/update-post-release-id.js +18 -0
  72. package/dist/tools/update-post-status.d.ts +28 -0
  73. package/dist/tools/update-post-status.js +23 -0
  74. package/dist/tools/update-post.js +1 -1
  75. package/dist/tools/update-webhook.d.ts +40 -0
  76. package/dist/tools/update-webhook.js +21 -0
  77. package/dist/tools/upload-media-from-url.d.ts +24 -0
  78. package/dist/tools/upload-media-from-url.js +26 -0
  79. package/dist/tools/webhook-events.d.ts +3 -0
  80. package/dist/tools/webhook-events.js +13 -0
  81. package/package.json +1 -1
  82. package/src/generated/platform-manifest.ts +695 -0
  83. package/src/index.ts +496 -1
  84. package/src/lib/api-client.ts +497 -19
  85. package/src/tools/audit-google-business-profile.ts +38 -0
  86. package/src/tools/create-oauth-client.ts +36 -0
  87. package/src/tools/create-post.ts +91 -94
  88. package/src/tools/create-posts-batch.ts +48 -0
  89. package/src/tools/create-signed-upload.ts +27 -0
  90. package/src/tools/create-webhook.ts +35 -0
  91. package/src/tools/delete-google-business-review-reply.ts +30 -0
  92. package/src/tools/delete-oauth-client.ts +23 -0
  93. package/src/tools/delete-post-group.ts +17 -0
  94. package/src/tools/delete-webhook.ts +18 -0
  95. package/src/tools/disconnect-account.ts +30 -0
  96. package/src/tools/generate-video.ts +38 -0
  97. package/src/tools/get-connect-link.ts +56 -0
  98. package/src/tools/get-google-business-review-link.ts +30 -0
  99. package/src/tools/get-platform-schema.ts +52 -0
  100. package/src/tools/get-post-missing.ts +17 -0
  101. package/src/tools/get-video-job.ts +36 -0
  102. package/src/tools/get-video-options.ts +30 -0
  103. package/src/tools/get-x-posting-quota.ts +25 -0
  104. package/src/tools/list-activity.ts +51 -0
  105. package/src/tools/list-google-business-reviews.ts +43 -0
  106. package/src/tools/list-oauth-clients.ts +18 -0
  107. package/src/tools/list-platforms.ts +25 -0
  108. package/src/tools/list-posts.ts +3 -2
  109. package/src/tools/list-webhooks.ts +30 -0
  110. package/src/tools/reply-google-business-review.ts +32 -0
  111. package/src/tools/run-video-function.ts +32 -0
  112. package/src/tools/suggest-google-business-review-reply.ts +44 -0
  113. package/src/tools/test-webhook.ts +18 -0
  114. package/src/tools/trigger-platform-helper.ts +34 -0
  115. package/src/tools/update-oauth-client.ts +38 -0
  116. package/src/tools/update-post-release-id.ts +26 -0
  117. package/src/tools/update-post-status.ts +31 -0
  118. package/src/tools/update-post.ts +1 -1
  119. package/src/tools/update-webhook.ts +37 -0
  120. package/src/tools/upload-media-from-url.ts +33 -0
  121. package/src/tools/webhook-events.ts +16 -0
package/dist/index.js CHANGED
@@ -3,24 +3,57 @@ 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';
9
10
  import { getBrandProfileTool } from './tools/get-brand-profile.js';
10
11
  import { createPostTool } from './tools/create-post.js';
12
+ import { createPostsBatchTool } from './tools/create-posts-batch.js';
11
13
  import { findSlotTool } from './tools/find-slot.js';
12
14
  import { listPostsTool } from './tools/list-posts.js';
13
15
  import { uploadMediaTool } from './tools/upload-media.js';
14
16
  import { getPostTool } from './tools/get-post.js';
17
+ import { getPostMissingTool } from './tools/get-post-missing.js';
15
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';
16
21
  import { deletePostTool } from './tools/delete-post.js';
22
+ import { deletePostGroupTool } from './tools/delete-post-group.js';
17
23
  import { whoamiTool } from './tools/whoami.js';
18
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';
19
29
  import { getAccountAnalyticsTool } from './tools/get-account-analytics.js';
20
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';
21
54
  const server = new McpServer({
22
55
  name: 'posterly',
23
- version: '0.8.0',
56
+ version: '0.19.0',
24
57
  });
25
58
  let client;
26
59
  try {
@@ -49,6 +82,87 @@ server.tool(listAccountsTool.name, listAccountsTool.description, listAccountsToo
49
82
  return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
50
83
  }
51
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
+ });
52
166
  server.tool(listBrandsTool.name, listBrandsTool.description, listBrandsTool.inputSchema.shape, async (input) => {
53
167
  try {
54
168
  const text = await listBrandsTool.execute(client, input);
@@ -94,6 +208,15 @@ server.tool(createPostTool.name, createPostTool.description, createPostTool.inpu
94
208
  return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
95
209
  }
96
210
  });
211
+ server.tool(createPostsBatchTool.name, createPostsBatchTool.description, createPostsBatchTool.inputSchema.shape, async (input) => {
212
+ try {
213
+ const text = await createPostsBatchTool.execute(client, input);
214
+ return { content: [{ type: 'text', text }] };
215
+ }
216
+ catch (err) {
217
+ return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
218
+ }
219
+ });
97
220
  server.tool(findSlotTool.name, findSlotTool.description, findSlotTool.inputSchema.shape, async (input) => {
98
221
  try {
99
222
  const text = await findSlotTool.execute(client, input);
@@ -121,6 +244,60 @@ server.tool(uploadMediaTool.name, uploadMediaTool.description, uploadMediaTool.i
121
244
  return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
122
245
  }
123
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
+ });
124
301
  server.tool(generateImageTool.name, generateImageTool.description, generateImageTool.inputSchema.shape, async (input) => {
125
302
  try {
126
303
  const text = await generateImageTool.execute(client, input);
@@ -139,6 +316,15 @@ server.tool(getPostTool.name, getPostTool.description, getPostTool.inputSchema.s
139
316
  return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
140
317
  }
141
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
+ });
142
328
  server.tool(updatePostTool.name, updatePostTool.description, updatePostTool.inputSchema.shape, async (input) => {
143
329
  try {
144
330
  const text = await updatePostTool.execute(client, input);
@@ -148,6 +334,24 @@ server.tool(updatePostTool.name, updatePostTool.description, updatePostTool.inpu
148
334
  return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
149
335
  }
150
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
+ });
151
355
  server.tool(deletePostTool.name, deletePostTool.description, deletePostTool.inputSchema.shape, async (input) => {
152
356
  try {
153
357
  const text = await deletePostTool.execute(client, input);
@@ -157,6 +361,15 @@ server.tool(deletePostTool.name, deletePostTool.description, deletePostTool.inpu
157
361
  return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
158
362
  }
159
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
+ });
160
373
  server.tool(getAccountAnalyticsTool.name, getAccountAnalyticsTool.description, getAccountAnalyticsTool.inputSchema.shape, async (input) => {
161
374
  try {
162
375
  const text = await getAccountAnalyticsTool.execute(client, input);
@@ -175,6 +388,123 @@ server.tool(getPostAnalyticsTool.name, getPostAnalyticsTool.description, getPost
175
388
  return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
176
389
  }
177
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
+ });
178
508
  // Start the server
179
509
  async function main() {
180
510
  const transport = new StdioServerTransport();