@frase/mcp-server 0.3.0 → 0.3.3

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 (77) hide show
  1. package/dist/formatter.d.ts +1 -1
  2. package/dist/formatter.d.ts.map +1 -1
  3. package/dist/formatter.js +1 -1
  4. package/dist/formatter.js.map +1 -1
  5. package/dist/lib/mcp-audit.d.ts +3 -0
  6. package/dist/lib/mcp-audit.d.ts.map +1 -0
  7. package/dist/lib/mcp-audit.js +95 -0
  8. package/dist/lib/mcp-audit.js.map +1 -0
  9. package/dist/mcpb-bundle.js +30072 -0
  10. package/dist/prompts/content-pipeline.d.ts.map +1 -1
  11. package/dist/prompts/content-pipeline.js +10 -18
  12. package/dist/prompts/content-pipeline.js.map +1 -1
  13. package/dist/prompts/create-seo-article.d.ts.map +1 -1
  14. package/dist/prompts/create-seo-article.js +17 -42
  15. package/dist/prompts/create-seo-article.js.map +1 -1
  16. package/dist/prompts/keyword-research.d.ts.map +1 -1
  17. package/dist/prompts/keyword-research.js +20 -31
  18. package/dist/prompts/keyword-research.js.map +1 -1
  19. package/dist/resources/briefs.d.ts.map +1 -1
  20. package/dist/resources/briefs.js +12 -6
  21. package/dist/resources/briefs.js.map +1 -1
  22. package/dist/tools/ai-visibility.d.ts.map +1 -1
  23. package/dist/tools/ai-visibility.js +67 -12
  24. package/dist/tools/ai-visibility.js.map +1 -1
  25. package/dist/tools/analytics.d.ts.map +1 -1
  26. package/dist/tools/analytics.js +9 -4
  27. package/dist/tools/analytics.js.map +1 -1
  28. package/dist/tools/audits.d.ts +8 -5
  29. package/dist/tools/audits.d.ts.map +1 -1
  30. package/dist/tools/audits.js +112 -20
  31. package/dist/tools/audits.js.map +1 -1
  32. package/dist/tools/briefs.d.ts +40 -145
  33. package/dist/tools/briefs.d.ts.map +1 -1
  34. package/dist/tools/briefs.js +153 -163
  35. package/dist/tools/briefs.js.map +1 -1
  36. package/dist/tools/cms-posts.d.ts +7 -0
  37. package/dist/tools/cms-posts.d.ts.map +1 -0
  38. package/dist/tools/cms-posts.js +499 -0
  39. package/dist/tools/cms-posts.js.map +1 -0
  40. package/dist/tools/content.d.ts +37 -6
  41. package/dist/tools/content.d.ts.map +1 -1
  42. package/dist/tools/content.js +362 -32
  43. package/dist/tools/content.js.map +1 -1
  44. package/dist/tools/discover.js +3 -3
  45. package/dist/tools/discover.js.map +1 -1
  46. package/dist/tools/index.d.ts.map +1 -1
  47. package/dist/tools/index.js +5 -0
  48. package/dist/tools/index.js.map +1 -1
  49. package/dist/tools/optimizations.d.ts +6 -0
  50. package/dist/tools/optimizations.d.ts.map +1 -1
  51. package/dist/tools/optimizations.js +440 -26
  52. package/dist/tools/optimizations.js.map +1 -1
  53. package/dist/tools/publish.d.ts +3 -3
  54. package/dist/tools/publish.js +6 -6
  55. package/dist/tools/publish.js.map +1 -1
  56. package/dist/tools/research.d.ts +18 -6
  57. package/dist/tools/research.d.ts.map +1 -1
  58. package/dist/tools/research.js +210 -19
  59. package/dist/tools/research.js.map +1 -1
  60. package/dist/tools/rules.d.ts +76 -0
  61. package/dist/tools/rules.d.ts.map +1 -1
  62. package/dist/tools/rules.js +355 -12
  63. package/dist/tools/rules.js.map +1 -1
  64. package/dist/tools/serp.d.ts.map +1 -1
  65. package/dist/tools/serp.js +30 -18
  66. package/dist/tools/serp.js.map +1 -1
  67. package/dist/tools/site-health.js +10 -10
  68. package/dist/tools/site-health.js.map +1 -1
  69. package/dist/tools/templates.js +5 -5
  70. package/dist/tools/templates.js.map +1 -1
  71. package/dist/tools/webhooks.d.ts.map +1 -1
  72. package/dist/tools/webhooks.js +24 -3
  73. package/dist/tools/webhooks.js.map +1 -1
  74. package/dist/types.d.ts +1 -1
  75. package/dist/types.d.ts.map +1 -1
  76. package/package.json +8 -11
  77. package/server.json +4 -4
@@ -5,7 +5,23 @@
5
5
  */
6
6
  import { z } from "zod";
7
7
  import { CACHE_TTL } from "../cache.js";
8
- import { formatTable, formatStatus, formatDate, formatPagination, formatKeyValue, } from "../formatter.js";
8
+ import { withAudit } from "../lib/mcp-audit.js";
9
+ import { formatTable, formatStatus, formatDate, formatPagination, formatKeyValue, truncate, } from "../formatter.js";
10
+ // Terminal statuses for get_optimization cache bypass (D4). While the
11
+ // optimization is evolving (pending, analyzing, ready, auto_applying) we
12
+ // must never serve from the 5-minute resource cache — callers polling
13
+ // "is it applied yet?" would see flip-flop state.
14
+ const TERMINAL_OPTIMIZATION_STATUSES = new Set([
15
+ "applied",
16
+ "dismissed",
17
+ "failed",
18
+ ]);
19
+ // ============================================
20
+ // Utilities
21
+ // ============================================
22
+ function sleep(ms) {
23
+ return new Promise((resolve) => setTimeout(resolve, ms));
24
+ }
9
25
  // ============================================
10
26
  // list_optimizations
11
27
  // ============================================
@@ -86,26 +102,41 @@ export async function executeListOptimizations(input, context) {
86
102
  // ============================================
87
103
  // start_optimization
88
104
  // ============================================
89
- const startOptimizationInputSchema = z.object({
90
- content_id: z.string().min(1),
105
+ // Exactly one of content_id or content_name must be provided. MCP clients pass
106
+ // a JSON schema-less payload (no `required` XOR support), so we enforce the
107
+ // pair at the Zod layer and document it in the tool description (D5).
108
+ const startOptimizationInputSchema = z
109
+ .object({
110
+ content_id: z.string().uuid().optional(),
111
+ content_name: z
112
+ .string()
113
+ .trim()
114
+ .min(1)
115
+ .max(255)
116
+ .regex(/^[^\x00-\x1F\x7F]+$/, "content_name must not contain control characters")
117
+ .optional(),
91
118
  alert_id: z.string().uuid().optional(),
92
- });
119
+ })
120
+ .refine((v) => (v.content_id ? 1 : 0) + (v.content_name ? 1 : 0) === 1, { message: "Provide exactly one of content_id or content_name" });
93
121
  export const startOptimizationTool = {
94
122
  name: "start_optimization",
95
- description: "Start a new optimization analysis for a piece of content. This will analyze the content and generate improvement suggestions.",
123
+ description: "Start a new optimization analysis for a piece of content. Provide EXACTLY ONE of `content_id` (UUID) or `content_name` (human-readable title). If multiple documents share the same name, the response lists candidates and the agent must pick a `content_id` to retry.",
96
124
  inputSchema: {
97
125
  type: "object",
98
126
  properties: {
99
127
  content_id: {
100
128
  type: "string",
101
- description: "The ID of the content to optimize (required)",
129
+ description: "Content ID (UUID). Exactly one of content_id or content_name must be provided.",
130
+ },
131
+ content_name: {
132
+ type: "string",
133
+ description: "Content title for case-insensitive exact-match lookup in the caller's organization. Returns needs_disambiguation candidates when multiple docs share the title. Exactly one of content_id or content_name must be provided.",
102
134
  },
103
135
  alert_id: {
104
136
  type: "string",
105
137
  description: "Optional alert ID (UUID) that triggered this optimization",
106
138
  },
107
139
  },
108
- required: ["content_id"],
109
140
  },
110
141
  };
111
142
  export async function executeStartOptimization(input, context) {
@@ -116,7 +147,69 @@ export async function executeStartOptimization(input, context) {
116
147
  markdown: `**Error:** Invalid input - ${parsed.error.message}`,
117
148
  };
118
149
  }
119
- const { content_id, alert_id } = parsed.data;
150
+ const { alert_id, content_name } = parsed.data;
151
+ let { content_id } = parsed.data;
152
+ // Resolve content_name → content_id via the server-side resolver. All
153
+ // org-scoping, soft-delete filtering, case-insensitive exact match and the
154
+ // max-10 candidate cap live in /api/v1/content/resolve — the MCP is a thin
155
+ // HTTP client.
156
+ if (content_name && !content_id) {
157
+ try {
158
+ const resolveResponse = await context.client.post("/content/resolve", { name: content_name });
159
+ const resolve = resolveResponse.data;
160
+ if (resolve.status === "not_found") {
161
+ return {
162
+ success: false,
163
+ markdown: `**Not Found:** No content in your organization matches the name "${content_name}" (case-insensitive exact match).`,
164
+ data: resolveResponse,
165
+ };
166
+ }
167
+ if (resolve.status === "needs_disambiguation") {
168
+ const candidates = resolve.candidates ?? [];
169
+ const headers = ["ID", "Title", "Slug", "Status", "Words", "Updated"];
170
+ const rows = candidates.map((c) => [
171
+ c.id,
172
+ truncate(c.title, 60),
173
+ c.slug ?? "",
174
+ c.status,
175
+ c.word_count.toString(),
176
+ formatDate(c.updated_at),
177
+ ]);
178
+ const table = formatTable(headers, rows);
179
+ const truncatedHint = resolve.truncated
180
+ ? `\n\n_More than ${candidates.length} matches exist. Narrow the title or use content_id._`
181
+ : "";
182
+ return {
183
+ success: false,
184
+ markdown: `## Multiple Matches for "${content_name}"\n\nSelect one and retry \`start_optimization\` with \`content_id\`.\n\n${table}${truncatedHint}`,
185
+ data: resolveResponse,
186
+ };
187
+ }
188
+ if (resolve.status === "ok" && resolve.content_id) {
189
+ content_id = resolve.content_id;
190
+ }
191
+ else {
192
+ return {
193
+ success: false,
194
+ markdown: `**Error:** Resolver returned an unexpected response for "${content_name}".`,
195
+ data: resolveResponse,
196
+ };
197
+ }
198
+ }
199
+ catch (error) {
200
+ const message = error instanceof Error ? error.message : "Unknown error";
201
+ return {
202
+ success: false,
203
+ markdown: `**Error:** Failed to resolve content_name - ${message}`,
204
+ };
205
+ }
206
+ }
207
+ if (!content_id) {
208
+ return {
209
+ success: false,
210
+ markdown: `**Error:** Could not determine content_id from input.`,
211
+ };
212
+ }
120
213
  try {
121
214
  const body = { content_id };
122
215
  if (alert_id)
@@ -172,7 +265,14 @@ export async function executeGetOptimization(input, context) {
172
265
  }
173
266
  const { id } = parsed.data;
174
267
  try {
175
- const response = await context.client.get(`/optimizations/${id}`, {}, CACHE_TTL.resources);
268
+ // Start with the resource-TTL cache. If the returned status is
269
+ // non-terminal (still evolving), refetch with cache bypass so we don't
270
+ // hand stale "pending/analyzing/auto_applying" state back to callers
271
+ // polling for completion (D4).
272
+ let response = await context.client.get(`/optimizations/${id}`, {}, CACHE_TTL.resources);
273
+ if (!TERMINAL_OPTIMIZATION_STATUSES.has(response.data.status)) {
274
+ response = await context.client.get(`/optimizations/${id}`, {}, 0);
275
+ }
176
276
  const opt = response.data;
177
277
  let markdown = `## Optimization: ${opt.content_title || opt.content_id}\n\n`;
178
278
  markdown += formatKeyValue({
@@ -186,10 +286,19 @@ export async function executeGetOptimization(input, context) {
186
286
  });
187
287
  if (opt.suggestions && opt.suggestions.length > 0) {
188
288
  markdown += "\n\n### Suggestions\n\n";
289
+ const inFlightSet = new Set(opt.in_flight_suggestion_ids ?? []);
189
290
  for (const suggestion of opt.suggestions) {
190
- const status = suggestion.is_applied ? "Applied" : "Pending";
291
+ // Three-state render: "Applied" committed, "Applying…" ← row is
292
+ // pending (apply dispatched, content write not yet flipped), "Pending"
293
+ // ← never dispatched. Prevents the flip-flop QA captured on suggestion
294
+ // 3 where a pending row transiently looks like "not applied yet".
295
+ const status = suggestion.is_applied
296
+ ? "Applied"
297
+ : suggestion.is_in_flight || inFlightSet.has(suggestion.id)
298
+ ? "Applying…"
299
+ : "Pending";
191
300
  markdown += `#### ${suggestion.title}\n\n`;
192
- markdown += `**Type:** ${suggestion.type} | **Priority:** ${suggestion.priority} | **Status:** ${status}\n\n`;
301
+ markdown += `**ID:** \`${suggestion.id}\` | **Type:** ${suggestion.type} | **Priority:** ${suggestion.priority} | **Status:** ${status}\n\n`;
193
302
  markdown += `${suggestion.description}\n\n`;
194
303
  }
195
304
  }
@@ -222,7 +331,7 @@ const applyOptimizationInputSchema = z.object({
222
331
  });
223
332
  export const applyOptimizationTool = {
224
333
  name: "apply_optimization",
225
- description: "Apply a specific optimization suggestion to the content.",
334
+ description: "Apply a specific optimization suggestion to the content. Triggers a background job and polls until applied (up to ~300s).",
226
335
  inputSchema: {
227
336
  type: "object",
228
337
  properties: {
@@ -248,17 +357,76 @@ export async function executeApplyOptimization(input, context) {
248
357
  }
249
358
  const { id, suggestion_id } = parsed.data;
250
359
  try {
360
+ // Fire the async apply (Inngest background job — up to 5 min)
251
361
  const response = await context.client.post(`/optimizations/${id}/apply`, { suggestion_id });
252
362
  const result = response.data;
363
+ // Handle "already_applied" status (returned synchronously before Inngest fires)
364
+ if (result.status === "already_applied") {
365
+ return {
366
+ success: true,
367
+ markdown: `## Suggestion Already Applied\n\nThis suggestion has already been applied to the content. No changes were made.`,
368
+ data: response,
369
+ };
370
+ }
371
+ // Poll the get_optimization endpoint until the suggestion shows as applied
372
+ // 60 attempts * 5s = 300s max wait (matches Inngest timeout)
373
+ const POLL_INTERVAL_MS = 5000;
374
+ const MAX_ATTEMPTS = 60;
375
+ for (let attempt = 0; attempt < MAX_ATTEMPTS; attempt++) {
376
+ await sleep(POLL_INTERVAL_MS);
377
+ try {
378
+ // Fetch fresh optimization state (no cache — pass 0 TTL)
379
+ const pollResponse = await context.client.get(`/optimizations/${id}`, {}, 0);
380
+ const opt = pollResponse.data;
381
+ // Check if optimization has an error (job failed)
382
+ if (opt.error) {
383
+ return {
384
+ success: false,
385
+ markdown: `**Error:** Optimization failed — ${opt.error}`,
386
+ };
387
+ }
388
+ // Check if our specific suggestion is now applied
389
+ const targetSuggestion = opt.suggestions?.find((s) => s.id === suggestion_id);
390
+ if (targetSuggestion?.is_applied || opt.applied_suggestion_ids?.includes(suggestion_id)) {
391
+ let markdown = `## Optimization Applied Successfully\n\n${formatKeyValue({
392
+ optimization_id: opt.id,
393
+ suggestion_id,
394
+ suggestion_type: targetSuggestion?.type ?? result.suggestion_type,
395
+ suggestion_title: targetSuggestion?.title ?? result.suggestion_title,
396
+ status: "applied",
397
+ })}`;
398
+ markdown += `\n\nContent ID: \`${opt.content_id}\``;
399
+ markdown += `\n\n_Use \`get_optimization\` to see all suggestion statuses._`;
400
+ return {
401
+ success: true,
402
+ markdown,
403
+ data: pollResponse,
404
+ };
405
+ }
406
+ // Check if optimization failed
407
+ if (opt.status === "failed") {
408
+ return {
409
+ success: false,
410
+ markdown: `**Error:** Optimization failed while applying suggestion.\n\n${opt.error ? `Details: ${opt.error}` : "Check the optimization for more details."}`,
411
+ data: pollResponse,
412
+ };
413
+ }
414
+ }
415
+ catch {
416
+ // Individual poll failures are non-fatal — keep trying
417
+ continue;
418
+ }
419
+ }
420
+ // Timed out after 300s — still processing
253
421
  return {
254
- success: true,
255
- markdown: `## Optimization Apply Started\n\n${formatKeyValue({
256
- id: result.id,
257
- suggestion_id: result.suggestion_id,
422
+ success: false,
423
+ markdown: `## Suggestion Application Timed Out\n\nThe suggestion is still being applied after 300 seconds. The background job may still be processing.\n\n${formatKeyValue({
424
+ optimization_id: id,
425
+ suggestion_id,
258
426
  suggestion_type: result.suggestion_type,
259
427
  suggestion_title: result.suggestion_title,
260
- status: result.status,
261
- })}\n\n**Note:** ${result.message}`,
428
+ status: "timed_out",
429
+ })}\n\n_Use \`get_optimization\` with id \`${id}\` to check the current status._`,
262
430
  data: response,
263
431
  };
264
432
  }
@@ -377,7 +545,7 @@ const dismissOptimizationInputSchema = z.object({
377
545
  });
378
546
  export const dismissOptimizationTool = {
379
547
  name: "dismiss_optimization",
380
- description: "Dismiss an optimization - mark it as not needed or not applicable.",
548
+ description: "Dismiss an ENTIRE optimization session with ALL its suggestions. This marks the whole session (not individual suggestions) as dismissed. Use this when you want to skip all suggestions for a piece of content.",
381
549
  inputSchema: {
382
550
  type: "object",
383
551
  properties: {
@@ -414,7 +582,7 @@ export async function executeDismissOptimization(input, context) {
414
582
  ID: result.id,
415
583
  Status: formatStatus(result.status),
416
584
  Reason: result.reason || "None",
417
- })}\n\n${result.message}`,
585
+ })}\n\n${result.message}\n\n> **Note:** All suggestions in this optimization session have been dismissed, not just a single suggestion.`,
418
586
  data: response,
419
587
  };
420
588
  }
@@ -427,6 +595,242 @@ export async function executeDismissOptimization(input, context) {
427
595
  }
428
596
  }
429
597
  // ============================================
598
+ // republish_content (Content Guard — PRO-2175)
599
+ // ============================================
600
+ /**
601
+ * Thin wrapper over the `acceptAndRepublish` server action. The action runs
602
+ * under `withContentEditor` and `republishContent` reads `externalPostId` +
603
+ * `publishedVia` off the org-scoped content row — never from input — then
604
+ * calls `adapter.update()` so the CMS row is modified in place rather than
605
+ * duplicated.
606
+ *
607
+ * Error codes surfaced verbatim from the server action:
608
+ * UNAUTHORIZED | RATE_LIMITED | TIMEOUT | NO_EXTERNAL_POST_ID |
609
+ * UPDATE_FAILED | UNKNOWN
610
+ */
611
+ const republishContentInputSchema = z.object({
612
+ optimization_id: z.string().uuid(),
613
+ content_id: z.string().uuid(),
614
+ application_id: z.string().uuid(),
615
+ });
616
+ export const republishContentTool = {
617
+ name: "republish_content",
618
+ description: "Accept an optimization's suggestion application and re-publish the updated content to its connected CMS. Calls the CMS adapter's `update()` (never `publish()`), so the existing post is modified in place — no duplicate posts are created. Requires content-editor role. On failure, the response includes a typed error code (UNAUTHORIZED, RATE_LIMITED, TIMEOUT, NO_EXTERNAL_POST_ID, UPDATE_FAILED, UNKNOWN) propagated from the server action.",
619
+ inputSchema: {
620
+ type: "object",
621
+ properties: {
622
+ optimization_id: {
623
+ type: "string",
624
+ description: "The optimization ID that produced the suggestion (UUID, required)",
625
+ },
626
+ content_id: {
627
+ type: "string",
628
+ description: "The content ID being re-published (UUID, required)",
629
+ },
630
+ application_id: {
631
+ type: "string",
632
+ description: "The suggestion application ID to accept & re-publish (UUID, required)",
633
+ },
634
+ },
635
+ required: ["optimization_id", "content_id", "application_id"],
636
+ },
637
+ };
638
+ export async function executeRepublishContent(input, context) {
639
+ const parsed = republishContentInputSchema.safeParse(input);
640
+ if (!parsed.success) {
641
+ return {
642
+ success: false,
643
+ markdown: `**Error:** Invalid input - ${parsed.error.message}`,
644
+ };
645
+ }
646
+ const { optimization_id, content_id, application_id } = parsed.data;
647
+ try {
648
+ const response = await context.client.post(`/optimizations/${optimization_id}/republish`, {
649
+ content_id,
650
+ application_id,
651
+ });
652
+ const result = response.data;
653
+ return {
654
+ success: true,
655
+ markdown: `## Content Re-Published\n\n${formatKeyValue({
656
+ optimization_id,
657
+ content_id,
658
+ application_id,
659
+ destination: result.destination,
660
+ url: result.url,
661
+ external_id: result.external_id,
662
+ })}\n\n_The connected CMS post was updated in place via \`adapter.update()\`. No duplicate post was created._`,
663
+ data: response,
664
+ };
665
+ }
666
+ catch (error) {
667
+ // Surface the server action's typed error code verbatim so external
668
+ // agents can branch on it. The API route is expected to serialize
669
+ // `{ error: { code, message } }` on 4xx/5xx; FraseApiError reads that
670
+ // into `.code` / `.message` (see FraseApiClient error mapping).
671
+ const apiError = error;
672
+ const rawCode = apiError.code;
673
+ // Normalize: action-level codes are UPPER_SNAKE
674
+ // (UNAUTHORIZED | RATE_LIMITED | TIMEOUT | NO_EXTERNAL_POST_ID |
675
+ // UPDATE_FAILED | UNKNOWN). If the server returned a generic
676
+ // `http_<n>` code, fall back to UNKNOWN.
677
+ const code = rawCode && !rawCode.startsWith("http_") ? rawCode : "UNKNOWN";
678
+ const message = apiError.message ?? "Unknown error while re-publishing content";
679
+ return {
680
+ success: false,
681
+ markdown: `**Error:** Failed to re-publish content (\`${code}\`) - ${message}`,
682
+ data: { code, error: message },
683
+ };
684
+ }
685
+ }
686
+ // ============================================
687
+ // toggle_content_monitoring (Content Guard — PRO-2175)
688
+ // ============================================
689
+ /**
690
+ * Thin wrapper over the `toggleContentMonitoring` server action. The action
691
+ * requires `content.publishedUrl` to enable monitoring and enforces the
692
+ * org's per-plan monitoring quota via `checkMonitoringQuota()`.
693
+ */
694
+ const toggleContentMonitoringInputSchema = z.object({
695
+ content_id: z.string().uuid(),
696
+ enable: z.boolean(),
697
+ });
698
+ export const toggleContentMonitoringTool = {
699
+ name: "toggle_content_monitoring",
700
+ description: "Enable or disable Content Guard monitoring for a single article. Enabling requires the content row to have a published URL (we need a live page to monitor) and is quota-checked against the organization's plan limit for monitored articles. Requires content-editor role.",
701
+ inputSchema: {
702
+ type: "object",
703
+ properties: {
704
+ content_id: {
705
+ type: "string",
706
+ description: "The content ID to toggle monitoring for (UUID, required)",
707
+ },
708
+ enable: {
709
+ type: "boolean",
710
+ description: "true to start monitoring, false to stop (required)",
711
+ },
712
+ },
713
+ required: ["content_id", "enable"],
714
+ },
715
+ };
716
+ export async function executeToggleContentMonitoring(input, context) {
717
+ const parsed = toggleContentMonitoringInputSchema.safeParse(input);
718
+ if (!parsed.success) {
719
+ return {
720
+ success: false,
721
+ markdown: `**Error:** Invalid input - ${parsed.error.message}`,
722
+ };
723
+ }
724
+ const { content_id, enable } = parsed.data;
725
+ try {
726
+ const response = await context.client.post(`/content/${content_id}/monitoring`, { enabled: enable });
727
+ const result = response.data;
728
+ const state = result.is_monitored ? "enabled" : "disabled";
729
+ return {
730
+ success: true,
731
+ markdown: `## Content Guard Monitoring ${state[0].toUpperCase()}${state.slice(1)}\n\n${formatKeyValue({
732
+ content_id,
733
+ is_monitored: result.is_monitored,
734
+ quota_used: result.quota_used,
735
+ quota_limit: result.quota_limit,
736
+ })}`,
737
+ data: response,
738
+ };
739
+ }
740
+ catch (error) {
741
+ const apiError = error;
742
+ const rawCode = apiError.code;
743
+ const code = rawCode && !rawCode.startsWith("http_") ? rawCode : undefined;
744
+ const message = apiError.message ?? "Unknown error while toggling content monitoring";
745
+ return {
746
+ success: false,
747
+ markdown: code
748
+ ? `**Error:** Failed to toggle monitoring (\`${code}\`) - ${message}`
749
+ : `**Error:** Failed to toggle monitoring - ${message}`,
750
+ data: code ? { code, error: message } : { error: message },
751
+ };
752
+ }
753
+ }
754
+ // ============================================
755
+ // get_monitoring_status (Content Guard — PRO-2176)
756
+ // ============================================
757
+ /**
758
+ * Thin wrapper over the `getMonitoringStatus` server action. Read-only —
759
+ * returns the org-scoped monitoring state, quota, CMS connection health,
760
+ * GSC wiring, and any pending suggestion-application for the content row.
761
+ */
762
+ const getMonitoringStatusInputSchema = z.object({
763
+ content_id: z.string().uuid(),
764
+ });
765
+ export const getMonitoringStatusTool = {
766
+ name: "get_monitoring_status",
767
+ description: "Get the current Content Guard monitoring status for an article — includes quota, CMS/GSC connection health, pending review state. Use after toggle or before advising a user on whether to enable Guard.",
768
+ inputSchema: {
769
+ type: "object",
770
+ properties: {
771
+ content_id: {
772
+ type: "string",
773
+ description: "The content ID to read monitoring status for (UUID, required)",
774
+ },
775
+ },
776
+ required: ["content_id"],
777
+ },
778
+ };
779
+ export async function executeGetMonitoringStatus(input, context) {
780
+ const parsed = getMonitoringStatusInputSchema.safeParse(input);
781
+ if (!parsed.success) {
782
+ return {
783
+ success: false,
784
+ markdown: `**Error:** Invalid input - ${parsed.error.message}`,
785
+ };
786
+ }
787
+ const { content_id } = parsed.data;
788
+ try {
789
+ // Mirror the toggle handler's fetch approach: same base URL helper,
790
+ // same auth headers. The GET route returns the `MonitoringStatus`
791
+ // shape verbatim inside `{ data }`.
792
+ const response = await context.client.get(`/content/${content_id}/monitoring`, {}, CACHE_TTL.resources);
793
+ const status = response.data;
794
+ const cmsSummary = status.cmsConnections.length > 0
795
+ ? status.cmsConnections
796
+ .map((c) => `${c.platform} (${c.connected ? "connected" : "disconnected"})`)
797
+ .join(", ")
798
+ : "none";
799
+ return {
800
+ success: true,
801
+ markdown: `## Content Guard Monitoring Status\n\n${formatKeyValue({
802
+ content_id,
803
+ is_monitored: status.isMonitored,
804
+ monitored_at: status.monitoredAt ? formatDate(status.monitoredAt) : "—",
805
+ quota_used: status.quota.used,
806
+ quota_limit: status.quota.limit,
807
+ quota_remaining: status.quota.remaining,
808
+ quota_allowed: status.quota.allowed,
809
+ has_published_url: status.hasPublishedUrl,
810
+ has_gsc: status.hasGsc,
811
+ cms_connections: cmsSummary,
812
+ pending_application_id: status.pendingApplicationId
813
+ ? truncate(status.pendingApplicationId, 40)
814
+ : "none",
815
+ })}`,
816
+ data: response,
817
+ };
818
+ }
819
+ catch (error) {
820
+ const apiError = error;
821
+ const rawCode = apiError.code;
822
+ const code = rawCode && !rawCode.startsWith("http_") ? rawCode : undefined;
823
+ const message = apiError.message ?? "Unknown error while reading monitoring status";
824
+ return {
825
+ success: false,
826
+ markdown: code
827
+ ? `**Error:** Failed to read monitoring status (\`${code}\`) - ${message}`
828
+ : `**Error:** Failed to read monitoring status - ${message}`,
829
+ data: code ? { code, error: message } : { error: message },
830
+ };
831
+ }
832
+ }
833
+ // ============================================
430
834
  // Export all
431
835
  // ============================================
432
836
  export const optimizationTools = [
@@ -436,13 +840,23 @@ export const optimizationTools = [
436
840
  applyOptimizationTool,
437
841
  getOptimizationInsightsTool,
438
842
  dismissOptimizationTool,
843
+ republishContentTool,
844
+ toggleContentMonitoringTool,
845
+ getMonitoringStatusTool,
439
846
  ];
847
+ // Every executor is wrapped with withAudit so each invocation writes an
848
+ // mcpToolInvocations row (SOC 2 audit trail). withAudit is fire-and-forget:
849
+ // ingest POST never awaits from the tool call and never throws into the
850
+ // executor's return path — Sentry-log style only (S9).
440
851
  export const optimizationExecutors = {
441
- list_optimizations: executeListOptimizations,
442
- start_optimization: executeStartOptimization,
443
- get_optimization: executeGetOptimization,
444
- apply_optimization: executeApplyOptimization,
445
- get_optimization_insights: executeGetOptimizationInsights,
446
- dismiss_optimization: executeDismissOptimization,
852
+ list_optimizations: withAudit("list_optimizations", executeListOptimizations),
853
+ start_optimization: withAudit("start_optimization", executeStartOptimization),
854
+ get_optimization: withAudit("get_optimization", executeGetOptimization),
855
+ apply_optimization: withAudit("apply_optimization", executeApplyOptimization),
856
+ get_optimization_insights: withAudit("get_optimization_insights", executeGetOptimizationInsights),
857
+ dismiss_optimization: withAudit("dismiss_optimization", executeDismissOptimization),
858
+ republish_content: withAudit("republish_content", executeRepublishContent),
859
+ toggle_content_monitoring: withAudit("toggle_content_monitoring", executeToggleContentMonitoring),
860
+ get_monitoring_status: withAudit("get_monitoring_status", executeGetMonitoringStatus),
447
861
  };
448
862
  //# sourceMappingURL=optimizations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"optimizations.js","sourceRoot":"","sources":["../../src/tools/optimizations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"optimizations.js","sourceRoot":"","sources":["../../src/tools/optimizations.ts"],"names":[],"mappings":"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"}