@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,16 +1,23 @@
1
1
  import { z } from "zod";
2
- import { formatErrorResponse } from "../../utils/errors.js";
2
+ import { metaId } from "../../schemas.js";
3
+ import { formatErrorResponse, validationError } from "../../utils/errors.js";
4
+ import { formatResponse } from "../../utils/response.js";
5
+ import { READ_ONLY_TOOL, WRITE_TOOL } from "../annotations.js";
3
6
  const GET_CONVERSATIONS_DEFAULT_FIELDS = "id,updated_time,participants,messages{id,message,from,created_time}";
4
7
  // Both /conversations/{id}/messages and /messages/{id} share the same Message resource shape, so they reuse the same default field set.
5
8
  const MESSAGE_DEFAULT_FIELDS = "id,message,from,created_time,attachments";
6
9
  export function registerIgMessagingTools(server, client) {
7
10
  // ─── ig_get_conversations ────────────────────────────────────
8
- server.tool("ig_get_conversations", "Get Instagram DM conversations list. Requires 'instagram_business_manage_messages' permission and the Instagram Messaging API.", {
9
- folder: z.enum(["inbox", "spam"]).optional().describe("Folder to retrieve (default: inbox)"),
10
- limit: z.number().optional().describe("Number of conversations"),
11
- after: z.string().optional().describe("Pagination cursor for next page"),
12
- before: z.string().optional().describe("Pagination cursor for previous page"),
13
- fields: z.string().optional().default(GET_CONVERSATIONS_DEFAULT_FIELDS).describe(`Comma-separated fields (default: ${GET_CONVERSATIONS_DEFAULT_FIELDS})`),
11
+ server.registerTool("ig_get_conversations", {
12
+ description: "Get Instagram DM conversations list. Requires 'instagram_business_manage_messages' permission and the Instagram Messaging API.",
13
+ inputSchema: {
14
+ folder: z.enum(["inbox", "spam"]).optional().describe("Folder to retrieve (default: inbox)"),
15
+ limit: z.number().optional().describe("Number of conversations"),
16
+ after: z.string().optional().describe("Pagination cursor for next page"),
17
+ before: z.string().optional().describe("Pagination cursor for previous page"),
18
+ fields: z.string().optional().default(GET_CONVERSATIONS_DEFAULT_FIELDS).describe(`Comma-separated fields (default: ${GET_CONVERSATIONS_DEFAULT_FIELDS})`),
19
+ },
20
+ annotations: READ_ONLY_TOOL,
14
21
  }, async ({ folder, limit, after, before, fields }) => {
15
22
  try {
16
23
  const params = {
@@ -26,19 +33,23 @@ export function registerIgMessagingTools(server, client) {
26
33
  if (before)
27
34
  params.before = before;
28
35
  const { data, rateLimit } = await client.ig("GET", `/${client.igUserId}/conversations`, params);
29
- return { content: [{ type: "text", text: JSON.stringify({ ...data, _rateLimit: rateLimit }, null, 2) }] };
36
+ return formatResponse(data, rateLimit);
30
37
  }
31
38
  catch (error) {
32
39
  return formatErrorResponse(error, "Get conversations");
33
40
  }
34
41
  });
35
42
  // ─── ig_get_messages ─────────────────────────────────────────
36
- server.tool("ig_get_messages", "Get messages in a specific DM conversation.", {
37
- conversation_id: z.string().describe("Conversation ID"),
38
- limit: z.number().optional().describe("Number of messages"),
39
- after: z.string().optional().describe("Pagination cursor for next page"),
40
- before: z.string().optional().describe("Pagination cursor for previous page"),
41
- fields: z.string().optional().default(MESSAGE_DEFAULT_FIELDS).describe(`Comma-separated fields (default: ${MESSAGE_DEFAULT_FIELDS})`),
43
+ server.registerTool("ig_get_messages", {
44
+ description: "Get messages in a specific DM conversation.",
45
+ inputSchema: {
46
+ conversation_id: metaId.describe("Conversation ID"),
47
+ limit: z.number().optional().describe("Number of messages"),
48
+ after: z.string().optional().describe("Pagination cursor for next page"),
49
+ before: z.string().optional().describe("Pagination cursor for previous page"),
50
+ fields: z.string().optional().default(MESSAGE_DEFAULT_FIELDS).describe(`Comma-separated fields (default: ${MESSAGE_DEFAULT_FIELDS})`),
51
+ },
52
+ annotations: READ_ONLY_TOOL,
42
53
  }, async ({ conversation_id, limit, after, before, fields }) => {
43
54
  try {
44
55
  const params = { fields };
@@ -49,37 +60,63 @@ export function registerIgMessagingTools(server, client) {
49
60
  if (before)
50
61
  params.before = before;
51
62
  const { data, rateLimit } = await client.ig("GET", `/${conversation_id}/messages`, params);
52
- return { content: [{ type: "text", text: JSON.stringify({ ...data, _rateLimit: rateLimit }, null, 2) }] };
63
+ return formatResponse(data, rateLimit);
53
64
  }
54
65
  catch (error) {
55
66
  return formatErrorResponse(error, "Get messages");
56
67
  }
57
68
  });
58
69
  // ─── ig_send_message ─────────────────────────────────────────
59
- server.tool("ig_send_message", "Send a DM to a user. Requires 'instagram_business_manage_messages' permission. Can only message users who have messaged you first (24hr window).", {
60
- recipient_id: z.string().describe("Instagram-scoped user ID of the recipient"),
61
- message: z.string().describe("Message text to send"),
62
- }, async ({ recipient_id, message }) => {
70
+ server.registerTool("ig_send_message", {
71
+ description: "Send a DM to a user. Requires 'instagram_business_manage_messages' permission. The recipient must have messaged the account first. Messaging window depends on messaging_type: RESPONSE/UPDATE allow replies within 24 hours of the user's last message; MESSAGE_TAG with tag=HUMAN_AGENT extends the window to 7 days (human-sent support replies only the HUMAN_AGENT feature requires App Review and forbids automated use, per https://developers.facebook.com/docs/features-reference/human-agent). Other tag values are Messenger-oriented; HUMAN_AGENT is the documented reliable choice on Instagram.",
72
+ inputSchema: {
73
+ recipient_id: z.string().describe("Instagram-scoped user ID of the recipient"),
74
+ message: z.string().describe("Message text to send"),
75
+ messaging_type: z
76
+ .enum(["RESPONSE", "UPDATE", "MESSAGE_TAG"])
77
+ .optional()
78
+ .default("RESPONSE")
79
+ .describe("Send API messaging classification. RESPONSE = reply within the 24-hour window (default). UPDATE = proactive update within the 24-hour window. MESSAGE_TAG = send outside the 24-hour window using one of the tag values below (Instagram reliably supports HUMAN_AGENT for the 7-day window). See https://developers.facebook.com/docs/messenger-platform/reference/send-api/."),
80
+ tag: z
81
+ .enum(["HUMAN_AGENT", "CONFIRMED_EVENT_UPDATE", "POST_PURCHASE_UPDATE", "ACCOUNT_UPDATE", "CUSTOMER_FEEDBACK"])
82
+ .optional()
83
+ .describe("Message tag, required when messaging_type=MESSAGE_TAG and forbidden otherwise. HUMAN_AGENT extends the window to 7 days for human-sent support replies and is the only tag with documented Instagram support; the remaining values are Messenger-oriented and may be silently rejected on Instagram."),
84
+ },
85
+ annotations: WRITE_TOOL,
86
+ }, async ({ recipient_id, message, messaging_type, tag }) => {
63
87
  try {
64
- const { data, rateLimit } = await client.ig("POST", `/${client.igUserId}/messages`, {
88
+ if (messaging_type === "MESSAGE_TAG" && tag === undefined) {
89
+ return validationError("messaging_type=MESSAGE_TAG requires a tag (e.g., HUMAN_AGENT for the 7-day window).");
90
+ }
91
+ if (tag !== undefined && messaging_type !== "MESSAGE_TAG") {
92
+ return validationError("tag is only valid when messaging_type=MESSAGE_TAG. Omit tag or set messaging_type=MESSAGE_TAG.");
93
+ }
94
+ const jsonBody = {
65
95
  recipient: { id: recipient_id },
66
96
  message: { text: message },
67
- messaging_type: "RESPONSE",
68
- }, { json: true });
69
- return { content: [{ type: "text", text: JSON.stringify({ ...data, _rateLimit: rateLimit }, null, 2) }] };
97
+ messaging_type,
98
+ };
99
+ if (tag !== undefined)
100
+ jsonBody.tag = tag;
101
+ const { data, rateLimit } = await client.ig("POST", `/${client.igUserId}/messages`, undefined, { jsonBody });
102
+ return formatResponse(data, rateLimit);
70
103
  }
71
104
  catch (error) {
72
105
  return formatErrorResponse(error, "Send message");
73
106
  }
74
107
  });
75
108
  // ─── ig_get_message ──────────────────────────────────────────
76
- server.tool("ig_get_message", "Get details of a specific DM message.", {
77
- message_id: z.string().describe("Message ID"),
78
- fields: z.string().optional().default(MESSAGE_DEFAULT_FIELDS).describe(`Comma-separated fields (default: ${MESSAGE_DEFAULT_FIELDS})`),
109
+ server.registerTool("ig_get_message", {
110
+ description: "Get details of a specific DM message.",
111
+ inputSchema: {
112
+ message_id: metaId.describe("Message ID"),
113
+ fields: z.string().optional().default(MESSAGE_DEFAULT_FIELDS).describe(`Comma-separated fields (default: ${MESSAGE_DEFAULT_FIELDS})`),
114
+ },
115
+ annotations: READ_ONLY_TOOL,
79
116
  }, async ({ message_id, fields }) => {
80
117
  try {
81
118
  const { data, rateLimit } = await client.ig("GET", `/${message_id}`, { fields });
82
- return { content: [{ type: "text", text: JSON.stringify({ ...data, _rateLimit: rateLimit }, null, 2) }] };
119
+ return formatResponse(data, rateLimit);
83
120
  }
84
121
  catch (error) {
85
122
  return formatErrorResponse(error, "Get message");
@@ -1 +1 @@
1
- {"version":3,"file":"messaging.js","sourceRoot":"","sources":["../../../src/tools/instagram/messaging.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messaging.js","sourceRoot":"","sources":["../../../src/tools/instagram/messaging.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../src/tools/instagram/profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D,eAAO,MAAM,iCAAiC,wDAa3C,CAAC;AAIJ,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAoHlF"}
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../src/tools/instagram/profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAc,MAAM,+BAA+B,CAAC;AAMvE,eAAO,MAAM,iCAAiC,wDAa3C,CAAC;AAIJ,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAmIlF"}
@@ -1,5 +1,8 @@
1
1
  import { z } from "zod";
2
+ import { metaId } from "../../schemas.js";
2
3
  import { formatErrorResponse } from "../../utils/errors.js";
4
+ import { formatResponse } from "../../utils/response.js";
5
+ import { READ_ONLY_TOOL, WRITE_IDEMPOTENT_TOOL } from "../annotations.js";
3
6
  export const igBusinessDiscoveryUsernameSchema = z
4
7
  .string()
5
8
  .trim()
@@ -14,30 +17,38 @@ export const igBusinessDiscoveryUsernameSchema = z
14
17
  const BUSINESS_DISCOVERY_DEFAULT_FIELDS = "id,username,name,biography,followers_count,follows_count,media_count";
15
18
  export function registerIgProfileTools(server, client) {
16
19
  // ─── ig_get_profile ──────────────────────────────────────────
17
- server.tool("ig_get_profile", "Get Instagram Business/Creator account profile information.", {}, async () => {
20
+ server.registerTool("ig_get_profile", {
21
+ description: "Get Instagram Business/Creator account profile information.",
22
+ inputSchema: {},
23
+ annotations: READ_ONLY_TOOL,
24
+ }, async () => {
18
25
  try {
19
26
  const { data, rateLimit } = await client.ig("GET", `/${client.igUserId}`, {
20
27
  fields: "id,name,username,biography,followers_count,follows_count,media_count,profile_picture_url,website",
21
28
  });
22
- return { content: [{ type: "text", text: JSON.stringify({ ...data, _rateLimit: rateLimit }, null, 2) }] };
29
+ return formatResponse(data, rateLimit);
23
30
  }
24
31
  catch (error) {
25
32
  return formatErrorResponse(error, "Get profile");
26
33
  }
27
34
  });
28
35
  // ─── ig_get_account_insights ─────────────────────────────────
29
- server.tool("ig_get_account_insights", "Get Instagram account insights. Use the optional `metric_type` to control whether results come back as a single total per metric or as a daily breakdown. Note: 'impressions', 'email_contacts', 'phone_call_clicks', 'text_message_clicks', 'get_directions_clicks', 'website_clicks', 'profile_views' were deprecated in v22.0. Use 'views', 'reach', 'follower_count', 'reposts' instead.", {
30
- metric: z.string().describe("Comma-separated metrics. Time-series metrics (use period=day/week/days_28): " +
31
- "views,reach,accounts_engaged,total_interactions,reposts,profile_links_taps. " +
32
- "Lifetime-only metrics (use period=lifetime): " +
33
- "follower_count,follower_demographics,engaged_audience_demographics."),
34
- period: z.enum(["day", "week", "days_28", "lifetime"]).describe("Aggregation period. Use 'day', 'week', or 'days_28' for time-series metrics " +
35
- "(views,reach,accounts_engaged,total_interactions,reposts,profile_links_taps). " +
36
- "Use 'lifetime' only for follower_count and demographic metrics " +
37
- "(follower_demographics,engaged_audience_demographics)."),
38
- metric_type: z.enum(["total_value", "time_series"]).optional().describe("Aggregation shape: 'total_value' for a single aggregated number per metric, 'time_series' for daily breakdowns. Per the Instagram User Insights docs, only 'reach' supports both; most metrics (views, likes, reposts, accounts_engaged, total_interactions, saves, shares, comments, replies, quotes, profile_links_taps, demographics) support only 'total_value'. Omit to use the API default for each metric."),
39
- since: z.string().optional().describe("Start date (Unix timestamp or ISO 8601)"),
40
- until: z.string().optional().describe("End date (Unix timestamp or ISO 8601)"),
36
+ server.registerTool("ig_get_account_insights", {
37
+ description: "Get Instagram account insights. Use the optional `metric_type` to control whether results come back as a single total per metric or as a daily breakdown. Note: 'impressions', 'email_contacts', 'phone_call_clicks', 'text_message_clicks', 'get_directions_clicks', 'website_clicks', 'profile_views' were deprecated in v22.0. Use 'views', 'reach', 'follower_count', 'reposts' instead.",
38
+ inputSchema: {
39
+ metric: z.string().describe("Comma-separated metrics. Time-series metrics (use period=day/week/days_28): " +
40
+ "views,reach,accounts_engaged,total_interactions,reposts,profile_links_taps. " +
41
+ "Lifetime-only metrics (use period=lifetime): " +
42
+ "follower_count,follower_demographics,engaged_audience_demographics."),
43
+ period: z.enum(["day", "week", "days_28", "lifetime"]).describe("Aggregation period. Use 'day', 'week', or 'days_28' for time-series metrics " +
44
+ "(views,reach,accounts_engaged,total_interactions,reposts,profile_links_taps). " +
45
+ "Use 'lifetime' only for follower_count and demographic metrics " +
46
+ "(follower_demographics,engaged_audience_demographics)."),
47
+ metric_type: z.enum(["total_value", "time_series"]).optional().describe("Aggregation shape: 'total_value' for a single aggregated number per metric, 'time_series' for daily breakdowns. Per the Instagram User Insights docs, only 'reach' supports both; most metrics (views, likes, reposts, accounts_engaged, total_interactions, saves, shares, comments, replies, quotes, profile_links_taps, demographics) support only 'total_value'. Omit to use the API default for each metric."),
48
+ since: z.string().optional().describe("Start date (Unix timestamp or ISO 8601)"),
49
+ until: z.string().optional().describe("End date (Unix timestamp or ISO 8601)"),
50
+ },
51
+ annotations: READ_ONLY_TOOL,
41
52
  }, async ({ metric, period, metric_type, since, until }) => {
42
53
  try {
43
54
  const params = { metric, period };
@@ -48,32 +59,40 @@ export function registerIgProfileTools(server, client) {
48
59
  if (until)
49
60
  params.until = until;
50
61
  const { data, rateLimit } = await client.ig("GET", `/${client.igUserId}/insights`, params);
51
- return { content: [{ type: "text", text: JSON.stringify({ ...data, _rateLimit: rateLimit }, null, 2) }] };
62
+ return formatResponse(data, rateLimit);
52
63
  }
53
64
  catch (error) {
54
65
  return formatErrorResponse(error, "Get account insights");
55
66
  }
56
67
  });
57
68
  // ─── ig_business_discovery ───────────────────────────────────
58
- server.tool("ig_business_discovery", "Look up another Instagram Business/Creator account's public info by username.", {
59
- username: igBusinessDiscoveryUsernameSchema,
60
- fields: z.string().optional().default(BUSINESS_DISCOVERY_DEFAULT_FIELDS).describe(`Fields to retrieve (default: ${BUSINESS_DISCOVERY_DEFAULT_FIELDS})`),
69
+ server.registerTool("ig_business_discovery", {
70
+ description: "Look up another Instagram Business/Creator account's public info by username.",
71
+ inputSchema: {
72
+ username: igBusinessDiscoveryUsernameSchema,
73
+ fields: z.string().optional().default(BUSINESS_DISCOVERY_DEFAULT_FIELDS).describe(`Fields to retrieve (default: ${BUSINESS_DISCOVERY_DEFAULT_FIELDS})`),
74
+ },
75
+ annotations: READ_ONLY_TOOL,
61
76
  }, async ({ username, fields }) => {
62
77
  try {
63
78
  const { data, rateLimit } = await client.ig("GET", `/${client.igUserId}`, {
64
79
  fields: `business_discovery.username(${username}){${fields}}`,
65
80
  });
66
- return { content: [{ type: "text", text: JSON.stringify({ ...data, _rateLimit: rateLimit }, null, 2) }] };
81
+ return formatResponse(data, rateLimit);
67
82
  }
68
83
  catch (error) {
69
84
  return formatErrorResponse(error, "Business discovery");
70
85
  }
71
86
  });
72
87
  // ─── ig_get_collaboration_invites ────────────────────────────
73
- server.tool("ig_get_collaboration_invites", "Get pending collaboration invites for the Instagram account. Added in December 2025.", {
74
- limit: z.number().optional().describe("Number of results"),
75
- after: z.string().optional().describe("Pagination cursor for next page"),
76
- before: z.string().optional().describe("Pagination cursor for previous page"),
88
+ server.registerTool("ig_get_collaboration_invites", {
89
+ description: "Get pending collaboration invites for the Instagram account. Added in December 2025.",
90
+ inputSchema: {
91
+ limit: z.number().optional().describe("Number of results"),
92
+ after: z.string().optional().describe("Pagination cursor for next page"),
93
+ before: z.string().optional().describe("Pagination cursor for previous page"),
94
+ },
95
+ annotations: READ_ONLY_TOOL,
77
96
  }, async ({ limit, after, before }) => {
78
97
  try {
79
98
  const params = {};
@@ -84,23 +103,27 @@ export function registerIgProfileTools(server, client) {
84
103
  if (before)
85
104
  params.before = before;
86
105
  const { data, rateLimit } = await client.ig("GET", `/${client.igUserId}/collaboration_invites`, params);
87
- return { content: [{ type: "text", text: JSON.stringify({ ...data, _rateLimit: rateLimit }, null, 2) }] };
106
+ return formatResponse(data, rateLimit);
88
107
  }
89
108
  catch (error) {
90
109
  return formatErrorResponse(error, "Get collaboration invites");
91
110
  }
92
111
  });
93
112
  // ─── ig_respond_collaboration_invite ─────────────────────────
94
- server.tool("ig_respond_collaboration_invite", "Accept or decline a collaboration invite. Added in December 2025.", {
95
- invite_id: z.string().describe("Collaboration invite ID"),
96
- action: z.enum(["accept", "decline"]).describe("Accept or decline the invite"),
97
- }, async ({ invite_id, action }) => {
113
+ server.registerTool("ig_respond_collaboration_invite", {
114
+ description: "Accept or decline a collaboration invite by media_id (the IG Media ID of the tagged post; available via the `id` field returned by `ig_get_collaboration_invites`). Pass `accept: true` to accept, `accept: false` to decline. Per the Instagram Collaboration API. Added in December 2025.",
115
+ inputSchema: {
116
+ media_id: metaId.describe("IG Media ID of the tagged post (from `ig_get_collaboration_invites` response `id` field)"),
117
+ accept: z.boolean().describe("true to accept the invite, false to decline"),
118
+ },
119
+ annotations: WRITE_IDEMPOTENT_TOOL,
120
+ }, async ({ media_id, accept }) => {
98
121
  try {
99
122
  const { data, rateLimit } = await client.ig("POST", `/${client.igUserId}/collaboration_invites`, {
100
- invite_id,
101
- action,
123
+ media_id,
124
+ accept,
102
125
  });
103
- return { content: [{ type: "text", text: JSON.stringify({ ...data, _rateLimit: rateLimit }, null, 2) }] };
126
+ return formatResponse(data, rateLimit);
104
127
  }
105
128
  catch (error) {
106
129
  return formatErrorResponse(error, "Respond to collaboration invite");
@@ -1 +1 @@
1
- {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/tools/instagram/profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/tools/instagram/profile.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"publishing.d.ts","sourceRoot":"","sources":["../../../src/tools/instagram/publishing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAa3D,eAAO,MAAM,mBAAmB,mFAU7B,CAAC;AAEJ,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAyNrF"}
1
+ {"version":3,"file":"publishing.d.ts","sourceRoot":"","sources":["../../../src/tools/instagram/publishing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAc,MAAM,+BAA+B,CAAC;AAevE,eAAO,MAAM,mBAAmB,mFAU7B,CAAC;AAEJ,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CA2OrF"}