@frase/mcp-server 0.2.0 → 0.3.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.
- package/README.md +1 -0
- package/dist/api-client.d.ts +3 -90
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +2 -214
- package/dist/api-client.js.map +1 -1
- package/dist/cache.d.ts +2 -49
- package/dist/cache.d.ts.map +1 -1
- package/dist/cache.js +2 -94
- package/dist/cache.js.map +1 -1
- package/dist/cli/config-writer.d.ts.map +1 -1
- package/dist/cli/config-writer.js +52 -7
- package/dist/cli/config-writer.js.map +1 -1
- package/dist/config.d.ts +3 -14
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -28
- package/dist/config.js.map +1 -1
- package/dist/formatter.d.ts +2 -44
- package/dist/formatter.d.ts.map +1 -1
- package/dist/formatter.js +2 -142
- package/dist/formatter.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/prompts/cms-publishing.d.ts +16 -0
- package/dist/prompts/cms-publishing.d.ts.map +1 -0
- package/dist/prompts/cms-publishing.js +84 -0
- package/dist/prompts/cms-publishing.js.map +1 -0
- package/dist/prompts/competitive-intelligence.d.ts +16 -0
- package/dist/prompts/competitive-intelligence.d.ts.map +1 -0
- package/dist/prompts/competitive-intelligence.js +78 -0
- package/dist/prompts/competitive-intelligence.js.map +1 -0
- package/dist/prompts/content-governance.d.ts +16 -0
- package/dist/prompts/content-governance.d.ts.map +1 -0
- package/dist/prompts/content-governance.js +113 -0
- package/dist/prompts/content-governance.js.map +1 -0
- package/dist/prompts/geo-optimization.d.ts +17 -0
- package/dist/prompts/geo-optimization.d.ts.map +1 -0
- package/dist/prompts/geo-optimization.js +79 -0
- package/dist/prompts/geo-optimization.js.map +1 -0
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +15 -0
- package/dist/prompts/index.js.map +1 -1
- package/dist/resources/sites.d.ts.map +1 -1
- package/dist/resources/sites.js +5 -7
- package/dist/resources/sites.js.map +1 -1
- package/dist/tools/ai-visibility.d.ts.map +1 -1
- package/dist/tools/ai-visibility.js +131 -71
- package/dist/tools/ai-visibility.js.map +1 -1
- package/dist/tools/analytics.d.ts.map +1 -1
- package/dist/tools/analytics.js +96 -49
- package/dist/tools/analytics.js.map +1 -1
- package/dist/tools/atomization.d.ts +8 -0
- package/dist/tools/atomization.d.ts.map +1 -0
- package/dist/tools/atomization.js +172 -0
- package/dist/tools/atomization.js.map +1 -0
- package/dist/tools/audits.d.ts +15 -6
- package/dist/tools/audits.d.ts.map +1 -1
- package/dist/tools/audits.js +32 -10
- package/dist/tools/audits.js.map +1 -1
- package/dist/tools/briefs.d.ts +225 -5
- package/dist/tools/briefs.d.ts.map +1 -1
- package/dist/tools/briefs.js +412 -26
- package/dist/tools/briefs.js.map +1 -1
- package/dist/tools/clusters.d.ts +9 -0
- package/dist/tools/clusters.d.ts.map +1 -0
- package/dist/tools/clusters.js +166 -0
- package/dist/tools/clusters.js.map +1 -0
- package/dist/tools/cms-connections.d.ts +7 -0
- package/dist/tools/cms-connections.d.ts.map +1 -0
- package/dist/tools/cms-connections.js +96 -0
- package/dist/tools/cms-connections.js.map +1 -0
- package/dist/tools/competitive-analysis.js +2 -2
- package/dist/tools/competitive-analysis.js.map +1 -1
- package/dist/tools/content.d.ts +12 -2
- package/dist/tools/content.d.ts.map +1 -1
- package/dist/tools/content.js +170 -18
- package/dist/tools/content.js.map +1 -1
- package/dist/tools/discover.d.ts +15 -0
- package/dist/tools/discover.d.ts.map +1 -0
- package/dist/tools/discover.js +180 -0
- package/dist/tools/discover.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +37 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/jobs.d.ts +2 -2
- package/dist/tools/opportunities.d.ts +11 -0
- package/dist/tools/opportunities.d.ts.map +1 -0
- package/dist/tools/opportunities.js +122 -0
- package/dist/tools/opportunities.js.map +1 -0
- package/dist/tools/optimizations.d.ts.map +1 -1
- package/dist/tools/optimizations.js +93 -39
- package/dist/tools/optimizations.js.map +1 -1
- package/dist/tools/playbooks.d.ts.map +1 -1
- package/dist/tools/playbooks.js +34 -5
- package/dist/tools/playbooks.js.map +1 -1
- package/dist/tools/rules.d.ts +16 -1
- package/dist/tools/rules.d.ts.map +1 -1
- package/dist/tools/rules.js +49 -14
- package/dist/tools/rules.js.map +1 -1
- package/dist/tools/site-health.d.ts +7 -0
- package/dist/tools/site-health.d.ts.map +1 -0
- package/dist/tools/site-health.js +120 -0
- package/dist/tools/site-health.js.map +1 -0
- package/dist/tools/sites.d.ts.map +1 -1
- package/dist/tools/sites.js +1 -2
- package/dist/tools/sites.js.map +1 -1
- package/dist/tools/templates.d.ts +17 -0
- package/dist/tools/templates.d.ts.map +1 -0
- package/dist/tools/templates.js +521 -0
- package/dist/tools/templates.js.map +1 -0
- package/dist/tools/webhooks.d.ts.map +1 -1
- package/dist/tools/webhooks.js +44 -24
- package/dist/tools/webhooks.js.map +1 -1
- package/dist/types.d.ts +2 -181
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/package.json +26 -7
- package/server.json +4 -4
package/dist/tools/content.js
CHANGED
|
@@ -1,6 +1,47 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Content tools
|
|
3
3
|
*/
|
|
4
|
+
/**
|
|
5
|
+
* Convert HTML body to readable markdown-like text.
|
|
6
|
+
* Preserves headings, paragraphs, lists, and links while stripping raw HTML.
|
|
7
|
+
* Lightweight — no external dependency needed.
|
|
8
|
+
*/
|
|
9
|
+
function htmlToReadableText(html) {
|
|
10
|
+
let text = html;
|
|
11
|
+
// Convert headings to markdown
|
|
12
|
+
text = text.replace(/<h([1-6])[^>]*>(.*?)<\/h[1-6]>/gi, (_m, level, content) => {
|
|
13
|
+
return "\n" + "#".repeat(parseInt(level)) + " " + content.trim() + "\n";
|
|
14
|
+
});
|
|
15
|
+
// Convert <br> to newlines
|
|
16
|
+
text = text.replace(/<br\s*\/?>/gi, "\n");
|
|
17
|
+
// Convert <p> to double newlines
|
|
18
|
+
text = text.replace(/<\/p>/gi, "\n\n");
|
|
19
|
+
text = text.replace(/<p[^>]*>/gi, "");
|
|
20
|
+
// Convert list items
|
|
21
|
+
text = text.replace(/<li[^>]*>/gi, "- ");
|
|
22
|
+
text = text.replace(/<\/li>/gi, "\n");
|
|
23
|
+
// Convert <a> to markdown links
|
|
24
|
+
text = text.replace(/<a[^>]*href="([^"]*)"[^>]*>(.*?)<\/a>/gi, "[$2]($1)");
|
|
25
|
+
// Convert bold/italic
|
|
26
|
+
text = text.replace(/<(strong|b)[^>]*>(.*?)<\/(strong|b)>/gi, "**$2**");
|
|
27
|
+
text = text.replace(/<(em|i)[^>]*>(.*?)<\/(em|i)>/gi, "*$2*");
|
|
28
|
+
// Convert blockquotes
|
|
29
|
+
text = text.replace(/<blockquote[^>]*>(.*?)<\/blockquote>/gis, "> $1\n");
|
|
30
|
+
// Add spacing around div/section blocks to prevent text running together
|
|
31
|
+
text = text.replace(/<\/(div|section|article|aside|header|footer|figure|figcaption)>/gi, "\n");
|
|
32
|
+
text = text.replace(/<(div|section|article|aside|header|footer|figure|figcaption)[^>]*>/gi, "\n");
|
|
33
|
+
// Strip remaining HTML tags
|
|
34
|
+
text = text.replace(/<[^>]+>/g, "");
|
|
35
|
+
// Decode common HTML entities
|
|
36
|
+
text = text.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">")
|
|
37
|
+
.replace(/"/g, '"').replace(/'/g, "'").replace(/ /g, " ")
|
|
38
|
+
.replace(/'/g, "'").replace(/—/g, "—").replace(/–/g, "–")
|
|
39
|
+
.replace(/…/g, "…").replace(/’/g, "'").replace(/‘/g, "'")
|
|
40
|
+
.replace(/”/g, "\u201D").replace(/“/g, "\u201C");
|
|
41
|
+
// Clean up excessive whitespace
|
|
42
|
+
text = text.replace(/\n{3,}/g, "\n\n").trim();
|
|
43
|
+
return text;
|
|
44
|
+
}
|
|
4
45
|
import { z } from "zod";
|
|
5
46
|
import { CACHE_TTL } from "../cache.js";
|
|
6
47
|
import { formatTable, formatStatus, formatDate, formatPagination, formatKeyValue, formatWordCount, truncate, } from "../formatter.js";
|
|
@@ -124,6 +165,9 @@ export async function executeGetContent(input, context) {
|
|
|
124
165
|
Type: content.type,
|
|
125
166
|
Slug: content.slug,
|
|
126
167
|
Keywords: content.target_keywords?.join(", ") || "None",
|
|
168
|
+
"SEO Score": content.seo_score != null ? `${content.seo_score}/100` : null,
|
|
169
|
+
"GEO Score": content.geo_score != null ? `${content.geo_score}/100` : null,
|
|
170
|
+
"E-E-A-T Score": content.eeat_score != null ? `${content.eeat_score}/100` : null,
|
|
127
171
|
Created: formatDate(content.created_at),
|
|
128
172
|
Updated: content.updated_at ? formatDate(content.updated_at) : null,
|
|
129
173
|
Published: content.published_at ? formatDate(content.published_at) : null,
|
|
@@ -138,16 +182,17 @@ export async function executeGetContent(input, context) {
|
|
|
138
182
|
markdown += `- **Description:** ${content.meta_description}\n`;
|
|
139
183
|
}
|
|
140
184
|
}
|
|
141
|
-
// Content body
|
|
185
|
+
// Content body — convert HTML to readable text to prevent content loss
|
|
142
186
|
if (include_body && content.body) {
|
|
143
187
|
markdown += `\n\n### Content Body\n\n`;
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
markdown +=
|
|
188
|
+
const readableBody = htmlToReadableText(content.body);
|
|
189
|
+
// Truncate extremely long content (50K chars ≈ 8K+ words)
|
|
190
|
+
if (readableBody.length > 50000) {
|
|
191
|
+
markdown += readableBody.slice(0, 50000);
|
|
192
|
+
markdown += `\n\n*... (truncated at 50,000 characters, ${content.word_count || 'unknown'} words total)*`;
|
|
148
193
|
}
|
|
149
194
|
else {
|
|
150
|
-
markdown +=
|
|
195
|
+
markdown += readableBody;
|
|
151
196
|
}
|
|
152
197
|
}
|
|
153
198
|
return {
|
|
@@ -280,8 +325,27 @@ export async function executeUpdateContent(input, context) {
|
|
|
280
325
|
};
|
|
281
326
|
}
|
|
282
327
|
const { id, ...updates } = parsed.data;
|
|
328
|
+
// Filter out undefined values
|
|
329
|
+
const fieldsToUpdate = Object.fromEntries(Object.entries(updates).filter(([, v]) => v !== undefined));
|
|
330
|
+
if (Object.keys(fieldsToUpdate).length === 0) {
|
|
331
|
+
return {
|
|
332
|
+
success: false,
|
|
333
|
+
markdown: "**Error:** No update fields provided. Specify at least one of: title, body, status, meta_title, meta_description.",
|
|
334
|
+
};
|
|
335
|
+
}
|
|
283
336
|
try {
|
|
284
|
-
|
|
337
|
+
// Fetch current content to preserve fields not being updated (PUT replaces all fields)
|
|
338
|
+
const current = await context.client.get(`/content/${id}`, undefined, 0 // no cache — need fresh data
|
|
339
|
+
);
|
|
340
|
+
const mergedBody = {
|
|
341
|
+
title: current.data.title,
|
|
342
|
+
body: current.data.body,
|
|
343
|
+
status: current.data.status,
|
|
344
|
+
meta_title: current.data.meta_title,
|
|
345
|
+
meta_description: current.data.meta_description,
|
|
346
|
+
...fieldsToUpdate,
|
|
347
|
+
};
|
|
348
|
+
const response = await context.client.put(`/content/${id}`, mergedBody);
|
|
285
349
|
const content = response.data;
|
|
286
350
|
return {
|
|
287
351
|
success: true,
|
|
@@ -380,17 +444,31 @@ export async function executeGetContentStatus(input, context) {
|
|
|
380
444
|
let markdown = `## Content Status\n\n`;
|
|
381
445
|
markdown += formatKeyValue({
|
|
382
446
|
ID: status.id,
|
|
447
|
+
Title: status.title,
|
|
383
448
|
Status: formatStatus(status.status),
|
|
384
|
-
|
|
449
|
+
"Brief ID": status.brief_id,
|
|
450
|
+
"Brief Topic": status.brief_topic,
|
|
451
|
+
});
|
|
452
|
+
markdown += `\n\n### Generation State\n\n`;
|
|
453
|
+
markdown += formatKeyValue({
|
|
454
|
+
Generating: status.generation_state.is_generating ? "Yes" : "No",
|
|
455
|
+
Draft: status.generation_state.is_draft ? "Yes" : "No",
|
|
456
|
+
"In Review": status.generation_state.is_review ? "Yes" : "No",
|
|
457
|
+
Published: status.generation_state.is_published ? "Yes" : "No",
|
|
458
|
+
"Est. Time Remaining": status.generation_state.estimated_seconds_remaining !== null
|
|
459
|
+
? `${status.generation_state.estimated_seconds_remaining}s`
|
|
460
|
+
: "N/A",
|
|
461
|
+
});
|
|
462
|
+
markdown += `\n\n### Metrics\n\n`;
|
|
463
|
+
markdown += formatKeyValue({
|
|
464
|
+
"Word Count": formatWordCount(status.metrics.word_count),
|
|
465
|
+
});
|
|
466
|
+
markdown += `\n\n### Timestamps\n\n`;
|
|
467
|
+
markdown += formatKeyValue({
|
|
468
|
+
Created: formatDate(status.timestamps.created_at),
|
|
469
|
+
Updated: status.timestamps.updated_at ? formatDate(status.timestamps.updated_at) : null,
|
|
470
|
+
Published: status.timestamps.published_at ? formatDate(status.timestamps.published_at) : null,
|
|
385
471
|
});
|
|
386
|
-
if (status.progress) {
|
|
387
|
-
markdown += `\n\n### Progress\n\n`;
|
|
388
|
-
markdown += formatKeyValue({
|
|
389
|
-
"Current Section": status.progress.current_section || "N/A",
|
|
390
|
-
"Sections Completed": `${status.progress.sections_completed}/${status.progress.total_sections}`,
|
|
391
|
-
"Percent Complete": `${status.progress.percent_complete}%`,
|
|
392
|
-
});
|
|
393
|
-
}
|
|
394
472
|
return {
|
|
395
473
|
success: true,
|
|
396
474
|
markdown,
|
|
@@ -480,7 +558,7 @@ const regenerateContentInputSchema = z.object({
|
|
|
480
558
|
});
|
|
481
559
|
export const regenerateContentTool = {
|
|
482
560
|
name: "regenerate_content",
|
|
483
|
-
description: "Regenerate or improve existing content. Without instructions, the content is fully regenerated from its brief. With instructions, the content is rewritten using AI following those instructions. Both operations run asynchronously.",
|
|
561
|
+
description: "Regenerate or improve existing content. Without instructions, the content is fully regenerated from its brief. With instructions, the content is rewritten using AI following those instructions. Both operations run asynchronously — use get_content_status to track progress. Note: AI improvements may change the word count; include 'maintain the current word count' in instructions if length preservation is important.",
|
|
484
562
|
inputSchema: {
|
|
485
563
|
type: "object",
|
|
486
564
|
properties: {
|
|
@@ -490,7 +568,7 @@ export const regenerateContentTool = {
|
|
|
490
568
|
},
|
|
491
569
|
instructions: {
|
|
492
570
|
type: "string",
|
|
493
|
-
description: "Improvement instructions for AI rewriting (max 2000 chars). If omitted, content is fully regenerated from its brief.",
|
|
571
|
+
description: "Improvement instructions for AI rewriting (max 2000 chars). If omitted, content is fully regenerated from its brief. Tip: include 'maintain word count' or 'keep the same length' to preserve article length.",
|
|
494
572
|
},
|
|
495
573
|
brief_id: {
|
|
496
574
|
type: "string",
|
|
@@ -543,6 +621,78 @@ export async function executeRegenerateContent(input, context) {
|
|
|
543
621
|
}
|
|
544
622
|
}
|
|
545
623
|
// ============================================
|
|
624
|
+
// rescore_content
|
|
625
|
+
// ============================================
|
|
626
|
+
const rescoreContentInputSchema = z.object({
|
|
627
|
+
content_id: z.string().min(1),
|
|
628
|
+
});
|
|
629
|
+
export const rescoreContentTool = {
|
|
630
|
+
name: "rescore_content",
|
|
631
|
+
description: "Recalculate SEO, GEO, and EEAT scores for a content item. This is a lightweight, instant operation that does not use any API credits. Use after editing content to see updated scores without running a full optimization.",
|
|
632
|
+
inputSchema: {
|
|
633
|
+
type: "object",
|
|
634
|
+
properties: {
|
|
635
|
+
content_id: {
|
|
636
|
+
type: "string",
|
|
637
|
+
description: "The content ID to rescore (required)",
|
|
638
|
+
},
|
|
639
|
+
},
|
|
640
|
+
required: ["content_id"],
|
|
641
|
+
},
|
|
642
|
+
};
|
|
643
|
+
export async function executeRescoreContent(input, context) {
|
|
644
|
+
const parsed = rescoreContentInputSchema.safeParse(input);
|
|
645
|
+
if (!parsed.success) {
|
|
646
|
+
return {
|
|
647
|
+
success: false,
|
|
648
|
+
markdown: `**Error:** Invalid input - ${parsed.error.message}`,
|
|
649
|
+
};
|
|
650
|
+
}
|
|
651
|
+
const { content_id } = parsed.data;
|
|
652
|
+
try {
|
|
653
|
+
const response = await context.client.post(`/content/${content_id}/rescore`, {});
|
|
654
|
+
const result = response.data;
|
|
655
|
+
let markdown = `## Content Rescored\n\n`;
|
|
656
|
+
// Score summary table
|
|
657
|
+
const headers = ["Score Type", "Score", "Rating"];
|
|
658
|
+
const rows = [
|
|
659
|
+
["SEO", String(result.scores.seo_score), getScoreRating(result.scores.seo_score)],
|
|
660
|
+
["GEO", String(result.scores.geo_score), getScoreRating(result.scores.geo_score)],
|
|
661
|
+
["EEAT", String(result.scores.eeat_score), getScoreRating(result.scores.eeat_score)],
|
|
662
|
+
];
|
|
663
|
+
markdown += formatTable(headers, rows);
|
|
664
|
+
markdown += `\n\n`;
|
|
665
|
+
markdown += formatKeyValue({
|
|
666
|
+
"Content ID": result.id,
|
|
667
|
+
"Rescored At": formatDate(result.rescored_at),
|
|
668
|
+
});
|
|
669
|
+
markdown += `\n\n> **Tip:** Use \`start_optimization\` for detailed suggestions on how to improve these scores.`;
|
|
670
|
+
return {
|
|
671
|
+
success: true,
|
|
672
|
+
markdown,
|
|
673
|
+
data: response,
|
|
674
|
+
};
|
|
675
|
+
}
|
|
676
|
+
catch (error) {
|
|
677
|
+
const message = error instanceof Error ? error.message : "Unknown error";
|
|
678
|
+
return {
|
|
679
|
+
success: false,
|
|
680
|
+
markdown: `**Error:** Failed to rescore content - ${message}`,
|
|
681
|
+
};
|
|
682
|
+
}
|
|
683
|
+
}
|
|
684
|
+
function getScoreRating(score) {
|
|
685
|
+
if (score >= 80)
|
|
686
|
+
return "Excellent";
|
|
687
|
+
if (score >= 70)
|
|
688
|
+
return "Good";
|
|
689
|
+
if (score >= 50)
|
|
690
|
+
return "Needs Work";
|
|
691
|
+
if (score >= 30)
|
|
692
|
+
return "Significant Gaps";
|
|
693
|
+
return "Not Competitive";
|
|
694
|
+
}
|
|
695
|
+
// ============================================
|
|
546
696
|
// Export all content tools
|
|
547
697
|
// ============================================
|
|
548
698
|
export const contentTools = [
|
|
@@ -554,6 +704,7 @@ export const contentTools = [
|
|
|
554
704
|
getContentStatusTool,
|
|
555
705
|
exportContentTool,
|
|
556
706
|
regenerateContentTool,
|
|
707
|
+
rescoreContentTool,
|
|
557
708
|
];
|
|
558
709
|
export const contentExecutors = {
|
|
559
710
|
list_content: executeListContent,
|
|
@@ -564,5 +715,6 @@ export const contentExecutors = {
|
|
|
564
715
|
get_content_status: executeGetContentStatus,
|
|
565
716
|
export_content: executeExportContent,
|
|
566
717
|
regenerate_content: executeRegenerateContent,
|
|
718
|
+
rescore_content: executeRescoreContent,
|
|
567
719
|
};
|
|
568
720
|
//# sourceMappingURL=content.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../src/tools/content.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../src/tools/content.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dynamic Tool Discovery — MCP gateway pattern
|
|
3
|
+
*
|
|
4
|
+
* Reduces token overhead by ~90%. Instead of loading all 80+ tool schemas at init,
|
|
5
|
+
* clients can call `discover_tools` with a query or category to get only relevant tools.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* - Call with a natural language query: "I want to optimize my content"
|
|
9
|
+
* - Call with a category: "audits", "content", "ai-visibility"
|
|
10
|
+
* - Returns matching tool names, descriptions, and full schemas
|
|
11
|
+
*/
|
|
12
|
+
import type { McpToolDefinition, ToolContext, ToolResult } from "../types.js";
|
|
13
|
+
export declare const discoverToolsTool: McpToolDefinition;
|
|
14
|
+
export declare function executeDiscoverTools(input: unknown, _context: ToolContext): Promise<ToolResult>;
|
|
15
|
+
//# sourceMappingURL=discover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../src/tools/discover.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAmE9E,eAAO,MAAM,iBAAiB,EAAE,iBAuB/B,CAAC;AAEF,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CA0GrG"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dynamic Tool Discovery — MCP gateway pattern
|
|
3
|
+
*
|
|
4
|
+
* Reduces token overhead by ~90%. Instead of loading all 80+ tool schemas at init,
|
|
5
|
+
* clients can call `discover_tools` with a query or category to get only relevant tools.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* - Call with a natural language query: "I want to optimize my content"
|
|
9
|
+
* - Call with a category: "audits", "content", "ai-visibility"
|
|
10
|
+
* - Returns matching tool names, descriptions, and full schemas
|
|
11
|
+
*/
|
|
12
|
+
import { z } from "zod";
|
|
13
|
+
// ============================================
|
|
14
|
+
// Tool categories for structured discovery
|
|
15
|
+
// ============================================
|
|
16
|
+
const TOOL_CATEGORIES = {
|
|
17
|
+
sites: ["list_sites", "create_site"],
|
|
18
|
+
research: ["list_research", "start_research", "get_research", "delete_research", "export_research", "analyze_serp", "analyze_competitors", "get_search_intent"],
|
|
19
|
+
briefs: ["list_briefs", "create_brief", "get_brief", "get_brief_status", "export_brief", "update_brief"],
|
|
20
|
+
content: ["list_content", "get_content", "generate_content", "update_content", "delete_content", "get_content_status", "export_content", "regenerate_content", "rescore_content"],
|
|
21
|
+
optimization: ["list_optimizations", "start_optimization", "get_optimization", "apply_optimization", "get_optimization_insights", "dismiss_optimization"],
|
|
22
|
+
audits: ["list_audits", "start_audit", "get_audit", "export_audit", "audit_page"],
|
|
23
|
+
"ai-visibility": ["get_ai_visibility", "list_prompts", "create_prompt", "get_prompt", "update_prompt", "get_competitors", "get_alerts", "get_insights", "get_crawler_logs"],
|
|
24
|
+
analytics: ["get_gsc_overview", "get_gsc_queries", "get_gsc_pages", "get_content_gaps", "list_performance_alerts", "resolve_alert"],
|
|
25
|
+
competitive: ["list_competitive_analyses", "start_competitive_analysis", "get_competitive_analysis", "generate_brief_from_analysis", "delete_competitive_analysis", "search_locations"],
|
|
26
|
+
publishing: ["publish_content", "list_cms_connections", "get_auto_optimization_status", "toggle_auto_optimization"],
|
|
27
|
+
rules: ["list_rule_sets", "get_rule_set", "evaluate_rules"],
|
|
28
|
+
playbooks: ["list_playbooks", "get_playbook", "run_playbook", "get_playbook_run_status", "provide_playbook_input"],
|
|
29
|
+
templates: ["list_templates", "get_template", "create_template", "apply_template", "extract_template"],
|
|
30
|
+
atomization: ["create_atomization", "get_atomization", "batch_atomize", "export_atomization"],
|
|
31
|
+
opportunities: ["list_opportunities", "get_opportunity", "create_from_opportunity"],
|
|
32
|
+
clusters: ["list_clusters", "create_cluster", "assign_to_cluster", "suggest_clusters"],
|
|
33
|
+
"site-health": ["get_site_health", "get_cannibalization", "get_link_graph"],
|
|
34
|
+
webhooks: ["list_webhooks", "create_webhook", "get_webhook", "update_webhook", "delete_webhook"],
|
|
35
|
+
jobs: ["get_job_status"],
|
|
36
|
+
};
|
|
37
|
+
// Keyword → category mapping for natural language queries
|
|
38
|
+
const QUERY_KEYWORDS = {
|
|
39
|
+
// Content creation flow
|
|
40
|
+
research: ["research"],
|
|
41
|
+
briefs: ["briefs", "brief", "outline"],
|
|
42
|
+
content: ["content", "article", "write", "generate", "create content"],
|
|
43
|
+
optimization: ["optimize", "optimization", "score", "improve", "suggestions"],
|
|
44
|
+
// Publishing flow
|
|
45
|
+
publishing: ["publish", "cms", "wordpress", "webflow", "sanity", "frase-cms", "auto-optimization", "watchdog"],
|
|
46
|
+
// Analysis
|
|
47
|
+
audits: ["audit", "crawl", "site audit"],
|
|
48
|
+
"ai-visibility": ["ai visibility", "aeo", "geo", "citation", "chatgpt", "perplexity", "ai search", "brand visibility", "monitor"],
|
|
49
|
+
analytics: ["analytics", "gsc", "search console", "queries", "traffic", "gaps"],
|
|
50
|
+
competitive: ["competitor", "competitive", "gap analysis", "analyze url"],
|
|
51
|
+
// Organization
|
|
52
|
+
opportunities: ["opportunity", "quick wins", "growth", "strategic"],
|
|
53
|
+
clusters: ["cluster", "topic cluster", "pillar", "topical authority"],
|
|
54
|
+
"site-health": ["health", "cannibalization", "internal links", "link graph", "orphan"],
|
|
55
|
+
// Automation
|
|
56
|
+
rules: ["rules", "rule set", "quality", "governance", "compliance"],
|
|
57
|
+
playbooks: ["playbook", "automation", "workflow", "pipeline"],
|
|
58
|
+
templates: ["template", "blueprint", "structure"],
|
|
59
|
+
atomization: ["atomize", "atomization", "repurpose", "social posts", "snippets"],
|
|
60
|
+
// Utility
|
|
61
|
+
webhooks: ["webhook", "notification", "event"],
|
|
62
|
+
jobs: ["job", "status", "poll"],
|
|
63
|
+
sites: ["sites", "site", "list sites"],
|
|
64
|
+
};
|
|
65
|
+
// ============================================
|
|
66
|
+
// discover_tools
|
|
67
|
+
// ============================================
|
|
68
|
+
const discoverToolsSchema = z.object({
|
|
69
|
+
query: z.string().min(1).max(500).optional(),
|
|
70
|
+
category: z.string().optional(),
|
|
71
|
+
include_schemas: z.boolean().optional().default(true),
|
|
72
|
+
});
|
|
73
|
+
export const discoverToolsTool = {
|
|
74
|
+
name: "discover_tools",
|
|
75
|
+
description: "Find relevant Frase tools by query or category. Returns matching tool names, descriptions, and optionally full input schemas. Use this instead of listing all tools to reduce context overhead. Categories: sites, research, briefs, content, optimization, audits, ai-visibility, analytics, competitive, publishing, rules, playbooks, templates, atomization, opportunities, clusters, site-health, webhooks, jobs.",
|
|
76
|
+
inputSchema: {
|
|
77
|
+
type: "object",
|
|
78
|
+
properties: {
|
|
79
|
+
query: {
|
|
80
|
+
type: "string",
|
|
81
|
+
description: "Natural language query describing what you want to do (e.g., 'optimize content for AI', 'run a site audit', 'publish to WordPress')",
|
|
82
|
+
},
|
|
83
|
+
category: {
|
|
84
|
+
type: "string",
|
|
85
|
+
description: "Tool category to browse (e.g., 'optimization', 'ai-visibility', 'publishing'). See tool description for all categories.",
|
|
86
|
+
},
|
|
87
|
+
include_schemas: {
|
|
88
|
+
type: "boolean",
|
|
89
|
+
description: "Include full input schemas in results (default: true). Set false for a compact listing.",
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
export async function executeDiscoverTools(input, _context) {
|
|
95
|
+
const parsed = discoverToolsSchema.safeParse(input);
|
|
96
|
+
if (!parsed.success) {
|
|
97
|
+
return { success: false, markdown: `**Error:** ${parsed.error.message}` };
|
|
98
|
+
}
|
|
99
|
+
// Dynamic import breaks circular dependency (discover.ts ↔ index.ts)
|
|
100
|
+
const { ALL_TOOLS } = await import("./index.js");
|
|
101
|
+
const { query, category, include_schemas } = parsed.data;
|
|
102
|
+
if (!query && !category) {
|
|
103
|
+
// Return category listing
|
|
104
|
+
const categories = Object.entries(TOOL_CATEGORIES).map(([cat, tools]) => `- **${cat}** (${tools.length} tools)`);
|
|
105
|
+
return {
|
|
106
|
+
success: true,
|
|
107
|
+
markdown: `## Available Tool Categories\n\nUse \`discover_tools\` with a \`category\` or \`query\` to see specific tools.\n\n${categories.join("\n")}`,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
// Determine which tool names to return
|
|
111
|
+
let matchedToolNames = [];
|
|
112
|
+
if (category) {
|
|
113
|
+
matchedToolNames = TOOL_CATEGORIES[category] || [];
|
|
114
|
+
if (matchedToolNames.length === 0) {
|
|
115
|
+
return {
|
|
116
|
+
success: false,
|
|
117
|
+
markdown: `**Error:** Unknown category "${category}". Available: ${Object.keys(TOOL_CATEGORIES).join(", ")}`,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (query) {
|
|
122
|
+
const queryLower = query.toLowerCase();
|
|
123
|
+
const matchedCategories = new Set();
|
|
124
|
+
// Match query against keywords
|
|
125
|
+
for (const [cat, keywords] of Object.entries(QUERY_KEYWORDS)) {
|
|
126
|
+
for (const kw of keywords) {
|
|
127
|
+
if (queryLower.includes(kw)) {
|
|
128
|
+
matchedCategories.add(cat);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// Also match against tool names and descriptions directly
|
|
133
|
+
for (const tool of ALL_TOOLS) {
|
|
134
|
+
if (tool.name.includes(queryLower.replace(/\s+/g, "_")) ||
|
|
135
|
+
tool.description.toLowerCase().includes(queryLower)) {
|
|
136
|
+
matchedToolNames.push(tool.name);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
// Add tools from matched categories
|
|
140
|
+
for (const cat of matchedCategories) {
|
|
141
|
+
const catTools = TOOL_CATEGORIES[cat] || [];
|
|
142
|
+
for (const t of catTools) {
|
|
143
|
+
if (!matchedToolNames.includes(t)) {
|
|
144
|
+
matchedToolNames.push(t);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
if (matchedToolNames.length === 0) {
|
|
149
|
+
return {
|
|
150
|
+
success: true,
|
|
151
|
+
markdown: `No tools matched query "${query}". Try a category: ${Object.keys(TOOL_CATEGORIES).join(", ")}`,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// Look up full tool definitions
|
|
156
|
+
const matchedTools = matchedToolNames
|
|
157
|
+
.map((name) => ALL_TOOLS.find((t) => t.name === name))
|
|
158
|
+
.filter(Boolean);
|
|
159
|
+
// Format output
|
|
160
|
+
let markdown = `## Matched Tools (${matchedTools.length})\n\n`;
|
|
161
|
+
for (const tool of matchedTools) {
|
|
162
|
+
if (!tool)
|
|
163
|
+
continue;
|
|
164
|
+
markdown += `### ${tool.name}\n${tool.description}\n`;
|
|
165
|
+
if (include_schemas) {
|
|
166
|
+
const required = tool.inputSchema.required || [];
|
|
167
|
+
const properties = tool.inputSchema.properties || {};
|
|
168
|
+
const params = Object.entries(properties).map(([name, prop]) => {
|
|
169
|
+
const req = required.includes(name) ? " **(required)**" : "";
|
|
170
|
+
return `- \`${name}\` (${prop.type}): ${prop.description || ""}${req}`;
|
|
171
|
+
});
|
|
172
|
+
if (params.length > 0) {
|
|
173
|
+
markdown += `\n**Parameters:**\n${params.join("\n")}\n`;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
markdown += "\n";
|
|
177
|
+
}
|
|
178
|
+
return { success: true, markdown };
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=discover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/tools/discover.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;
|
|
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;AAoC9E;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,iBAAiB,EAkExC,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,CAmE9D,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"}
|
package/dist/tools/index.js
CHANGED
|
@@ -22,6 +22,15 @@ import { competitiveAnalysisTools, competitiveAnalysisExecutors } from "./compet
|
|
|
22
22
|
import { publishTools, publishExecutors } from "./publish.js";
|
|
23
23
|
import { rulesTools, rulesExecutors } from "./rules.js";
|
|
24
24
|
import { playbookTools, playbookExecutors } from "./playbooks.js";
|
|
25
|
+
import { templateTools, templateExecutors } from "./templates.js";
|
|
26
|
+
// New feature tool modules (closing MCP gaps)
|
|
27
|
+
import { atomizationTools, atomizationExecutors } from "./atomization.js";
|
|
28
|
+
import { opportunityTools, opportunityExecutors } from "./opportunities.js";
|
|
29
|
+
import { clusterTools, clusterExecutors } from "./clusters.js";
|
|
30
|
+
import { siteHealthTools, siteHealthExecutors } from "./site-health.js";
|
|
31
|
+
import { cmsConnectionTools, cmsConnectionExecutors } from "./cms-connections.js";
|
|
32
|
+
// Dynamic tool discovery (MCP gateway pattern)
|
|
33
|
+
import { discoverToolsTool, executeDiscoverTools } from "./discover.js";
|
|
25
34
|
// ============================================
|
|
26
35
|
// Tool Registry
|
|
27
36
|
// ============================================
|
|
@@ -59,6 +68,20 @@ export const ALL_TOOLS = [
|
|
|
59
68
|
...rulesTools,
|
|
60
69
|
// Playbooks (Phase 5)
|
|
61
70
|
...playbookTools,
|
|
71
|
+
// Content Templates (Phase 5)
|
|
72
|
+
...templateTools,
|
|
73
|
+
// Atomization (New)
|
|
74
|
+
...atomizationTools,
|
|
75
|
+
// Opportunities (New)
|
|
76
|
+
...opportunityTools,
|
|
77
|
+
// Topic Clusters (New)
|
|
78
|
+
...clusterTools,
|
|
79
|
+
// Site Health (New)
|
|
80
|
+
...siteHealthTools,
|
|
81
|
+
// CMS Connections & Auto-Optimization (New)
|
|
82
|
+
...cmsConnectionTools,
|
|
83
|
+
// Dynamic Tool Discovery (Gateway Pattern)
|
|
84
|
+
discoverToolsTool,
|
|
62
85
|
];
|
|
63
86
|
/**
|
|
64
87
|
* Tool executor mapping
|
|
@@ -94,6 +117,20 @@ export const TOOL_EXECUTORS = {
|
|
|
94
117
|
...rulesExecutors,
|
|
95
118
|
// Playbooks (Phase 5)
|
|
96
119
|
...playbookExecutors,
|
|
120
|
+
// Content Templates (Phase 5)
|
|
121
|
+
...templateExecutors,
|
|
122
|
+
// Atomization (New)
|
|
123
|
+
...atomizationExecutors,
|
|
124
|
+
// Opportunities (New)
|
|
125
|
+
...opportunityExecutors,
|
|
126
|
+
// Topic Clusters (New)
|
|
127
|
+
...clusterExecutors,
|
|
128
|
+
// Site Health (New)
|
|
129
|
+
...siteHealthExecutors,
|
|
130
|
+
// CMS Connections & Auto-Optimization (New)
|
|
131
|
+
...cmsConnectionExecutors,
|
|
132
|
+
// Dynamic Tool Discovery (Gateway Pattern)
|
|
133
|
+
discover_tools: executeDiscoverTools,
|
|
97
134
|
};
|
|
98
135
|
/**
|
|
99
136
|
* Get tool definition by name
|