@exileum/meta-mcp 7.0.0 → 8.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 (96) hide show
  1. package/README.md +31 -7
  2. package/dist/constants/fields.d.ts +6 -0
  3. package/dist/constants/fields.d.ts.map +1 -0
  4. package/dist/constants/fields.js +25 -0
  5. package/dist/constants/fields.js.map +1 -0
  6. package/dist/http-transport.d.ts +20 -0
  7. package/dist/http-transport.d.ts.map +1 -0
  8. package/dist/http-transport.js +228 -0
  9. package/dist/http-transport.js.map +1 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +76 -26
  12. package/dist/index.js.map +1 -1
  13. package/dist/prompts/index.d.ts +56 -0
  14. package/dist/prompts/index.d.ts.map +1 -1
  15. package/dist/prompts/index.js +264 -41
  16. package/dist/prompts/index.js.map +1 -1
  17. package/dist/resources/instagram.d.ts.map +1 -1
  18. package/dist/resources/instagram.js +13 -4
  19. package/dist/resources/instagram.js.map +1 -1
  20. package/dist/resources/threads.d.ts.map +1 -1
  21. package/dist/resources/threads.js +13 -4
  22. package/dist/resources/threads.js.map +1 -1
  23. package/dist/services/meta-client.d.ts +22 -3
  24. package/dist/services/meta-client.d.ts.map +1 -1
  25. package/dist/services/meta-client.js +132 -6
  26. package/dist/services/meta-client.js.map +1 -1
  27. package/dist/shutdown.d.ts +18 -0
  28. package/dist/shutdown.d.ts.map +1 -0
  29. package/dist/shutdown.js +60 -0
  30. package/dist/shutdown.js.map +1 -0
  31. package/dist/tools/instagram/comments.d.ts.map +1 -1
  32. package/dist/tools/instagram/comments.js +14 -19
  33. package/dist/tools/instagram/comments.js.map +1 -1
  34. package/dist/tools/instagram/hashtags.d.ts +1 -0
  35. package/dist/tools/instagram/hashtags.d.ts.map +1 -1
  36. package/dist/tools/instagram/hashtags.js +19 -19
  37. package/dist/tools/instagram/hashtags.js.map +1 -1
  38. package/dist/tools/instagram/media.d.ts.map +1 -1
  39. package/dist/tools/instagram/media.js +8 -11
  40. package/dist/tools/instagram/media.js.map +1 -1
  41. package/dist/tools/instagram/mentions.d.ts.map +1 -1
  42. package/dist/tools/instagram/mentions.js +2 -7
  43. package/dist/tools/instagram/mentions.js.map +1 -1
  44. package/dist/tools/instagram/messaging.d.ts.map +1 -1
  45. package/dist/tools/instagram/messaging.js +10 -20
  46. package/dist/tools/instagram/messaging.js.map +1 -1
  47. package/dist/tools/instagram/profile.d.ts +2 -0
  48. package/dist/tools/instagram/profile.d.ts.map +1 -1
  49. package/dist/tools/instagram/profile.js +13 -15
  50. package/dist/tools/instagram/profile.js.map +1 -1
  51. package/dist/tools/instagram/publishing.d.ts.map +1 -1
  52. package/dist/tools/instagram/publishing.js +133 -96
  53. package/dist/tools/instagram/publishing.js.map +1 -1
  54. package/dist/tools/meta/auth.d.ts.map +1 -1
  55. package/dist/tools/meta/auth.js +18 -2
  56. package/dist/tools/meta/auth.js.map +1 -1
  57. package/dist/tools/threads/insights.d.ts.map +1 -1
  58. package/dist/tools/threads/insights.js +2 -5
  59. package/dist/tools/threads/insights.js.map +1 -1
  60. package/dist/tools/threads/media.d.ts.map +1 -1
  61. package/dist/tools/threads/media.js +5 -47
  62. package/dist/tools/threads/media.js.map +1 -1
  63. package/dist/tools/threads/mentions.d.ts.map +1 -1
  64. package/dist/tools/threads/mentions.js +3 -10
  65. package/dist/tools/threads/mentions.js.map +1 -1
  66. package/dist/tools/threads/profile.d.ts +2 -0
  67. package/dist/tools/threads/profile.d.ts.map +1 -1
  68. package/dist/tools/threads/profile.js +10 -1
  69. package/dist/tools/threads/profile.js.map +1 -1
  70. package/dist/tools/threads/publishing.d.ts.map +1 -1
  71. package/dist/tools/threads/publishing.js +122 -103
  72. package/dist/tools/threads/publishing.js.map +1 -1
  73. package/dist/tools/threads/replies.d.ts.map +1 -1
  74. package/dist/tools/threads/replies.js +15 -23
  75. package/dist/tools/threads/replies.js.map +1 -1
  76. package/dist/utils/container.d.ts +16 -4
  77. package/dist/utils/container.d.ts.map +1 -1
  78. package/dist/utils/container.js +36 -6
  79. package/dist/utils/container.js.map +1 -1
  80. package/dist/utils/errors.d.ts +23 -3
  81. package/dist/utils/errors.d.ts.map +1 -1
  82. package/dist/utils/errors.js +32 -2
  83. package/dist/utils/errors.js.map +1 -1
  84. package/dist/utils/logger.d.ts +28 -0
  85. package/dist/utils/logger.d.ts.map +1 -0
  86. package/dist/utils/logger.js +32 -0
  87. package/dist/utils/logger.js.map +1 -0
  88. package/dist/utils/params.d.ts +3 -0
  89. package/dist/utils/params.d.ts.map +1 -0
  90. package/dist/utils/params.js +14 -0
  91. package/dist/utils/params.js.map +1 -0
  92. package/dist/utils/progress.d.ts +42 -0
  93. package/dist/utils/progress.d.ts.map +1 -0
  94. package/dist/utils/progress.js +35 -0
  95. package/dist/utils/progress.js.map +1 -0
  96. package/package.json +3 -2
@@ -1,4 +1,5 @@
1
- import { MetaApiError } from "../utils/errors.js";
1
+ import { MetaApiError, MetaNetworkError, sanitizeRaw } from "../utils/errors.js";
2
+ import { NOOP_LOGGER } from "../utils/logger.js";
2
3
  // Default Meta Graph API and Threads API versions — last verified 2026-05-06.
3
4
  // The Graph API ships a new minor version every ~4 months and supports each
4
5
  // for ~2 years; Threads runs a separate single-major-version track (v1.0 since
@@ -26,6 +27,7 @@ export const DEFAULT_MAX_RETRIES = 3;
26
27
  export const DEFAULT_RETRY_BASE_DELAY_MS = 1000;
27
28
  // Cap so a malformed `Retry-After: 999999` (≈11 days) can't hang a tool.
28
29
  export const MAX_RETRY_DELAY_MS = 60_000;
30
+ export const REQUEST_TIMEOUT_MS = 30_000;
29
31
  /**
30
32
  * Parse a `Retry-After` response header value (RFC 7231 §7.1.3) into
31
33
  * milliseconds. Returns `undefined` for missing or unparseable values so the
@@ -88,6 +90,11 @@ export const RATE_LIMIT_BACKOFF_MS = 5000;
88
90
  // Meta's rate-limit window is rolling 1h — discard the snapshot after that so
89
91
  // a long-idle client doesn't pay a spurious backoff on its first post-idle call.
90
92
  export const RATE_LIMIT_SNAPSHOT_TTL_MS = 60 * 60 * 1000;
93
+ // Response cache TTLs (#90). Hashtag TTL matches Meta's 30-unique-hashtag /
94
+ // 7-day API quota so a session-long cache stays warm for the full quota window;
95
+ // profile TTL is kept short to bound follower-count staleness.
96
+ export const PROFILE_CACHE_TTL_MS = 5 * 60 * 1000;
97
+ export const HASHTAG_CACHE_TTL_MS = 7 * 24 * 60 * 60 * 1000;
91
98
  function parseMetaErrorBody(text) {
92
99
  if (!text)
93
100
  return undefined;
@@ -108,6 +115,30 @@ function parseMetaErrorBody(text) {
108
115
  return undefined;
109
116
  }
110
117
  }
118
+ // Shape the `data` payload for an error-level log. method + path are safe (the
119
+ // access_token lives only in the query string, never the path); the message is
120
+ // passed through sanitizeRaw as a belt-and-suspenders guard against a token
121
+ // leaking from a Meta error body — the MCP logging spec forbids logging secrets.
122
+ function buildErrorLogData(error, method, path) {
123
+ const data = { method, path };
124
+ if (error instanceof MetaApiError) {
125
+ if (error.httpStatus !== undefined)
126
+ data.http_status = error.httpStatus;
127
+ if (error.apiCode !== undefined)
128
+ data.code = error.apiCode;
129
+ if (error.apiSubcode !== undefined)
130
+ data.subcode = error.apiSubcode;
131
+ if (error.apiType)
132
+ data.type = error.apiType;
133
+ if (error.fbtraceId)
134
+ data.fbtrace_id = error.fbtraceId;
135
+ }
136
+ else if (error instanceof MetaNetworkError) {
137
+ data.kind = error.kind;
138
+ }
139
+ data.message = sanitizeRaw(error instanceof Error ? error.message : String(error));
140
+ return data;
141
+ }
111
142
  export class MetaClient {
112
143
  config;
113
144
  igBase;
@@ -115,10 +146,12 @@ export class MetaClient {
115
146
  threadsBase;
116
147
  lastRateLimit;
117
148
  lastRateLimitAt;
149
+ cache = new Map();
118
150
  maxRetries;
119
151
  retryBaseDelayMs;
120
152
  sleep;
121
153
  now;
154
+ logger;
122
155
  constructor(config, options) {
123
156
  this.config = config;
124
157
  const metaVersion = resolveApiVersion("META_API_VERSION", DEFAULT_META_API_VERSION, options?.metaApiVersion);
@@ -138,6 +171,7 @@ export class MetaClient {
138
171
  : DEFAULT_RETRY_BASE_DELAY_MS;
139
172
  this.sleep = options?.sleep ?? defaultSleep;
140
173
  this.now = options?.now ?? Date.now;
174
+ this.logger = options?.logger ?? NOOP_LOGGER;
141
175
  }
142
176
  parseRateLimit(headers) {
143
177
  const usage = headers.get("x-app-usage");
@@ -188,9 +222,18 @@ export class MetaClient {
188
222
  else {
189
223
  return;
190
224
  }
191
- console.error(`[meta-mcp] x-app-usage at ${max}% (callCount=${rl.callCount ?? "?"}, ` +
192
- `totalTime=${rl.totalTime ?? "?"}, totalCpuTime=${rl.totalCpuTime ?? "?"}); ` +
193
- `delaying next request by ${delay}ms to stay under Meta's per-app quota.`);
225
+ const warning = {
226
+ message: `x-app-usage at ${max}%; delaying next request by ${delay}ms to stay under Meta's per-app quota`,
227
+ usage_pct: max,
228
+ delay_ms: delay,
229
+ };
230
+ if (rl.callCount !== undefined)
231
+ warning.call_count = rl.callCount;
232
+ if (rl.totalTime !== undefined)
233
+ warning.total_time = rl.totalTime;
234
+ if (rl.totalCpuTime !== undefined)
235
+ warning.total_cpu_time = rl.totalCpuTime;
236
+ this.logger.warning(warning);
194
237
  await new Promise((resolve) => setTimeout(resolve, delay));
195
238
  }
196
239
  // Used for both form bodies (POST/PUT) and query strings (GET/DELETE) — every
@@ -209,7 +252,44 @@ export class MetaClient {
209
252
  qs.set(k, String(v));
210
253
  }
211
254
  }
255
+ // Logging wrapper around the retry loop (#62): the terminal error is logged
256
+ // once here — transient retries `continue` inside requestRaw and never reach
257
+ // this catch.
212
258
  async request(baseUrl, token, method, path, params, options) {
259
+ this.logger.debug({ method, path });
260
+ try {
261
+ const res = await this.requestRaw(baseUrl, token, method, path, params, options);
262
+ this.auditMutation(method, path, params, res.data);
263
+ return res;
264
+ }
265
+ catch (err) {
266
+ this.logger.error(buildErrorLogData(err, method, path));
267
+ throw err;
268
+ }
269
+ }
270
+ // Audit (info) for state-changing ops so they stay visible when a client
271
+ // raises the level above debug. The /threads check is gated on
272
+ // auto_publish_text because that endpoint ALSO creates the unpublished
273
+ // container in two-step flows — auditing the bare path would mislabel
274
+ // container creation as a publish (the two-step publish is caught by
275
+ // /threads_publish instead).
276
+ auditMutation(method, path, params, data) {
277
+ if (method === "DELETE") {
278
+ this.logger.info({ operation: "delete", method, path });
279
+ return;
280
+ }
281
+ const isPublish = path.endsWith("/media_publish") ||
282
+ path.endsWith("/threads_publish") ||
283
+ path.endsWith("/repost") ||
284
+ (path.endsWith("/threads") && params?.auto_publish_text === true);
285
+ if (isPublish) {
286
+ const entry = { operation: "publish", method, path };
287
+ if (typeof data.id === "string")
288
+ entry.id = data.id;
289
+ this.logger.info(entry);
290
+ }
291
+ }
292
+ async requestRaw(baseUrl, token, method, path, params, options) {
213
293
  let url = `${baseUrl}${path}`;
214
294
  const isWrite = method !== "GET" && method !== "DELETE";
215
295
  const useJson = isWrite && options?.jsonBody !== undefined;
@@ -252,7 +332,7 @@ export class MetaClient {
252
332
  await this.maybeThrottle();
253
333
  // Arm the 30s abort timer *after* the throttle sleep so a backoff at
254
334
  // high x-app-usage doesn't eat into the actual network window (#60 review).
255
- const init = { ...baseInit, signal: AbortSignal.timeout(30_000) };
335
+ const init = { ...baseInit, signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS) };
256
336
  let res;
257
337
  try {
258
338
  res = await fetch(url, init);
@@ -262,7 +342,19 @@ export class MetaClient {
262
342
  await this.sleep(computeBackoffDelay(attempt, this.retryBaseDelayMs));
263
343
  continue;
264
344
  }
265
- throw err;
345
+ // AbortSignal.timeout per WHATWG throws name="TimeoutError"; "AbortError"
346
+ // is defensive cover for environments using the older spelling, safe
347
+ // today because AbortSignal.timeout is the only abort source in this
348
+ // file — revisit if a caller-controlled AbortController is ever wired
349
+ // in, since user-aborted signals would then be misclassified (#72).
350
+ const isTimeout = err instanceof Error && (err.name === "TimeoutError" || err.name === "AbortError");
351
+ throw new MetaNetworkError({
352
+ kind: isTimeout ? "timeout" : "network",
353
+ endpoint: path,
354
+ method,
355
+ cause: err,
356
+ timeoutMs: REQUEST_TIMEOUT_MS,
357
+ });
266
358
  }
267
359
  // Parse rate-limit on every response (a 429 still carries `x-app-usage`);
268
360
  // header-less responses (OAuth token endpoints) leave state intact.
@@ -400,5 +492,39 @@ export class MetaClient {
400
492
  }
401
493
  return this.config.threadsUserId;
402
494
  }
495
+ // Request methods re-read `this.config.<field>` per call, so mutating
496
+ // `this.config` is enough for runtime token rotation — no URL or token
497
+ // cache needs invalidation (#65). The response cache (#90), however, holds
498
+ // per-account profile data that no longer applies after the rotation.
499
+ updateConfig(partial) {
500
+ this.config = { ...this.config, ...partial };
501
+ this.invalidateCache();
502
+ }
503
+ // Expired entries are evicted lazily on read; the cache is bounded by use
504
+ // (≤2 profile keys + ≤30 hashtag keys per the 7-day API quota), so no
505
+ // background sweep is needed.
506
+ getCached(key) {
507
+ const entry = this.cache.get(key);
508
+ if (!entry)
509
+ return undefined;
510
+ if (Date.now() >= entry.expiry) {
511
+ this.cache.delete(key);
512
+ return undefined;
513
+ }
514
+ return entry.data;
515
+ }
516
+ setCache(key, data, ttlMs) {
517
+ this.cache.set(key, { data, expiry: Date.now() + ttlMs });
518
+ }
519
+ invalidateCache(prefix) {
520
+ if (prefix === undefined) {
521
+ this.cache.clear();
522
+ return;
523
+ }
524
+ for (const key of this.cache.keys()) {
525
+ if (key.startsWith(prefix))
526
+ this.cache.delete(key);
527
+ }
528
+ }
403
529
  }
404
530
  //# sourceMappingURL=meta-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"meta-client.js","sourceRoot":"","sources":["../../src/services/meta-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"meta-client.js","sourceRoot":"","sources":["../../src/services/meta-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export declare const SHUTDOWN_SIGNALS: readonly ["SIGINT", "SIGTERM"];
2
+ export type ShutdownSignal = (typeof SHUTDOWN_SIGNALS)[number];
3
+ export declare const SHUTDOWN_TIMEOUT_MS = 5000;
4
+ export interface Closeable {
5
+ close(): Promise<void>;
6
+ }
7
+ export interface ShutdownOptions {
8
+ exit?: (code: number) => never;
9
+ log?: (msg: string) => void;
10
+ timeoutMs?: number;
11
+ }
12
+ export declare function setupShutdownHandlers(closeable: Closeable, options?: ShutdownOptions): void;
13
+ export interface FatalErrorOptions {
14
+ exit?: (code: number) => never;
15
+ log?: (msg: string) => void;
16
+ }
17
+ export declare function setupFatalErrorHandlers(options?: FatalErrorOptions): void;
18
+ //# sourceMappingURL=shutdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shutdown.d.ts","sourceRoot":"","sources":["../src/shutdown.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,gCAAiC,CAAC;AAC/D,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D,eAAO,MAAM,mBAAmB,OAAQ,CAAC;AAGzC,MAAM,WAAW,SAAS;IACxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC;IAC/B,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,SAAS,EACpB,OAAO,GAAE,eAAoB,GAC5B,IAAI,CA4CN;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC;IAC/B,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,iBAAsB,GAAG,IAAI,CAkB7E"}
@@ -0,0 +1,60 @@
1
+ export const SHUTDOWN_SIGNALS = ["SIGINT", "SIGTERM"];
2
+ export const SHUTDOWN_TIMEOUT_MS = 5_000;
3
+ export function setupShutdownHandlers(closeable, options = {}) {
4
+ const exit = options.exit ?? ((code) => process.exit(code));
5
+ const log = options.log ?? ((msg) => console.error(msg));
6
+ const timeoutMs = options.timeoutMs ?? SHUTDOWN_TIMEOUT_MS;
7
+ let shuttingDown = false;
8
+ const closeWithDeadline = async () => {
9
+ let timer;
10
+ const deadline = new Promise((_, reject) => {
11
+ timer = setTimeout(() => reject(new Error(`shutdown timed out after ${timeoutMs}ms`)), timeoutMs);
12
+ });
13
+ try {
14
+ await Promise.race([closeable.close(), deadline]);
15
+ }
16
+ finally {
17
+ if (timer)
18
+ clearTimeout(timer);
19
+ }
20
+ };
21
+ const shutdown = async (signal) => {
22
+ if (shuttingDown) {
23
+ log(`[meta-mcp] ${signal} received during shutdown — ignoring`);
24
+ return;
25
+ }
26
+ shuttingDown = true;
27
+ log(`[meta-mcp] ${signal} received — shutting down gracefully`);
28
+ try {
29
+ await closeWithDeadline();
30
+ exit(0);
31
+ }
32
+ catch (err) {
33
+ const message = err instanceof Error ? err.message : String(err);
34
+ log(`[meta-mcp] Error during shutdown: ${message}`);
35
+ exit(1);
36
+ }
37
+ };
38
+ for (const signal of SHUTDOWN_SIGNALS) {
39
+ process.on(signal, () => {
40
+ void shutdown(signal);
41
+ });
42
+ }
43
+ }
44
+ export function setupFatalErrorHandlers(options = {}) {
45
+ const exit = options.exit ?? ((code) => process.exit(code));
46
+ const log = options.log ?? ((msg) => console.error(msg));
47
+ process.on("unhandledRejection", (reason) => {
48
+ const detail = reason instanceof Error ? (reason.stack ?? reason.message) : String(reason);
49
+ log(`[meta-mcp] Unhandled promise rejection — ${detail}`);
50
+ exit(1);
51
+ });
52
+ process.on("uncaughtException", (err, origin) => {
53
+ const prefix = origin === "unhandledRejection"
54
+ ? "Unhandled promise rejection (via uncaughtException)"
55
+ : "Uncaught exception";
56
+ log(`[meta-mcp] ${prefix} — ${err.stack ?? err.message}`);
57
+ exit(1);
58
+ });
59
+ }
60
+ //# sourceMappingURL=shutdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shutdown.js","sourceRoot":"","sources":["../src/shutdown.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAU,CAAC;AAG/D,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAazC,MAAM,UAAU,qBAAqB,CACnC,SAAoB,EACpB,UAA2B,EAAE;IAE7B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,mBAAmB,CAAC;IAE3D,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,MAAM,iBAAiB,GAAG,KAAK,IAAmB,EAAE;QAClD,IAAI,KAAgD,CAAC;QACrD,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YAChD,KAAK,GAAG,UAAU,CAChB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,SAAS,IAAI,CAAC,CAAC,EAClE,SAAS,CACV,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;QACpD,CAAC;gBAAS,CAAC;YACT,IAAI,KAAK;gBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAsB,EAAiB,EAAE;QAC/D,IAAI,YAAY,EAAE,CAAC;YACjB,GAAG,CAAC,cAAc,MAAM,sCAAsC,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QACD,YAAY,GAAG,IAAI,CAAC;QACpB,GAAG,CAAC,cAAc,MAAM,sCAAsC,CAAC,CAAC;QAChE,IAAI,CAAC;YACH,MAAM,iBAAiB,EAAE,CAAC;YAC1B,IAAI,CAAC,CAAC,CAAC,CAAC;QACV,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,GAAG,CAAC,qCAAqC,OAAO,EAAE,CAAC,CAAC;YACpD,IAAI,CAAC,CAAC,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;QACtC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACtB,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAOD,MAAM,UAAU,uBAAuB,CAAC,UAA6B,EAAE;IACrE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAEzD,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,EAAE;QAC1C,MAAM,MAAM,GAAG,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3F,GAAG,CAAC,4CAA4C,MAAM,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,CAAC,CAAC,CAAC;IACV,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QAC9C,MAAM,MAAM,GACV,MAAM,KAAK,oBAAoB;YAC7B,CAAC,CAAC,qDAAqD;YACvD,CAAC,CAAC,oBAAoB,CAAC;QAC3B,GAAG,CAAC,cAAc,MAAM,MAAM,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,CAAC,CAAC,CAAC;IACV,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../../../src/tools/instagram/comments.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAc,MAAM,+BAA+B,CAAC;AAUvE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAgKlF"}
1
+ {"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../../../src/tools/instagram/comments.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAW3D,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAgKlF"}
@@ -2,10 +2,11 @@ import { z } from "zod";
2
2
  import { metaId } from "../../schemas.js";
3
3
  import { formatErrorResponse } from "../../utils/errors.js";
4
4
  import { formatResponse } from "../../utils/response.js";
5
+ import { buildParams } from "../../utils/params.js";
5
6
  import { READ_ONLY_TOOL, DESTRUCTIVE_TOOL, WRITE_TOOL, WRITE_IDEMPOTENT_TOOL } from "../annotations.js";
6
- const GET_COMMENTS_DEFAULT_FIELDS = "id,text,username,timestamp,like_count,replies{id,text,username,timestamp}";
7
- const GET_COMMENT_DEFAULT_FIELDS = "id,text,username,timestamp,like_count,parent_id,media";
8
- const GET_REPLIES_DEFAULT_FIELDS = "id,text,username,timestamp,like_count";
7
+ const GET_COMMENTS_DEFAULT_FIELDS = "id,text,username,timestamp,like_count,hidden,from,replies{id,text,username,timestamp,like_count,hidden,from}";
8
+ const GET_COMMENT_DEFAULT_FIELDS = "id,text,username,timestamp,like_count,hidden,from,parent_id,media";
9
+ const GET_REPLIES_DEFAULT_FIELDS = "id,text,username,timestamp,like_count,hidden,from";
9
10
  export function registerIgCommentTools(server, client) {
10
11
  // ─── ig_get_comments ─────────────────────────────────────────
11
12
  server.registerTool("ig_get_comments", {
@@ -20,13 +21,7 @@ export function registerIgCommentTools(server, client) {
20
21
  annotations: READ_ONLY_TOOL,
21
22
  }, async ({ media_id, limit, after, before, fields }) => {
22
23
  try {
23
- const params = { fields };
24
- if (limit !== undefined)
25
- params.limit = limit;
26
- if (after)
27
- params.after = after;
28
- if (before)
29
- params.before = before;
24
+ const params = buildParams({ fields }, { limit, after, before });
30
25
  const { data, rateLimit } = await client.ig("GET", `/${media_id}/comments`, params);
31
26
  return formatResponse(data, rateLimit);
32
27
  }
@@ -56,7 +51,10 @@ export function registerIgCommentTools(server, client) {
56
51
  description: "Post a top-level comment on a media post.",
57
52
  inputSchema: {
58
53
  media_id: metaId.describe("Media ID to comment on"),
59
- message: z.string().describe("Comment text"),
54
+ message: z.string()
55
+ .min(1)
56
+ .refine((s) => [...s].length <= 2200, { message: "Comment text must be 2200 characters or fewer" })
57
+ .describe("Comment text (max 2200 chars per Meta's Instagram caption/comment limit)"),
60
58
  },
61
59
  annotations: WRITE_TOOL,
62
60
  }, async ({ media_id, message }) => {
@@ -81,13 +79,7 @@ export function registerIgCommentTools(server, client) {
81
79
  annotations: READ_ONLY_TOOL,
82
80
  }, async ({ comment_id, limit, after, before, fields }) => {
83
81
  try {
84
- const params = { fields };
85
- if (limit !== undefined)
86
- params.limit = limit;
87
- if (after)
88
- params.after = after;
89
- if (before)
90
- params.before = before;
82
+ const params = buildParams({ fields }, { limit, after, before });
91
83
  const { data, rateLimit } = await client.ig("GET", `/${comment_id}/replies`, params);
92
84
  return formatResponse(data, rateLimit);
93
85
  }
@@ -100,7 +92,10 @@ export function registerIgCommentTools(server, client) {
100
92
  description: "Reply to a specific comment.",
101
93
  inputSchema: {
102
94
  comment_id: metaId.describe("Comment ID to reply to"),
103
- message: z.string().describe("Reply text"),
95
+ message: z.string()
96
+ .min(1)
97
+ .refine((s) => [...s].length <= 2200, { message: "Reply text must be 2200 characters or fewer" })
98
+ .describe("Reply text (max 2200 chars per Meta's Instagram caption/comment limit)"),
104
99
  },
105
100
  annotations: WRITE_TOOL,
106
101
  }, async ({ comment_id, message }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"comments.js","sourceRoot":"","sources":["../../../src/tools/instagram/comments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"comments.js","sourceRoot":"","sources":["../../../src/tools/instagram/comments.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import { MetaClient } from "../../services/meta-client.js";
3
+ export declare const igHashtagCacheKey: (userId: string, q: string) => string;
3
4
  export declare function registerIgHashtagTools(server: McpServer, client: MetaClient): void;
4
5
  //# sourceMappingURL=hashtags.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hashtags.d.ts","sourceRoot":"","sources":["../../../src/tools/instagram/hashtags.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAc,MAAM,+BAA+B,CAAC;AAMvE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAyGlF"}
1
+ {"version":3,"file":"hashtags.d.ts","sourceRoot":"","sources":["../../../src/tools/instagram/hashtags.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAwB,MAAM,+BAA+B,CAAC;AAWjF,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,EAAE,GAAG,MAAM,KAAG,MACnB,CAAC;AAE5C,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CA6GlF"}
@@ -1,22 +1,34 @@
1
1
  import { z } from "zod";
2
+ import { HASHTAG_CACHE_TTL_MS } from "../../services/meta-client.js";
2
3
  import { metaId } from "../../schemas.js";
4
+ import { IG_HASHTAG_MEDIA_FIELDS } from "../../constants/fields.js";
3
5
  import { formatErrorResponse } from "../../utils/errors.js";
4
6
  import { formatResponse } from "../../utils/response.js";
7
+ import { buildParams } from "../../utils/params.js";
5
8
  import { READ_ONLY_TOOL } from "../annotations.js";
9
+ // Meta's hashtag search is case-insensitive — `"Puppies"` and `"puppies"`
10
+ // resolve to the same hashtag ID. Lowercase the query so both spellings share
11
+ // one cache slot against the 30-unique-per-7-days quota.
12
+ export const igHashtagCacheKey = (userId, q) => `ig:hashtag:${userId}:${q.toLowerCase()}`;
6
13
  export function registerIgHashtagTools(server, client) {
7
14
  // ─── ig_search_hashtag ───────────────────────────────────────
8
15
  server.registerTool("ig_search_hashtag", {
9
- description: "Search for a hashtag ID by name. Required before querying hashtag media. Limited to 30 unique hashtags per 7-day rolling window.",
16
+ description: "Search for a hashtag ID by name. Required before querying hashtag media. Limited to 30 unique hashtags per 7-day rolling window — meta-mcp caches results in-process to maximize quota utilization on repeated lookups.",
10
17
  inputSchema: {
11
18
  q: z.string().describe("Hashtag name to search (without #)"),
12
19
  },
13
20
  annotations: READ_ONLY_TOOL,
14
21
  }, async ({ q }) => {
15
22
  try {
23
+ const cacheKey = igHashtagCacheKey(client.igUserId, q);
24
+ const cached = client.getCached(cacheKey);
25
+ if (cached)
26
+ return formatResponse(cached);
16
27
  const { data, rateLimit } = await client.ig("GET", "/ig_hashtag_search", {
17
28
  q,
18
29
  user_id: client.igUserId,
19
30
  });
31
+ client.setCache(cacheKey, data, HASHTAG_CACHE_TTL_MS);
20
32
  return formatResponse(data, rateLimit);
21
33
  }
22
34
  catch (error) {
@@ -53,16 +65,10 @@ export function registerIgHashtagTools(server, client) {
53
65
  annotations: READ_ONLY_TOOL,
54
66
  }, async ({ hashtag_id, limit, after, before }) => {
55
67
  try {
56
- const params = {
68
+ const params = buildParams({
57
69
  user_id: client.igUserId,
58
- fields: "id,caption,media_type,media_url,permalink,timestamp,like_count,comments_count",
59
- };
60
- if (limit !== undefined)
61
- params.limit = limit;
62
- if (after)
63
- params.after = after;
64
- if (before)
65
- params.before = before;
70
+ fields: IG_HASHTAG_MEDIA_FIELDS,
71
+ }, { limit, after, before });
66
72
  const { data, rateLimit } = await client.ig("GET", `/${hashtag_id}/recent_media`, params);
67
73
  return formatResponse(data, rateLimit);
68
74
  }
@@ -82,16 +88,10 @@ export function registerIgHashtagTools(server, client) {
82
88
  annotations: READ_ONLY_TOOL,
83
89
  }, async ({ hashtag_id, limit, after, before }) => {
84
90
  try {
85
- const params = {
91
+ const params = buildParams({
86
92
  user_id: client.igUserId,
87
- fields: "id,caption,media_type,media_url,permalink,timestamp,like_count,comments_count",
88
- };
89
- if (limit !== undefined)
90
- params.limit = limit;
91
- if (after)
92
- params.after = after;
93
- if (before)
94
- params.before = before;
93
+ fields: IG_HASHTAG_MEDIA_FIELDS,
94
+ }, { limit, after, before });
95
95
  const { data, rateLimit } = await client.ig("GET", `/${hashtag_id}/top_media`, params);
96
96
  return formatResponse(data, rateLimit);
97
97
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hashtags.js","sourceRoot":"","sources":["../../../src/tools/instagram/hashtags.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hashtags.js","sourceRoot":"","sources":["../../../src/tools/instagram/hashtags.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../src/tools/instagram/media.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAc,MAAM,+BAA+B,CAAC;AASvE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAqHhF"}
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../src/tools/instagram/media.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAW3D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAsHhF"}