@frase/mcp-server 0.1.5 → 0.1.7

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.
@@ -0,0 +1,453 @@
1
+ /**
2
+ * Competitive Analysis tools
3
+ *
4
+ * Analyze pages against competitors to find optimization opportunities
5
+ */
6
+ import { z } from "zod";
7
+ import { CACHE_TTL } from "../cache.js";
8
+ import { formatTable, formatStatus, formatDate, formatPagination, formatKeyValue, } from "../formatter.js";
9
+ // ============================================
10
+ // list_competitive_analyses
11
+ // ============================================
12
+ const listCompetitiveAnalysesInputSchema = z.object({
13
+ page: z.number().min(1).optional().default(1),
14
+ page_size: z.number().min(1).max(100).optional().default(20),
15
+ status: z
16
+ .enum(["pending", "crawling_page", "fetching_rankings", "analyzing_competitors", "generating_report", "ready", "failed"])
17
+ .optional(),
18
+ site_id: z.string().optional(),
19
+ });
20
+ export const listCompetitiveAnalysesTool = {
21
+ name: "list_competitive_analyses",
22
+ description: "List competitive page analyses. Each analysis compares your page against competitors to find content gaps and optimization opportunities.",
23
+ inputSchema: {
24
+ type: "object",
25
+ properties: {
26
+ page: {
27
+ type: "number",
28
+ description: "Page number (default: 1)",
29
+ },
30
+ page_size: {
31
+ type: "number",
32
+ description: "Items per page, max 100 (default: 20)",
33
+ },
34
+ status: {
35
+ type: "string",
36
+ enum: ["pending", "crawling_page", "fetching_rankings", "analyzing_competitors", "generating_report", "ready", "failed"],
37
+ description: "Filter by analysis status",
38
+ },
39
+ site_id: {
40
+ type: "string",
41
+ description: "Filter by site ID",
42
+ },
43
+ },
44
+ },
45
+ };
46
+ export async function executeListCompetitiveAnalyses(input, context) {
47
+ const parsed = listCompetitiveAnalysesInputSchema.safeParse(input || {});
48
+ if (!parsed.success) {
49
+ return {
50
+ success: false,
51
+ markdown: `**Error:** Invalid input - ${parsed.error.message}`,
52
+ };
53
+ }
54
+ const { page, page_size, status, site_id } = parsed.data;
55
+ try {
56
+ const params = { page, page_size };
57
+ if (status)
58
+ params.status = status;
59
+ if (site_id)
60
+ params.site_id = site_id;
61
+ const response = await context.client.get("/competitive-analysis", params, CACHE_TTL.lists);
62
+ const analyses = Array.isArray(response.data) ? response.data : [];
63
+ const headers = ["ID", "URL", "Status", "Score", "Created"];
64
+ const rows = analyses.map((a) => [
65
+ a.id,
66
+ a.url.length > 40 ? a.url.slice(0, 40) + "..." : a.url,
67
+ formatStatus(a.status),
68
+ a.opportunity_score !== null ? `${a.opportunity_score}/100` : "-",
69
+ formatDate(a.created_at),
70
+ ]);
71
+ const table = formatTable(headers, rows);
72
+ const pagination = response.pagination ? formatPagination(response.pagination) : "";
73
+ return {
74
+ success: true,
75
+ markdown: `## Competitive Analyses (Page ${page})\n\n${table}${pagination}`,
76
+ data: response,
77
+ };
78
+ }
79
+ catch (error) {
80
+ const message = error instanceof Error ? error.message : "Unknown error";
81
+ return {
82
+ success: false,
83
+ markdown: `**Error:** Failed to list competitive analyses - ${message}`,
84
+ };
85
+ }
86
+ }
87
+ // ============================================
88
+ // start_competitive_analysis
89
+ // ============================================
90
+ const startCompetitiveAnalysisInputSchema = z.object({
91
+ url: z.string().url(),
92
+ competitor_urls: z.array(z.string().url()).max(3).optional(),
93
+ site_id: z.string().optional(),
94
+ location_name: z.string().optional(),
95
+ industry: z.string().optional(),
96
+ });
97
+ export const startCompetitiveAnalysisTool = {
98
+ name: "start_competitive_analysis",
99
+ description: "Start a new competitive page analysis. Analyzes your page against competitors to find content gaps, missing topics, and optimization opportunities. Optionally provide up to 3 competitor URLs for head-to-head comparison. Add location and industry context for localized SERP results and more targeted analysis.",
100
+ inputSchema: {
101
+ type: "object",
102
+ properties: {
103
+ url: {
104
+ type: "string",
105
+ description: "The URL of the page to analyze (required)",
106
+ },
107
+ competitor_urls: {
108
+ type: "array",
109
+ items: { type: "string" },
110
+ description: "Optional array of up to 3 competitor URLs for direct comparison",
111
+ },
112
+ site_id: {
113
+ type: "string",
114
+ description: "Optional site ID if analyzing a page from a tracked site",
115
+ },
116
+ location_name: {
117
+ type: "string",
118
+ description: "Exact DataForSEO location name for localized SERP results (e.g., 'Birmingham,Alabama,United States', 'London,England,United Kingdom')",
119
+ },
120
+ industry: {
121
+ type: "string",
122
+ description: "Industry context for more targeted analysis (e.g., 'SaaS', 'E-commerce', 'Healthcare')",
123
+ },
124
+ },
125
+ required: ["url"],
126
+ },
127
+ };
128
+ export async function executeStartCompetitiveAnalysis(input, context) {
129
+ const parsed = startCompetitiveAnalysisInputSchema.safeParse(input);
130
+ if (!parsed.success) {
131
+ return {
132
+ success: false,
133
+ markdown: `**Error:** Invalid input - ${parsed.error.message}`,
134
+ };
135
+ }
136
+ const { url, competitor_urls, site_id, location_name, industry } = parsed.data;
137
+ try {
138
+ const body = { url };
139
+ if (competitor_urls && competitor_urls.length > 0)
140
+ body.competitor_urls = competitor_urls;
141
+ if (site_id)
142
+ body.site_id = site_id;
143
+ if (location_name)
144
+ body.location_name = location_name;
145
+ if (industry)
146
+ body.industry = industry;
147
+ const response = await context.client.post("/competitive-analysis", body);
148
+ const analysis = response.data;
149
+ const details = formatKeyValue({
150
+ id: analysis.id,
151
+ url: analysis.url,
152
+ status: analysis.status,
153
+ });
154
+ return {
155
+ success: true,
156
+ markdown: `## Competitive Analysis Started\n\n${details}\n\n**Note:** The analysis is now processing. Use \`get_competitive_analysis\` with id \`${analysis.id}\` to check progress and see results when ready.`,
157
+ data: response,
158
+ };
159
+ }
160
+ catch (error) {
161
+ const message = error instanceof Error ? error.message : "Unknown error";
162
+ return {
163
+ success: false,
164
+ markdown: `**Error:** Failed to start competitive analysis - ${message}`,
165
+ };
166
+ }
167
+ }
168
+ // ============================================
169
+ // get_competitive_analysis
170
+ // ============================================
171
+ const getCompetitiveAnalysisInputSchema = z.object({
172
+ id: z.string().min(1),
173
+ });
174
+ export const getCompetitiveAnalysisTool = {
175
+ name: "get_competitive_analysis",
176
+ description: "Get details of a competitive analysis, including rankings, competitor data, gap analysis, and opportunity score.",
177
+ inputSchema: {
178
+ type: "object",
179
+ properties: {
180
+ id: {
181
+ type: "string",
182
+ description: "The competitive analysis ID (required)",
183
+ },
184
+ },
185
+ required: ["id"],
186
+ },
187
+ };
188
+ export async function executeGetCompetitiveAnalysis(input, context) {
189
+ const parsed = getCompetitiveAnalysisInputSchema.safeParse(input);
190
+ if (!parsed.success) {
191
+ return {
192
+ success: false,
193
+ markdown: `**Error:** Invalid input - ${parsed.error.message}`,
194
+ };
195
+ }
196
+ const { id } = parsed.data;
197
+ try {
198
+ const response = await context.client.get(`/competitive-analysis/${id}`, {}, CACHE_TTL.resources);
199
+ const a = response.data;
200
+ let markdown = `## Competitive Analysis: ${a.url}\n\n`;
201
+ markdown += formatKeyValue({
202
+ id: a.id,
203
+ status: formatStatus(a.status),
204
+ opportunity_score: a.opportunity_score !== null ? `${a.opportunity_score}/100` : "Pending",
205
+ created: formatDate(a.created_at),
206
+ completed: a.completed_at ? formatDate(a.completed_at) : "In progress",
207
+ });
208
+ // Rankings
209
+ if (a.ranking_queries && a.ranking_queries.length > 0) {
210
+ markdown += "\n\n### Top Rankings\n\n";
211
+ const rankHeaders = ["Query", "Position", "Clicks", "Impressions", "CTR"];
212
+ const rankRows = a.ranking_queries.slice(0, 10).map((q) => [
213
+ q.query,
214
+ q.position.toFixed(1),
215
+ q.clicks.toString(),
216
+ q.impressions.toString(),
217
+ `${(q.ctr * 100).toFixed(1)}%`,
218
+ ]);
219
+ markdown += formatTable(rankHeaders, rankRows);
220
+ }
221
+ // Competitors
222
+ if (a.competitor_analysis?.competitors && a.competitor_analysis.competitors.length > 0) {
223
+ markdown += "\n\n### Competitors\n\n";
224
+ const compHeaders = ["URL", "Domain", "Word Count"];
225
+ const compRows = a.competitor_analysis.competitors.map((c) => [
226
+ c.url.length > 50 ? c.url.slice(0, 50) + "..." : c.url,
227
+ c.domain,
228
+ c.wordCount.toString(),
229
+ ]);
230
+ markdown += formatTable(compHeaders, compRows);
231
+ }
232
+ // Gap Analysis
233
+ if (a.gap_analysis) {
234
+ markdown += "\n\n### Gap Analysis\n\n";
235
+ if (a.gap_analysis.missingTopics && a.gap_analysis.missingTopics.length > 0) {
236
+ markdown += "**Missing Topics:**\n";
237
+ for (const topic of a.gap_analysis.missingTopics) {
238
+ markdown += `- ${topic.topic} (${topic.priority} priority)\n`;
239
+ }
240
+ markdown += "\n";
241
+ }
242
+ if (a.gap_analysis.thinSections && a.gap_analysis.thinSections.length > 0) {
243
+ markdown += "**Thin Sections:**\n";
244
+ for (const section of a.gap_analysis.thinSections) {
245
+ markdown += `- ${section}\n`;
246
+ }
247
+ markdown += "\n";
248
+ }
249
+ if (a.gap_analysis.missingQuestions && a.gap_analysis.missingQuestions.length > 0) {
250
+ markdown += "**Missing Questions:**\n";
251
+ for (const q of a.gap_analysis.missingQuestions) {
252
+ markdown += `- ${q}\n`;
253
+ }
254
+ markdown += "\n";
255
+ }
256
+ if (a.gap_analysis.structuralGaps && a.gap_analysis.structuralGaps.length > 0) {
257
+ markdown += "**Structural Gaps:**\n";
258
+ for (const gap of a.gap_analysis.structuralGaps) {
259
+ markdown += `- ${gap}\n`;
260
+ }
261
+ }
262
+ }
263
+ if (a.status !== "ready" && a.status !== "failed") {
264
+ markdown += "\n\n_Analysis in progress. Check back soon for full results._";
265
+ }
266
+ if (a.generated_brief_id) {
267
+ markdown += `\n\n**Brief generated:** \`${a.generated_brief_id}\``;
268
+ }
269
+ return {
270
+ success: true,
271
+ markdown,
272
+ data: response,
273
+ };
274
+ }
275
+ catch (error) {
276
+ const message = error instanceof Error ? error.message : "Unknown error";
277
+ return {
278
+ success: false,
279
+ markdown: `**Error:** Failed to get competitive analysis - ${message}`,
280
+ };
281
+ }
282
+ }
283
+ // ============================================
284
+ // generate_brief_from_analysis
285
+ // ============================================
286
+ const generateBriefInputSchema = z.object({
287
+ id: z.string().min(1),
288
+ });
289
+ export const generateBriefFromAnalysisTool = {
290
+ name: "generate_brief_from_analysis",
291
+ description: "Generate an optimization brief from a completed competitive analysis. The brief includes missing topics, keyword targets, and structural recommendations.",
292
+ inputSchema: {
293
+ type: "object",
294
+ properties: {
295
+ id: {
296
+ type: "string",
297
+ description: "The competitive analysis ID (required, must be in 'ready' status)",
298
+ },
299
+ },
300
+ required: ["id"],
301
+ },
302
+ };
303
+ export async function executeGenerateBriefFromAnalysis(input, context) {
304
+ const parsed = generateBriefInputSchema.safeParse(input);
305
+ if (!parsed.success) {
306
+ return {
307
+ success: false,
308
+ markdown: `**Error:** Invalid input - ${parsed.error.message}`,
309
+ };
310
+ }
311
+ const { id } = parsed.data;
312
+ try {
313
+ const response = await context.client.post(`/competitive-analysis/${id}/generate-brief`, {});
314
+ const result = response.data;
315
+ return {
316
+ success: true,
317
+ markdown: `## Brief Generated\n\n${formatKeyValue({
318
+ "Brief ID": result.brief_id,
319
+ "Analysis ID": result.analysis_id,
320
+ Topic: result.topic,
321
+ })}\n\n**Note:** Use \`get_brief\` with id \`${result.brief_id}\` to view the full brief.`,
322
+ data: response,
323
+ };
324
+ }
325
+ catch (error) {
326
+ const message = error instanceof Error ? error.message : "Unknown error";
327
+ return {
328
+ success: false,
329
+ markdown: `**Error:** Failed to generate brief - ${message}`,
330
+ };
331
+ }
332
+ }
333
+ // ============================================
334
+ // delete_competitive_analysis
335
+ // ============================================
336
+ const deleteCompetitiveAnalysisInputSchema = z.object({
337
+ id: z.string().min(1),
338
+ });
339
+ export const deleteCompetitiveAnalysisTool = {
340
+ name: "delete_competitive_analysis",
341
+ description: "Delete a competitive analysis.",
342
+ inputSchema: {
343
+ type: "object",
344
+ properties: {
345
+ id: {
346
+ type: "string",
347
+ description: "The competitive analysis ID (required)",
348
+ },
349
+ },
350
+ required: ["id"],
351
+ },
352
+ };
353
+ export async function executeDeleteCompetitiveAnalysis(input, context) {
354
+ const parsed = deleteCompetitiveAnalysisInputSchema.safeParse(input);
355
+ if (!parsed.success) {
356
+ return {
357
+ success: false,
358
+ markdown: `**Error:** Invalid input - ${parsed.error.message}`,
359
+ };
360
+ }
361
+ const { id } = parsed.data;
362
+ try {
363
+ await context.client.delete(`/competitive-analysis/${id}`);
364
+ return {
365
+ success: true,
366
+ markdown: `## Competitive Analysis Deleted\n\n${formatKeyValue({ ID: id, Status: "Deleted" })}`,
367
+ };
368
+ }
369
+ catch (error) {
370
+ const message = error instanceof Error ? error.message : "Unknown error";
371
+ return {
372
+ success: false,
373
+ markdown: `**Error:** Failed to delete competitive analysis - ${message}`,
374
+ };
375
+ }
376
+ }
377
+ const searchLocationsInputSchema = z.object({
378
+ q: z.string().min(2),
379
+ });
380
+ export const searchLocationsTool = {
381
+ name: "search_locations",
382
+ description: "Search for valid DataForSEO location names for use with start_competitive_analysis. Type a city or region name to find the exact location_name value. Tip: append a 2-letter country code after a comma to narrow results (e.g., 'Birm, US').",
383
+ inputSchema: {
384
+ type: "object",
385
+ properties: {
386
+ q: {
387
+ type: "string",
388
+ description: "Search query, at least 2 characters (e.g., 'Birmingham', 'London, GB', 'Abuja, NG')",
389
+ },
390
+ },
391
+ required: ["q"],
392
+ },
393
+ };
394
+ export async function executeSearchLocations(input, context) {
395
+ const parsed = searchLocationsInputSchema.safeParse(input);
396
+ if (!parsed.success) {
397
+ return {
398
+ success: false,
399
+ markdown: `**Error:** Invalid input - query must be at least 2 characters`,
400
+ };
401
+ }
402
+ const { q } = parsed.data;
403
+ try {
404
+ const response = await context.client.get("/competitive-analysis/locations", { q }, CACHE_TTL.resources);
405
+ const locations = response.data?.locations || [];
406
+ if (locations.length === 0) {
407
+ return {
408
+ success: true,
409
+ markdown: `## Location Search: "${q}"\n\nNo matching locations found. Try a different search term or add a country code (e.g., "London, GB").`,
410
+ data: response,
411
+ };
412
+ }
413
+ const headers = ["Location Name", "Type", "Code"];
414
+ const rows = locations.map((loc) => [
415
+ loc.location_name,
416
+ loc.location_type,
417
+ loc.location_code.toString(),
418
+ ]);
419
+ const table = formatTable(headers, rows);
420
+ return {
421
+ success: true,
422
+ markdown: `## Location Search: "${q}"\n\n${table}\n\n**Usage:** Pass the exact \`location_name\` value to \`start_competitive_analysis\`.`,
423
+ data: response,
424
+ };
425
+ }
426
+ catch (error) {
427
+ const message = error instanceof Error ? error.message : "Unknown error";
428
+ return {
429
+ success: false,
430
+ markdown: `**Error:** Failed to search locations - ${message}`,
431
+ };
432
+ }
433
+ }
434
+ // ============================================
435
+ // Export all
436
+ // ============================================
437
+ export const competitiveAnalysisTools = [
438
+ listCompetitiveAnalysesTool,
439
+ startCompetitiveAnalysisTool,
440
+ getCompetitiveAnalysisTool,
441
+ generateBriefFromAnalysisTool,
442
+ deleteCompetitiveAnalysisTool,
443
+ searchLocationsTool,
444
+ ];
445
+ export const competitiveAnalysisExecutors = {
446
+ list_competitive_analyses: executeListCompetitiveAnalyses,
447
+ start_competitive_analysis: executeStartCompetitiveAnalysis,
448
+ get_competitive_analysis: executeGetCompetitiveAnalysis,
449
+ generate_brief_from_analysis: executeGenerateBriefFromAnalysis,
450
+ delete_competitive_analysis: executeDeleteCompetitiveAnalysis,
451
+ search_locations: executeSearchLocations,
452
+ };
453
+ //# sourceMappingURL=competitive-analysis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"competitive-analysis.js","sourceRoot":"","sources":["../../src/tools/competitive-analysis.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAqB9E;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,iBAAiB,EAiCxC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CACjC,MAAM,EACN,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,CAkC9D,CAAC;AAEF;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAEzE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,GACX,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAE7E;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAsB9E;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,iBAAiB,EAoCxC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CACjC,MAAM,EACN,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,CAqC9D,CAAC;AAEF;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAEzE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,GACX,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAE7E;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC"}
@@ -18,6 +18,7 @@ import { aiVisibilityTools, aiVisibilityExecutors } from "./ai-visibility.js";
18
18
  import { analyticsTools, analyticsExecutors } from "./analytics.js";
19
19
  import { optimizationTools, optimizationExecutors } from "./optimizations.js";
20
20
  import { webhookTools, webhookExecutors } from "./webhooks.js";
21
+ import { competitiveAnalysisTools, competitiveAnalysisExecutors } from "./competitive-analysis.js";
21
22
  // ============================================
22
23
  // Tool Registry
23
24
  // ============================================
@@ -47,6 +48,8 @@ export const ALL_TOOLS = [
47
48
  ...optimizationTools,
48
49
  // Webhooks (Phase 3)
49
50
  ...webhookTools,
51
+ // Competitive Analysis (Phase 3)
52
+ ...competitiveAnalysisTools,
50
53
  ];
51
54
  /**
52
55
  * Tool executor mapping
@@ -74,6 +77,8 @@ export const TOOL_EXECUTORS = {
74
77
  ...optimizationExecutors,
75
78
  // Webhooks (Phase 3)
76
79
  ...webhookExecutors,
80
+ // Competitive Analysis (Phase 3)
81
+ ...competitiveAnalysisExecutors,
77
82
  };
78
83
  /**
79
84
  * Get tool definition by name
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,sBAAsB;AACtB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEnD,uBAAuB;AACvB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAE/D,+CAA+C;AAC/C,gBAAgB;AAChB,+CAA+C;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAwB;IAC5C,kBAAkB;IAClB,GAAG,SAAS;IAEZ,mBAAmB;IACnB,GAAG,UAAU;IAEb,oBAAoB;IACpB,GAAG,YAAY;IAEf,qBAAqB;IACrB,GAAG,aAAa;IAEhB,iBAAiB;IACjB,GAAG,QAAQ;IAEX,mBAAmB;IACnB,GAAG,UAAU;IAEb,iBAAiB;IACjB,GAAG,SAAS;IAEZ,0BAA0B;IAC1B,GAAG,iBAAiB;IAEpB,sBAAsB;IACtB,GAAG,cAAc;IAEjB,0BAA0B;IAC1B,GAAG,iBAAiB;IAEpB,qBAAqB;IACrB,GAAG,YAAY;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAGvB;IACF,kBAAkB;IAClB,GAAG,aAAa;IAEhB,mBAAmB;IACnB,GAAG,cAAc;IAEjB,oBAAoB;IACpB,GAAG,gBAAgB;IAEnB,qBAAqB;IACrB,GAAG,iBAAiB;IAEpB,iBAAiB;IACjB,GAAG,YAAY;IAEf,mBAAmB;IACnB,GAAG,cAAc;IAEjB,iBAAiB;IACjB,GAAG,aAAa;IAEhB,0BAA0B;IAC1B,GAAG,qBAAqB;IAExB,sBAAsB;IACtB,GAAG,kBAAkB;IAErB,0BAA0B;IAC1B,GAAG,qBAAqB;IAExB,qBAAqB;IACrB,GAAG,gBAAgB;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAY;IAEZ,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,SAAS,CAAC,MAAM,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,sBAAsB;AACtB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEnD,uBAAuB;AACvB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAEnG,+CAA+C;AAC/C,gBAAgB;AAChB,+CAA+C;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAwB;IAC5C,kBAAkB;IAClB,GAAG,SAAS;IAEZ,mBAAmB;IACnB,GAAG,UAAU;IAEb,oBAAoB;IACpB,GAAG,YAAY;IAEf,qBAAqB;IACrB,GAAG,aAAa;IAEhB,iBAAiB;IACjB,GAAG,QAAQ;IAEX,mBAAmB;IACnB,GAAG,UAAU;IAEb,iBAAiB;IACjB,GAAG,SAAS;IAEZ,0BAA0B;IAC1B,GAAG,iBAAiB;IAEpB,sBAAsB;IACtB,GAAG,cAAc;IAEjB,0BAA0B;IAC1B,GAAG,iBAAiB;IAEpB,qBAAqB;IACrB,GAAG,YAAY;IAEf,iCAAiC;IACjC,GAAG,wBAAwB;CAC5B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAGvB;IACF,kBAAkB;IAClB,GAAG,aAAa;IAEhB,mBAAmB;IACnB,GAAG,cAAc;IAEjB,oBAAoB;IACpB,GAAG,gBAAgB;IAEnB,qBAAqB;IACrB,GAAG,iBAAiB;IAEpB,iBAAiB;IACjB,GAAG,YAAY;IAEf,mBAAmB;IACnB,GAAG,cAAc;IAEjB,iBAAiB;IACjB,GAAG,aAAa;IAEhB,0BAA0B;IAC1B,GAAG,qBAAqB;IAExB,sBAAsB;IACtB,GAAG,kBAAkB;IAErB,0BAA0B;IAC1B,GAAG,qBAAqB;IAExB,qBAAqB;IACrB,GAAG,gBAAgB;IAEnB,iCAAiC;IACjC,GAAG,4BAA4B;CAChC,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAY;IAEZ,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,SAAS,CAAC,MAAM,CAAC;AAC1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"optimizations.d.ts","sourceRoot":"","sources":["../../src/tools/optimizations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,iBAAiB,EACjB,WAAW,EACX,UAAU,EAIX,MAAM,aAAa,CAAC;AAkDrB,eAAO,MAAM,qBAAqB,EAAE,iBAyBnC,CAAC;AAEF,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAgDrB;AAUD,eAAO,MAAM,qBAAqB,EAAE,iBAanC,CAAC;AAEF,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAoCrB;AAUD,eAAO,MAAM,mBAAmB,EAAE,iBAajC,CAAC;AAEF,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAyDrB;AAWD,eAAO,MAAM,qBAAqB,EAAE,iBAkBnC,CAAC;AAEF,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAsCrB;AAUD,eAAO,MAAM,2BAA2B,EAAE,iBAYzC,CAAC;AAEF,wBAAsB,8BAA8B,CAClD,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAqDrB;AAUD,eAAO,MAAM,uBAAuB,EAAE,iBAarC,CAAC;AAEF,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAmCrB;AAMD,eAAO,MAAM,iBAAiB,EAAE,iBAAiB,EAOhD,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CACxC,MAAM,EACN,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,CAQ9D,CAAC"}
1
+ {"version":3,"file":"optimizations.d.ts","sourceRoot":"","sources":["../../src/tools/optimizations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,iBAAiB,EACjB,WAAW,EACX,UAAU,EAIX,MAAM,aAAa,CAAC;AAkDrB,eAAO,MAAM,qBAAqB,EAAE,iBAyBnC,CAAC;AAEF,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAgDrB;AAUD,eAAO,MAAM,qBAAqB,EAAE,iBAanC,CAAC;AAEF,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAoCrB;AAUD,eAAO,MAAM,mBAAmB,EAAE,iBAajC,CAAC;AAEF,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAyDrB;AAWD,eAAO,MAAM,qBAAqB,EAAE,iBAiBnC,CAAC;AAEF,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAmCrB;AAUD,eAAO,MAAM,2BAA2B,EAAE,iBAYzC,CAAC;AAEF,wBAAsB,8BAA8B,CAClD,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAqDrB;AAUD,eAAO,MAAM,uBAAuB,EAAE,iBAarC,CAAC;AAEF,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAmCrB;AAMD,eAAO,MAAM,iBAAiB,EAAE,iBAAiB,EAOhD,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CACxC,MAAM,EACN,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,CAQ9D,CAAC"}
@@ -209,11 +209,11 @@ export async function executeGetOptimization(input, context) {
209
209
  // ============================================
210
210
  const applyOptimizationInputSchema = z.object({
211
211
  id: z.string().min(1),
212
- suggestion_ids: z.array(z.string()).optional(),
212
+ suggestion_id: z.string().min(1),
213
213
  });
214
214
  export const applyOptimizationTool = {
215
215
  name: "apply_optimization",
216
- description: "Apply optimization suggestions to the content. Optionally specify which suggestions to apply.",
216
+ description: "Apply a specific optimization suggestion to the content.",
217
217
  inputSchema: {
218
218
  type: "object",
219
219
  properties: {
@@ -221,13 +221,12 @@ export const applyOptimizationTool = {
221
221
  type: "string",
222
222
  description: "The optimization ID (required)",
223
223
  },
224
- suggestion_ids: {
225
- type: "array",
226
- items: { type: "string" },
227
- description: "Specific suggestion IDs to apply (optional, applies all if not specified)",
224
+ suggestion_id: {
225
+ type: "string",
226
+ description: "The suggestion ID to apply (required)",
228
227
  },
229
228
  },
230
- required: ["id"],
229
+ required: ["id", "suggestion_id"],
231
230
  },
232
231
  };
233
232
  export async function executeApplyOptimization(input, context) {
@@ -238,12 +237,9 @@ export async function executeApplyOptimization(input, context) {
238
237
  markdown: `**Error:** Invalid input - ${parsed.error.message}`,
239
238
  };
240
239
  }
241
- const { id, suggestion_ids } = parsed.data;
240
+ const { id, suggestion_id } = parsed.data;
242
241
  try {
243
- const body = {};
244
- if (suggestion_ids)
245
- body.suggestion_ids = suggestion_ids;
246
- const response = await context.client.post(`/optimizations/${id}/apply`, body);
242
+ const response = await context.client.post(`/optimizations/${id}/apply`, { suggestion_id });
247
243
  const opt = response.data;
248
244
  return {
249
245
  success: true,
@@ -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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"}