@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.
- package/dist/formatter.d.ts +1 -1
- package/dist/formatter.d.ts.map +1 -1
- package/dist/formatter.js +1 -1
- package/dist/formatter.js.map +1 -1
- package/dist/lib/mcp-audit.d.ts +3 -0
- package/dist/lib/mcp-audit.d.ts.map +1 -0
- package/dist/lib/mcp-audit.js +95 -0
- package/dist/lib/mcp-audit.js.map +1 -0
- package/dist/mcpb-bundle.js +30072 -0
- package/dist/prompts/content-pipeline.d.ts.map +1 -1
- package/dist/prompts/content-pipeline.js +10 -18
- package/dist/prompts/content-pipeline.js.map +1 -1
- package/dist/prompts/create-seo-article.d.ts.map +1 -1
- package/dist/prompts/create-seo-article.js +17 -42
- package/dist/prompts/create-seo-article.js.map +1 -1
- package/dist/prompts/keyword-research.d.ts.map +1 -1
- package/dist/prompts/keyword-research.js +20 -31
- package/dist/prompts/keyword-research.js.map +1 -1
- package/dist/resources/briefs.d.ts.map +1 -1
- package/dist/resources/briefs.js +12 -6
- package/dist/resources/briefs.js.map +1 -1
- package/dist/tools/ai-visibility.d.ts.map +1 -1
- package/dist/tools/ai-visibility.js +67 -12
- package/dist/tools/ai-visibility.js.map +1 -1
- package/dist/tools/analytics.d.ts.map +1 -1
- package/dist/tools/analytics.js +9 -4
- package/dist/tools/analytics.js.map +1 -1
- package/dist/tools/audits.d.ts +8 -5
- package/dist/tools/audits.d.ts.map +1 -1
- package/dist/tools/audits.js +112 -20
- package/dist/tools/audits.js.map +1 -1
- package/dist/tools/briefs.d.ts +40 -145
- package/dist/tools/briefs.d.ts.map +1 -1
- package/dist/tools/briefs.js +153 -163
- package/dist/tools/briefs.js.map +1 -1
- package/dist/tools/cms-posts.d.ts +7 -0
- package/dist/tools/cms-posts.d.ts.map +1 -0
- package/dist/tools/cms-posts.js +499 -0
- package/dist/tools/cms-posts.js.map +1 -0
- package/dist/tools/content.d.ts +37 -6
- package/dist/tools/content.d.ts.map +1 -1
- package/dist/tools/content.js +362 -32
- package/dist/tools/content.js.map +1 -1
- package/dist/tools/discover.js +3 -3
- package/dist/tools/discover.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +5 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/optimizations.d.ts +6 -0
- package/dist/tools/optimizations.d.ts.map +1 -1
- package/dist/tools/optimizations.js +440 -26
- package/dist/tools/optimizations.js.map +1 -1
- package/dist/tools/publish.d.ts +3 -3
- package/dist/tools/publish.js +6 -6
- package/dist/tools/publish.js.map +1 -1
- package/dist/tools/research.d.ts +18 -6
- package/dist/tools/research.d.ts.map +1 -1
- package/dist/tools/research.js +210 -19
- package/dist/tools/research.js.map +1 -1
- package/dist/tools/rules.d.ts +76 -0
- package/dist/tools/rules.d.ts.map +1 -1
- package/dist/tools/rules.js +355 -12
- package/dist/tools/rules.js.map +1 -1
- package/dist/tools/serp.d.ts.map +1 -1
- package/dist/tools/serp.js +30 -18
- package/dist/tools/serp.js.map +1 -1
- package/dist/tools/site-health.js +10 -10
- package/dist/tools/site-health.js.map +1 -1
- package/dist/tools/templates.js +5 -5
- package/dist/tools/templates.js.map +1 -1
- package/dist/tools/webhooks.d.ts.map +1 -1
- package/dist/tools/webhooks.js +24 -3
- package/dist/tools/webhooks.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +8 -11
- 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 {
|
|
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
|
-
|
|
90
|
-
|
|
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.
|
|
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: "
|
|
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 {
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
255
|
-
markdown: `##
|
|
256
|
-
|
|
257
|
-
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:
|
|
261
|
-
})}\n\
|
|
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
|
|
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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"}
|