@exileum/meta-mcp 5.0.0 → 7.0.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 (86) hide show
  1. package/README.md +83 -12
  2. package/dist/config.d.ts +10 -8
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +65 -8
  5. package/dist/config.js.map +1 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +11 -59
  8. package/dist/index.js.map +1 -1
  9. package/dist/register-all.d.ts +4 -0
  10. package/dist/register-all.d.ts.map +1 -0
  11. package/dist/register-all.js +41 -0
  12. package/dist/register-all.js.map +1 -0
  13. package/dist/resources/instagram.d.ts.map +1 -1
  14. package/dist/resources/instagram.js +18 -12
  15. package/dist/resources/instagram.js.map +1 -1
  16. package/dist/resources/threads.d.ts.map +1 -1
  17. package/dist/resources/threads.js +18 -12
  18. package/dist/resources/threads.js.map +1 -1
  19. package/dist/schemas.d.ts +14 -0
  20. package/dist/schemas.d.ts.map +1 -1
  21. package/dist/schemas.js +14 -0
  22. package/dist/schemas.js.map +1 -1
  23. package/dist/services/meta-client.d.ts +101 -5
  24. package/dist/services/meta-client.d.ts.map +1 -1
  25. package/dist/services/meta-client.js +273 -69
  26. package/dist/services/meta-client.js.map +1 -1
  27. package/dist/tools/annotations.d.ts +6 -0
  28. package/dist/tools/annotations.d.ts.map +1 -0
  29. package/dist/tools/annotations.js +27 -0
  30. package/dist/tools/annotations.js.map +1 -0
  31. package/dist/tools/instagram/comments.d.ts.map +1 -1
  32. package/dist/tools/instagram/comments.js +64 -33
  33. package/dist/tools/instagram/comments.js.map +1 -1
  34. package/dist/tools/instagram/hashtags.d.ts.map +1 -1
  35. package/dist/tools/instagram/hashtags.js +37 -18
  36. package/dist/tools/instagram/hashtags.js.map +1 -1
  37. package/dist/tools/instagram/media.d.ts.map +1 -1
  38. package/dist/tools/instagram/media.js +47 -24
  39. package/dist/tools/instagram/media.js.map +1 -1
  40. package/dist/tools/instagram/mentions.d.ts.map +1 -1
  41. package/dist/tools/instagram/mentions.js +21 -10
  42. package/dist/tools/instagram/mentions.js.map +1 -1
  43. package/dist/tools/instagram/messaging.d.ts.map +1 -1
  44. package/dist/tools/instagram/messaging.js +64 -27
  45. package/dist/tools/instagram/messaging.js.map +1 -1
  46. package/dist/tools/instagram/profile.d.ts.map +1 -1
  47. package/dist/tools/instagram/profile.js +54 -31
  48. package/dist/tools/instagram/profile.js.map +1 -1
  49. package/dist/tools/instagram/publishing.d.ts.map +1 -1
  50. package/dist/tools/instagram/publishing.js +83 -57
  51. package/dist/tools/instagram/publishing.js.map +1 -1
  52. package/dist/tools/meta/auth.d.ts.map +1 -1
  53. package/dist/tools/meta/auth.js +47 -21
  54. package/dist/tools/meta/auth.js.map +1 -1
  55. package/dist/tools/threads/insights.d.ts.map +1 -1
  56. package/dist/tools/threads/insights.js +21 -10
  57. package/dist/tools/threads/insights.js.map +1 -1
  58. package/dist/tools/threads/media.d.ts.map +1 -1
  59. package/dist/tools/threads/media.js +38 -23
  60. package/dist/tools/threads/media.js.map +1 -1
  61. package/dist/tools/threads/mentions.d.ts.map +1 -1
  62. package/dist/tools/threads/mentions.js +12 -6
  63. package/dist/tools/threads/mentions.js.map +1 -1
  64. package/dist/tools/threads/profile.d.ts.map +1 -1
  65. package/dist/tools/threads/profile.js +8 -2
  66. package/dist/tools/threads/profile.js.map +1 -1
  67. package/dist/tools/threads/publishing.d.ts +7 -0
  68. package/dist/tools/threads/publishing.d.ts.map +1 -1
  69. package/dist/tools/threads/publishing.js +168 -76
  70. package/dist/tools/threads/publishing.js.map +1 -1
  71. package/dist/tools/threads/replies.d.ts.map +1 -1
  72. package/dist/tools/threads/replies.js +48 -27
  73. package/dist/tools/threads/replies.js.map +1 -1
  74. package/dist/utils/container.d.ts +4 -2
  75. package/dist/utils/container.d.ts.map +1 -1
  76. package/dist/utils/container.js +8 -3
  77. package/dist/utils/container.js.map +1 -1
  78. package/dist/utils/errors.d.ts +2 -0
  79. package/dist/utils/errors.d.ts.map +1 -1
  80. package/dist/utils/errors.js +27 -10
  81. package/dist/utils/errors.js.map +1 -1
  82. package/dist/utils/response.d.ts +11 -0
  83. package/dist/utils/response.d.ts.map +1 -0
  84. package/dist/utils/response.js +6 -0
  85. package/dist/utils/response.js.map +1 -0
  86. package/package.json +10 -1
@@ -1,7 +1,9 @@
1
1
  import { z } from "zod";
2
- import { httpsUrl } from "../../schemas.js";
3
- import { waitForThreadsContainer } from "../../utils/container.js";
2
+ import { httpsUrl, metaId } from "../../schemas.js";
3
+ import { waitForThreadsContainer, IMAGE_PROCESSING_TIMEOUT, VIDEO_PROCESSING_TIMEOUT } from "../../utils/container.js";
4
4
  import { formatErrorResponse, validationError } from "../../utils/errors.js";
5
+ import { formatResponse } from "../../utils/response.js";
6
+ import { READ_ONLY_TOOL, DESTRUCTIVE_TOOL, WRITE_TOOL } from "../annotations.js";
5
7
  export const topicTagSchema = z.string().min(1).max(50).regex(/^[^.&]+$/, "Topic tags cannot contain periods or ampersands").optional().describe("Topic tag for the post (1-50 chars, no periods or ampersands)");
6
8
  export const shareToIgStorySchema = z.enum(["light", "dark"]).optional().describe("Cross-share this post to linked Instagram as a Story. 'light' = normal, 'dark' = dark mode. Requires threads_share_to_instagram permission and a linked Instagram account. The Threads post still publishes even if cross-share fails.");
7
9
  export const pollOptionsSchema = z.array(z.string().min(1).max(25)).min(2).max(4).optional().describe("Poll options (2-4 choices, each 1-25 chars). Creates a poll attachment. Cannot be combined with text_attachment, link_attachment, or gif_id+gif_provider.");
@@ -12,6 +14,13 @@ export const textAttachmentStylingSchema = z.array(z.object({
12
14
  styles: z.array(textStylingEnum).min(1).describe("Styles to apply (bold, italic, highlight, underline, strikethrough)"),
13
15
  })).optional().describe("Text formatting for the text attachment. Ranges must not overlap.");
14
16
  export const allowlistedCountryCodesSchema = z.array(z.string().regex(/^[A-Za-z]{2}$/, "Must be an ISO 3166-1 alpha-2 country code (2 letters)")).min(1).optional().describe("ISO 3166-1 alpha-2 country codes (e.g., ['US','CA','GB']) restricting post visibility to those countries (geo-gating). Requires the account to be eligible — check `is_eligible_for_geo_gating` via `threads_get_profile`. The creator can always see their own posts regardless. Codes are normalized to uppercase and sent comma-joined (e.g., 'US,CA') as required by the API.");
17
+ export const replyControlSchema = z.enum([
18
+ "everyone",
19
+ "accounts_you_follow",
20
+ "mentioned_only",
21
+ "parent_post_author_only",
22
+ "followers_only",
23
+ ]).optional().describe("Who can reply to this post. One of: 'everyone' (default — anyone can reply), 'accounts_you_follow' (only profiles the author follows), 'mentioned_only' (only profiles @-mentioned in the post), 'parent_post_author_only' (only the author of the post being replied to — applies when this post is itself a reply, not a quote), or 'followers_only' (only the author's followers). See https://developers.facebook.com/docs/threads/reply-management/ for the authoritative list.");
15
24
  const POLL_OPTION_KEYS = ["option_a", "option_b", "option_c", "option_d"];
16
25
  function applyShareToIgStory(params, share_to_ig_story) {
17
26
  if (share_to_ig_story) {
@@ -27,23 +36,29 @@ function applyAllowlistedCountryCodes(params, codes) {
27
36
  }
28
37
  export function registerThreadsPublishingTools(server, client) {
29
38
  // ─── threads_publish_text ────────────────────────────────────
30
- server.tool("threads_publish_text", "Publish a text-only post on Threads. By default publishes in a single API call via auto_publish_text=true (faster and avoids the 4279009 'container not propagated' race condition). Supports optional link attachment, poll, GIF, topic tag, quote post, cross-share to Instagram Stories, geo-gating via allowlisted_country_codes, and text_attachment for long-form content (up to 10,000 chars with optional styling and link). Only one attachment type per post — text_attachment, poll_options, link_attachment, and gif_id+gif_provider are mutually exclusive. Set auto_publish=false to fall back to the legacy two-step create-then-publish flow.", {
31
- text: z.string().max(500).describe("Post text (max 500 chars)"),
32
- reply_control: z.enum(["everyone", "accounts_you_follow", "mentioned_only", "parent_post_author_only", "followers_only"]).optional().describe("Who can reply"),
33
- link_attachment: z.string().url().optional().describe("URL to attach as a link preview card (max 5 links per post). Cannot be combined with text_attachment, poll_options, or gif_id+gif_provider."),
34
- topic_tag: topicTagSchema,
35
- quote_post_id: z.string().optional().describe("ID of a post to quote"),
36
- poll_options: pollOptionsSchema,
37
- gif_id: z.string().min(1).optional().describe("GIPHY GIF ID. Must be provided together with gif_provider — providing only one returns an error."),
38
- gif_provider: z.enum(["GIPHY"]).optional().describe("GIF provider. Only GIPHY is currently supported. Must be provided together with gif_id — providing only one returns an error."),
39
- is_spoiler: z.boolean().optional().describe("Mark content as spoiler"),
40
- share_to_ig_story: shareToIgStorySchema,
41
- allowlisted_country_codes: allowlistedCountryCodesSchema,
42
- text_attachment: z.string().min(1).max(10000).optional().describe("Long-form text attachment (max 10,000 chars). Renders as expandable 'Read more' block beneath the primary text. Cannot be combined with poll_options, link_attachment, or gif_id+gif_provider."),
43
- text_attachment_link: z.string().url().optional().describe("URL to include inside the text attachment card. Requires text_attachment."),
44
- text_attachment_styling: textAttachmentStylingSchema,
45
- auto_publish: z.boolean().optional().default(true).describe("When true (default), combine container creation and publishing into a single API call via auto_publish_text=true — one HTTP request instead of two, and no risk of the 4279009 'container not propagated yet' race. Set to false to fall back to the legacy two-step flow (POST /threads, then POST /threads_publish)."),
46
- }, async ({ text, reply_control, link_attachment, topic_tag, quote_post_id, poll_options, gif_id, gif_provider, is_spoiler, share_to_ig_story, allowlisted_country_codes, text_attachment, text_attachment_link, text_attachment_styling, auto_publish }) => {
39
+ server.registerTool("threads_publish_text", {
40
+ description: "Publish a text-only post on Threads. By default publishes in a single API call via auto_publish_text=true (faster and avoids the 4279009 'container not propagated' race condition). Supports optional link attachment, poll, GIF, topic tag, quote post, cross-share to Instagram Stories, geo-gating via allowlisted_country_codes, location tagging via location_id, and text_attachment for long-form content (up to 10,000 chars with optional styling and link). Only one attachment type per post — text_attachment, poll_options, link_attachment, and gif_id+gif_provider are mutually exclusive. Set auto_publish=false to fall back to the legacy two-step create-then-publish flow.",
41
+ inputSchema: {
42
+ text: z.string().max(500).describe("Post text (max 500 chars)"),
43
+ reply_control: replyControlSchema,
44
+ link_attachment: z.string().url().optional().describe("URL to attach as a link preview card (max 5 links per post). Cannot be combined with text_attachment, poll_options, or gif_id+gif_provider."),
45
+ topic_tag: topicTagSchema,
46
+ quote_post_id: z.string().optional().describe("ID of a post to quote"),
47
+ poll_options: pollOptionsSchema,
48
+ gif_id: z.string().min(1).optional().describe("GIPHY GIF ID. Must be provided together with gif_provider — providing only one returns an error."),
49
+ gif_provider: z.enum(["GIPHY"]).optional().describe("GIF provider. Only GIPHY is currently supported. Must be provided together with gif_id — providing only one returns an error."),
50
+ is_spoiler: z.boolean().optional().describe("Mark content as spoiler"),
51
+ share_to_ig_story: shareToIgStorySchema,
52
+ allowlisted_country_codes: allowlistedCountryCodesSchema,
53
+ location_id: z.string().optional().describe("Location ID for tagging the post. Use threads_search_locations to find IDs. Requires the threads_location_tagging permission on the access token."),
54
+ text_attachment: z.string().min(1).max(10000).optional().describe("Long-form text attachment (max 10,000 chars). Renders as expandable 'Read more' block beneath the primary text. Cannot be combined with poll_options, link_attachment, or gif_id+gif_provider."),
55
+ text_attachment_link: z.string().url().optional().describe("URL to include inside the text attachment card. Requires text_attachment."),
56
+ text_attachment_styling: textAttachmentStylingSchema,
57
+ auto_publish: z.boolean().optional().default(true).describe("When true (default), combine container creation and publishing into a single API call via auto_publish_text=true — one HTTP request instead of two, and no risk of the 4279009 'container not propagated yet' race. Set to false to fall back to the legacy two-step flow (POST /threads, then POST /threads_publish)."),
58
+ alt_text: z.never("alt_text is not supported on text-only Threads posts (media_type=TEXT). Use threads_publish_image, threads_publish_video, or threads_publish_carousel for accessibility labels — those tools accept alt_text on IMAGE/VIDEO/CAROUSEL containers.").optional().describe("Reserved — must be omitted. alt_text is only supported on image, video, and carousel posts; passing it here raises a Zod schema error."),
59
+ },
60
+ annotations: WRITE_TOOL,
61
+ }, async ({ text, reply_control, link_attachment, topic_tag, quote_post_id, poll_options, gif_id, gif_provider, is_spoiler, share_to_ig_story, allowlisted_country_codes, location_id, text_attachment, text_attachment_link, text_attachment_styling, auto_publish }) => {
47
62
  try {
48
63
  // Validate mutual exclusions
49
64
  if (text_attachment && poll_options) {
@@ -123,6 +138,8 @@ export function registerThreadsPublishingTools(server, client) {
123
138
  }
124
139
  applyShareToIgStory(params, share_to_ig_story);
125
140
  applyAllowlistedCountryCodes(params, allowlisted_country_codes);
141
+ if (location_id)
142
+ params.location_id = location_id;
126
143
  // Treat `undefined` as the default (true) so the behavior is stable even
127
144
  // if a caller bypasses Zod's schema-level default (e.g., direct handler
128
145
  // invocation in tests). Only an explicit `false` takes the legacy path.
@@ -135,29 +152,34 @@ export function registerThreadsPublishingTools(server, client) {
135
152
  if (typeof createResponse.id !== "string")
136
153
  throw new Error("Container creation did not return a valid id");
137
154
  if (useAutoPublish) {
138
- return { content: [{ type: "text", text: JSON.stringify({ ...createResponse, _rateLimit: createRateLimit }, null, 2) }] };
155
+ return formatResponse(createResponse, createRateLimit);
139
156
  }
140
157
  const { data, rateLimit } = await client.threads("POST", `/${client.threadsUserId}/threads_publish`, {
141
158
  creation_id: createResponse.id,
142
159
  });
143
- return { content: [{ type: "text", text: JSON.stringify({ ...data, _rateLimit: rateLimit }, null, 2) }] };
160
+ return formatResponse(data, rateLimit);
144
161
  }
145
162
  catch (error) {
146
163
  return formatErrorResponse(error, "Publish text");
147
164
  }
148
165
  });
149
166
  // ─── threads_publish_image ───────────────────────────────────
150
- server.tool("threads_publish_image", "Publish an image post on Threads. Supports topic tag, quote post, alt text, spoiler flag, cross-share to Instagram Stories, and geo-gating via allowlisted_country_codes.", {
151
- image_url: httpsUrl.describe("Public HTTPS URL of the image (JPEG/PNG, max 8MB)"),
152
- text: z.string().max(500).optional().describe("Caption text"),
153
- reply_control: z.enum(["everyone", "accounts_you_follow", "mentioned_only", "parent_post_author_only", "followers_only"]).optional().describe("Who can reply"),
154
- topic_tag: topicTagSchema,
155
- quote_post_id: z.string().optional().describe("ID of a post to quote"),
156
- alt_text: z.string().max(1000).optional().describe("Alt text for accessibility (max 1000 chars)"),
157
- is_spoiler: z.boolean().optional().describe("Mark content as spoiler"),
158
- share_to_ig_story: shareToIgStorySchema,
159
- allowlisted_country_codes: allowlistedCountryCodesSchema,
160
- }, async ({ image_url, text, reply_control, topic_tag, quote_post_id, alt_text, is_spoiler, share_to_ig_story, allowlisted_country_codes }) => {
167
+ server.registerTool("threads_publish_image", {
168
+ description: "Publish an image post on Threads. Supports topic tag, quote post, alt text, spoiler flag, cross-share to Instagram Stories, geo-gating via allowlisted_country_codes, and location tagging via location_id.",
169
+ inputSchema: {
170
+ image_url: httpsUrl.describe("Public HTTPS URL of the image (JPEG/PNG, max 8MB)"),
171
+ text: z.string().max(500).optional().describe("Caption text"),
172
+ reply_control: replyControlSchema,
173
+ topic_tag: topicTagSchema,
174
+ quote_post_id: z.string().optional().describe("ID of a post to quote"),
175
+ alt_text: z.string().max(1000).optional().describe("Alt text for accessibility (max 1000 chars)"),
176
+ is_spoiler: z.boolean().optional().describe("Mark content as spoiler"),
177
+ share_to_ig_story: shareToIgStorySchema,
178
+ allowlisted_country_codes: allowlistedCountryCodesSchema,
179
+ location_id: z.string().optional().describe("Location ID for tagging the post. Use threads_search_locations to find IDs. Requires the threads_location_tagging permission on the access token."),
180
+ },
181
+ annotations: WRITE_TOOL,
182
+ }, async ({ image_url, text, reply_control, topic_tag, quote_post_id, alt_text, is_spoiler, share_to_ig_story, allowlisted_country_codes, location_id }) => {
161
183
  try {
162
184
  const params = { media_type: "IMAGE", image_url };
163
185
  if (text)
@@ -174,6 +196,8 @@ export function registerThreadsPublishingTools(server, client) {
174
196
  params.is_spoiler_media = true;
175
197
  applyShareToIgStory(params, share_to_ig_story);
176
198
  applyAllowlistedCountryCodes(params, allowlisted_country_codes);
199
+ if (location_id)
200
+ params.location_id = location_id;
177
201
  const { data: container } = await client.threads("POST", `/${client.threadsUserId}/threads`, params);
178
202
  if (typeof container.id !== "string")
179
203
  throw new Error("Container creation did not return a valid id");
@@ -182,24 +206,29 @@ export function registerThreadsPublishingTools(server, client) {
182
206
  const { data, rateLimit } = await client.threads("POST", `/${client.threadsUserId}/threads_publish`, {
183
207
  creation_id: containerId,
184
208
  });
185
- return { content: [{ type: "text", text: JSON.stringify({ ...data, _rateLimit: rateLimit }, null, 2) }] };
209
+ return formatResponse(data, rateLimit);
186
210
  }
187
211
  catch (error) {
188
212
  return formatErrorResponse(error, "Publish image");
189
213
  }
190
214
  });
191
215
  // ─── threads_publish_video ───────────────────────────────────
192
- server.tool("threads_publish_video", "Publish a video post on Threads. Waits for video processing. Supports topic tag, quote post, alt text, spoiler flag, cross-share to Instagram Stories, and geo-gating via allowlisted_country_codes. Note: cross-share to IG Stories may silently fail for video posts (the Threads post still publishes).", {
193
- video_url: httpsUrl.describe("Public HTTPS URL of the video (MP4/MOV, max 1GB, up to 5 min)"),
194
- text: z.string().max(500).optional().describe("Caption text"),
195
- reply_control: z.enum(["everyone", "accounts_you_follow", "mentioned_only", "parent_post_author_only", "followers_only"]).optional().describe("Who can reply"),
196
- topic_tag: topicTagSchema,
197
- quote_post_id: z.string().optional().describe("ID of a post to quote"),
198
- alt_text: z.string().max(1000).optional().describe("Alt text for accessibility (max 1000 chars)"),
199
- is_spoiler: z.boolean().optional().describe("Mark content as spoiler"),
200
- share_to_ig_story: shareToIgStorySchema,
201
- allowlisted_country_codes: allowlistedCountryCodesSchema,
202
- }, async ({ video_url, text, reply_control, topic_tag, quote_post_id, alt_text, is_spoiler, share_to_ig_story, allowlisted_country_codes }) => {
216
+ server.registerTool("threads_publish_video", {
217
+ description: "Publish a video post on Threads. Waits for video processing. Supports topic tag, quote post, alt text, spoiler flag, cross-share to Instagram Stories, geo-gating via allowlisted_country_codes, and location tagging via location_id. Note: cross-share to IG Stories may silently fail for video posts (the Threads post still publishes).",
218
+ inputSchema: {
219
+ video_url: httpsUrl.describe("Public HTTPS URL of the video (MP4/MOV, max 1GB, up to 5 min)"),
220
+ text: z.string().max(500).optional().describe("Caption text"),
221
+ reply_control: replyControlSchema,
222
+ topic_tag: topicTagSchema,
223
+ quote_post_id: z.string().optional().describe("ID of a post to quote"),
224
+ alt_text: z.string().max(1000).optional().describe("Alt text for accessibility (max 1000 chars)"),
225
+ is_spoiler: z.boolean().optional().describe("Mark content as spoiler"),
226
+ share_to_ig_story: shareToIgStorySchema,
227
+ allowlisted_country_codes: allowlistedCountryCodesSchema,
228
+ location_id: z.string().optional().describe("Location ID for tagging the post. Use threads_search_locations to find IDs. Requires the threads_location_tagging permission on the access token."),
229
+ },
230
+ annotations: WRITE_TOOL,
231
+ }, async ({ video_url, text, reply_control, topic_tag, quote_post_id, alt_text, is_spoiler, share_to_ig_story, allowlisted_country_codes, location_id }) => {
203
232
  try {
204
233
  const params = { media_type: "VIDEO", video_url };
205
234
  if (text)
@@ -216,37 +245,45 @@ export function registerThreadsPublishingTools(server, client) {
216
245
  params.is_spoiler_media = true;
217
246
  applyShareToIgStory(params, share_to_ig_story);
218
247
  applyAllowlistedCountryCodes(params, allowlisted_country_codes);
248
+ if (location_id)
249
+ params.location_id = location_id;
219
250
  const { data: container } = await client.threads("POST", `/${client.threadsUserId}/threads`, params);
220
251
  if (typeof container.id !== "string")
221
252
  throw new Error("Container creation did not return a valid id");
222
253
  const containerId = container.id;
223
- await waitForThreadsContainer(client, containerId, 120);
254
+ await waitForThreadsContainer(client, containerId, VIDEO_PROCESSING_TIMEOUT);
224
255
  const { data, rateLimit } = await client.threads("POST", `/${client.threadsUserId}/threads_publish`, {
225
256
  creation_id: containerId,
226
257
  });
227
- return { content: [{ type: "text", text: JSON.stringify({ ...data, _rateLimit: rateLimit }, null, 2) }] };
258
+ return formatResponse(data, rateLimit);
228
259
  }
229
260
  catch (error) {
230
261
  return formatErrorResponse(error, "Publish video");
231
262
  }
232
263
  });
233
264
  // ─── threads_publish_carousel ────────────────────────────────
234
- server.tool("threads_publish_carousel", "Publish a carousel post on Threads with 2-20 images/videos. Supports cross-share to Instagram Stories and geo-gating via allowlisted_country_codes (parent container only).", {
235
- items: z.array(z.object({
236
- type: z.enum(["IMAGE", "VIDEO"]).describe("Media type"),
237
- url: httpsUrl.describe("Public HTTPS URL"),
238
- alt_text: z.string().max(1000).optional().describe("Alt text for this item"),
239
- })).min(2).max(20).describe("Array of media items"),
240
- text: z.string().max(500).optional().describe("Caption text"),
241
- reply_control: z.enum(["everyone", "accounts_you_follow", "mentioned_only", "parent_post_author_only", "followers_only"]).optional().describe("Who can reply"),
242
- topic_tag: topicTagSchema,
243
- quote_post_id: z.string().optional().describe("ID of a post to quote"),
244
- share_to_ig_story: shareToIgStorySchema,
245
- allowlisted_country_codes: allowlistedCountryCodesSchema,
246
- }, async ({ items, text, reply_control, topic_tag, quote_post_id, share_to_ig_story, allowlisted_country_codes }) => {
265
+ server.registerTool("threads_publish_carousel", {
266
+ description: "Publish a carousel post on Threads with 2-20 images/videos. Supports cross-share to Instagram Stories, geo-gating via allowlisted_country_codes, and location tagging via location_id (parent container only).",
267
+ inputSchema: {
268
+ items: z.array(z.object({
269
+ type: z.enum(["IMAGE", "VIDEO"]).describe("Media type"),
270
+ url: httpsUrl.describe("Public HTTPS URL"),
271
+ alt_text: z.string().max(1000).optional().describe("Alt text for this item"),
272
+ })).min(2).max(20).describe("Array of media items"),
273
+ text: z.string().max(500).optional().describe("Caption text"),
274
+ reply_control: replyControlSchema,
275
+ topic_tag: topicTagSchema,
276
+ quote_post_id: z.string().optional().describe("ID of a post to quote"),
277
+ share_to_ig_story: shareToIgStorySchema,
278
+ allowlisted_country_codes: allowlistedCountryCodesSchema,
279
+ location_id: z.string().optional().describe("Location ID for tagging the post. Use threads_search_locations to find IDs. Requires the threads_location_tagging permission on the access token."),
280
+ },
281
+ annotations: WRITE_TOOL,
282
+ }, async ({ items, text, reply_control, topic_tag, quote_post_id, share_to_ig_story, allowlisted_country_codes, location_id }) => {
247
283
  try {
248
- const childIds = [];
249
- for (const item of items) {
284
+ // Children are independent — create them in parallel. Errors propagate
285
+ // unwrapped so formatErrorResponse keeps MetaApiError categorization.
286
+ const childIds = await Promise.all(items.map(async (item) => {
250
287
  const params = { media_type: item.type, is_carousel_item: true };
251
288
  if (item.type === "IMAGE") {
252
289
  params.image_url = item.url;
@@ -260,9 +297,9 @@ export function registerThreadsPublishingTools(server, client) {
260
297
  if (typeof child.id !== "string")
261
298
  throw new Error("Container creation did not return a valid id");
262
299
  const childId = child.id;
263
- await waitForThreadsContainer(client, childId, item.type === "VIDEO" ? 120 : 30);
264
- childIds.push(childId);
265
- }
300
+ await waitForThreadsContainer(client, childId, item.type === "VIDEO" ? VIDEO_PROCESSING_TIMEOUT : IMAGE_PROCESSING_TIMEOUT);
301
+ return childId;
302
+ }));
266
303
  const carouselParams = {
267
304
  media_type: "CAROUSEL",
268
305
  children: childIds.join(","),
@@ -277,6 +314,8 @@ export function registerThreadsPublishingTools(server, client) {
277
314
  carouselParams.quote_post_id = quote_post_id;
278
315
  applyShareToIgStory(carouselParams, share_to_ig_story);
279
316
  applyAllowlistedCountryCodes(carouselParams, allowlisted_country_codes);
317
+ if (location_id)
318
+ carouselParams.location_id = location_id;
280
319
  const { data: carousel } = await client.threads("POST", `/${client.threadsUserId}/threads`, carouselParams);
281
320
  if (typeof carousel.id !== "string")
282
321
  throw new Error("Container creation did not return a valid id");
@@ -285,33 +324,41 @@ export function registerThreadsPublishingTools(server, client) {
285
324
  const { data, rateLimit } = await client.threads("POST", `/${client.threadsUserId}/threads_publish`, {
286
325
  creation_id: carouselId,
287
326
  });
288
- return { content: [{ type: "text", text: JSON.stringify({ ...data, _rateLimit: rateLimit }, null, 2) }] };
327
+ return formatResponse(data, rateLimit);
289
328
  }
290
329
  catch (error) {
291
330
  return formatErrorResponse(error, "Publish carousel");
292
331
  }
293
332
  });
294
333
  // ─── threads_delete_post ──────────────────────────────────────
295
- server.tool("threads_delete_post", "Delete a Threads post. This action is irreversible. Rate limited to 100 deletions per 24 hours.", {
296
- post_id: z.string().describe("Threads post ID to delete"),
334
+ server.registerTool("threads_delete_post", {
335
+ description: "Delete a Threads post. This action is irreversible. Rate limited to 100 deletions per 24 hours.",
336
+ inputSchema: {
337
+ post_id: metaId.describe("Threads post ID to delete"),
338
+ },
339
+ annotations: DESTRUCTIVE_TOOL,
297
340
  }, async ({ post_id }) => {
298
341
  try {
299
342
  const { data, rateLimit } = await client.threads("DELETE", `/${post_id}`);
300
- return { content: [{ type: "text", text: JSON.stringify({ success: true, ...data, _rateLimit: rateLimit }, null, 2) }] };
343
+ return formatResponse({ success: true, ...data }, rateLimit);
301
344
  }
302
345
  catch (error) {
303
346
  return formatErrorResponse(error, "Delete post");
304
347
  }
305
348
  });
306
349
  // ─── threads_get_container_status ────────────────────────────
307
- server.tool("threads_get_container_status", "Check the processing status of a Threads media container. Only works with unpublished container IDs (returned from container creation endpoints) — not with published post IDs.", {
308
- container_id: z.string().describe("Unpublished container ID to check (from container creation, not a published post ID)"),
350
+ server.registerTool("threads_get_container_status", {
351
+ description: "Check the processing status of a Threads media container. Only works with unpublished container IDs (returned from container creation endpoints) — not with published post IDs.",
352
+ inputSchema: {
353
+ container_id: metaId.describe("Unpublished container ID to check (from container creation, not a published post ID)"),
354
+ },
355
+ annotations: READ_ONLY_TOOL,
309
356
  }, async ({ container_id }) => {
310
357
  try {
311
358
  const { data, rateLimit } = await client.threads("GET", `/${container_id}`, {
312
359
  fields: "id,status,error_message",
313
360
  });
314
- return { content: [{ type: "text", text: JSON.stringify({ ...data, _rateLimit: rateLimit }, null, 2) }] };
361
+ return formatResponse(data, rateLimit);
315
362
  }
316
363
  catch (error) {
317
364
  const msg = error instanceof Error ? error.message : String(error);
@@ -322,28 +369,73 @@ export function registerThreadsPublishingTools(server, client) {
322
369
  }
323
370
  });
324
371
  // ─── threads_get_publishing_limit ────────────────────────────
325
- server.tool("threads_get_publishing_limit", "Check how many posts you can still publish within the current 24-hour window (max 250 posts/day).", {}, async () => {
372
+ server.registerTool("threads_get_publishing_limit", {
373
+ description: "Check how many posts you can still publish within the current 24-hour window (max 250 posts/day).",
374
+ inputSchema: {},
375
+ annotations: READ_ONLY_TOOL,
376
+ }, async () => {
326
377
  try {
327
378
  const { data, rateLimit } = await client.threads("GET", `/${client.threadsUserId}/threads_publishing_limit`, {
328
379
  fields: "quota_usage,config",
329
380
  });
330
- return { content: [{ type: "text", text: JSON.stringify({ ...data, _rateLimit: rateLimit }, null, 2) }] };
381
+ return formatResponse(data, rateLimit);
331
382
  }
332
383
  catch (error) {
333
384
  return formatErrorResponse(error, "Get publishing limit");
334
385
  }
335
386
  });
336
387
  // ─── threads_repost ──────────────────────────────────────────
337
- server.tool("threads_repost", "Repost an existing Threads post to your own profile. Reposts appear under the Reposts tab on your profile. Requires the threads_content_publish permission. Note: this is a simple repost — for quote-reposts use threads_publish_text with quote_post_id.", {
338
- post_id: z.string().describe("Threads post ID to repost"),
388
+ server.registerTool("threads_repost", {
389
+ description: "Repost an existing Threads post to your own profile. Reposts appear under the Reposts tab on your profile. Requires the threads_content_publish permission. Note: this is a simple repost — for quote-reposts use threads_publish_text with quote_post_id.",
390
+ inputSchema: {
391
+ post_id: metaId.describe("Threads post ID to repost"),
392
+ },
393
+ annotations: WRITE_TOOL,
339
394
  }, async ({ post_id }) => {
340
395
  try {
341
396
  const { data, rateLimit } = await client.threads("POST", `/${post_id}/repost`, {});
342
- return { content: [{ type: "text", text: JSON.stringify({ ...data, _rateLimit: rateLimit }, null, 2) }] };
397
+ return formatResponse(data, rateLimit);
343
398
  }
344
399
  catch (error) {
345
400
  return formatErrorResponse(error, "Repost");
346
401
  }
347
402
  });
403
+ // ─── threads_search_locations ────────────────────────────────
404
+ server.registerTool("threads_search_locations", {
405
+ description: "Search Threads-supported locations by keyword or coordinates. Returns a list of location objects (id, name, address, city, country, latitude, longitude, postal_code) whose id can be passed as location_id to the four threads_publish_* tools to tag a post. Either q or both latitude+longitude must be provided. Requires the threads_location_tagging permission; without app approval, the endpoint restricts results to the literal query 'Menlo Park' for testing.",
406
+ inputSchema: {
407
+ q: z.string().min(1).optional().describe("Search query (e.g., 'Menlo Park'). Either q or both latitude+longitude must be provided. If your app does not yet have the threads_location_tagging permission, the API restricts results to the literal query 'Menlo Park' for testing."),
408
+ latitude: z.number().min(-90).max(90).optional().describe("Latitude in decimal degrees (-90..90). Must be provided together with longitude."),
409
+ longitude: z.number().min(-180).max(180).optional().describe("Longitude in decimal degrees (-180..180). Must be provided together with latitude."),
410
+ },
411
+ annotations: READ_ONLY_TOOL,
412
+ }, async ({ q, latitude, longitude }) => {
413
+ try {
414
+ const hasLat = latitude !== undefined;
415
+ const hasLng = longitude !== undefined;
416
+ const hasCoords = hasLat || hasLng;
417
+ if (q === undefined && !hasCoords) {
418
+ return validationError("threads_search_locations requires either q or both latitude and longitude.");
419
+ }
420
+ if (q !== undefined && hasCoords) {
421
+ return validationError("threads_search_locations accepts either q or latitude+longitude, not both.");
422
+ }
423
+ if (hasCoords && !(hasLat && hasLng)) {
424
+ return validationError("threads_search_locations requires both latitude and longitude when searching by coordinates.");
425
+ }
426
+ const params = {};
427
+ if (q !== undefined)
428
+ params.q = q;
429
+ if (hasLat)
430
+ params.latitude = latitude;
431
+ if (hasLng)
432
+ params.longitude = longitude;
433
+ const { data, rateLimit } = await client.threads("GET", "/location_search", params);
434
+ return formatResponse(data, rateLimit);
435
+ }
436
+ catch (error) {
437
+ return formatErrorResponse(error, "Search locations");
438
+ }
439
+ });
348
440
  }
349
441
  //# sourceMappingURL=publishing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"publishing.js","sourceRoot":"","sources":["../../../src/tools/threads/publishing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publishing.js","sourceRoot":"","sources":["../../../src/tools/threads/publishing.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"replies.d.ts","sourceRoot":"","sources":["../../../src/tools/threads/replies.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAW3D,eAAO,MAAM,gCAAgC,kKAA2D,CAAC;AACzG,eAAO,MAAM,gCAAgC,kIAAsB,CAAC;AAEpE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAmHrF"}
1
+ {"version":3,"file":"replies.d.ts","sourceRoot":"","sources":["../../../src/tools/threads/replies.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAc,MAAM,+BAA+B,CAAC;AAavE,eAAO,MAAM,gCAAgC,kKAA2D,CAAC;AACzG,eAAO,MAAM,gCAAgC,kIAAsB,CAAC;AAEpE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAsIrF"}