@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.
Files changed (117) hide show
  1. package/README.md +1 -0
  2. package/dist/api-client.d.ts +3 -90
  3. package/dist/api-client.d.ts.map +1 -1
  4. package/dist/api-client.js +2 -214
  5. package/dist/api-client.js.map +1 -1
  6. package/dist/cache.d.ts +2 -49
  7. package/dist/cache.d.ts.map +1 -1
  8. package/dist/cache.js +2 -94
  9. package/dist/cache.js.map +1 -1
  10. package/dist/cli/config-writer.d.ts.map +1 -1
  11. package/dist/cli/config-writer.js +52 -7
  12. package/dist/cli/config-writer.js.map +1 -1
  13. package/dist/config.d.ts +3 -14
  14. package/dist/config.d.ts.map +1 -1
  15. package/dist/config.js +2 -28
  16. package/dist/config.js.map +1 -1
  17. package/dist/formatter.d.ts +2 -44
  18. package/dist/formatter.d.ts.map +1 -1
  19. package/dist/formatter.js +2 -142
  20. package/dist/formatter.js.map +1 -1
  21. package/dist/index.js +2 -2
  22. package/dist/index.js.map +1 -1
  23. package/dist/prompts/cms-publishing.d.ts +16 -0
  24. package/dist/prompts/cms-publishing.d.ts.map +1 -0
  25. package/dist/prompts/cms-publishing.js +84 -0
  26. package/dist/prompts/cms-publishing.js.map +1 -0
  27. package/dist/prompts/competitive-intelligence.d.ts +16 -0
  28. package/dist/prompts/competitive-intelligence.d.ts.map +1 -0
  29. package/dist/prompts/competitive-intelligence.js +78 -0
  30. package/dist/prompts/competitive-intelligence.js.map +1 -0
  31. package/dist/prompts/content-governance.d.ts +16 -0
  32. package/dist/prompts/content-governance.d.ts.map +1 -0
  33. package/dist/prompts/content-governance.js +113 -0
  34. package/dist/prompts/content-governance.js.map +1 -0
  35. package/dist/prompts/geo-optimization.d.ts +17 -0
  36. package/dist/prompts/geo-optimization.d.ts.map +1 -0
  37. package/dist/prompts/geo-optimization.js +79 -0
  38. package/dist/prompts/geo-optimization.js.map +1 -0
  39. package/dist/prompts/index.d.ts.map +1 -1
  40. package/dist/prompts/index.js +15 -0
  41. package/dist/prompts/index.js.map +1 -1
  42. package/dist/resources/sites.d.ts.map +1 -1
  43. package/dist/resources/sites.js +5 -7
  44. package/dist/resources/sites.js.map +1 -1
  45. package/dist/tools/ai-visibility.d.ts.map +1 -1
  46. package/dist/tools/ai-visibility.js +131 -71
  47. package/dist/tools/ai-visibility.js.map +1 -1
  48. package/dist/tools/analytics.d.ts.map +1 -1
  49. package/dist/tools/analytics.js +96 -49
  50. package/dist/tools/analytics.js.map +1 -1
  51. package/dist/tools/atomization.d.ts +8 -0
  52. package/dist/tools/atomization.d.ts.map +1 -0
  53. package/dist/tools/atomization.js +172 -0
  54. package/dist/tools/atomization.js.map +1 -0
  55. package/dist/tools/audits.d.ts +15 -6
  56. package/dist/tools/audits.d.ts.map +1 -1
  57. package/dist/tools/audits.js +32 -10
  58. package/dist/tools/audits.js.map +1 -1
  59. package/dist/tools/briefs.d.ts +225 -5
  60. package/dist/tools/briefs.d.ts.map +1 -1
  61. package/dist/tools/briefs.js +412 -26
  62. package/dist/tools/briefs.js.map +1 -1
  63. package/dist/tools/clusters.d.ts +9 -0
  64. package/dist/tools/clusters.d.ts.map +1 -0
  65. package/dist/tools/clusters.js +166 -0
  66. package/dist/tools/clusters.js.map +1 -0
  67. package/dist/tools/cms-connections.d.ts +7 -0
  68. package/dist/tools/cms-connections.d.ts.map +1 -0
  69. package/dist/tools/cms-connections.js +96 -0
  70. package/dist/tools/cms-connections.js.map +1 -0
  71. package/dist/tools/competitive-analysis.js +2 -2
  72. package/dist/tools/competitive-analysis.js.map +1 -1
  73. package/dist/tools/content.d.ts +12 -2
  74. package/dist/tools/content.d.ts.map +1 -1
  75. package/dist/tools/content.js +170 -18
  76. package/dist/tools/content.js.map +1 -1
  77. package/dist/tools/discover.d.ts +15 -0
  78. package/dist/tools/discover.d.ts.map +1 -0
  79. package/dist/tools/discover.js +180 -0
  80. package/dist/tools/discover.js.map +1 -0
  81. package/dist/tools/index.d.ts.map +1 -1
  82. package/dist/tools/index.js +37 -0
  83. package/dist/tools/index.js.map +1 -1
  84. package/dist/tools/jobs.d.ts +2 -2
  85. package/dist/tools/opportunities.d.ts +11 -0
  86. package/dist/tools/opportunities.d.ts.map +1 -0
  87. package/dist/tools/opportunities.js +122 -0
  88. package/dist/tools/opportunities.js.map +1 -0
  89. package/dist/tools/optimizations.d.ts.map +1 -1
  90. package/dist/tools/optimizations.js +93 -39
  91. package/dist/tools/optimizations.js.map +1 -1
  92. package/dist/tools/playbooks.d.ts.map +1 -1
  93. package/dist/tools/playbooks.js +34 -5
  94. package/dist/tools/playbooks.js.map +1 -1
  95. package/dist/tools/rules.d.ts +16 -1
  96. package/dist/tools/rules.d.ts.map +1 -1
  97. package/dist/tools/rules.js +49 -14
  98. package/dist/tools/rules.js.map +1 -1
  99. package/dist/tools/site-health.d.ts +7 -0
  100. package/dist/tools/site-health.d.ts.map +1 -0
  101. package/dist/tools/site-health.js +120 -0
  102. package/dist/tools/site-health.js.map +1 -0
  103. package/dist/tools/sites.d.ts.map +1 -1
  104. package/dist/tools/sites.js +1 -2
  105. package/dist/tools/sites.js.map +1 -1
  106. package/dist/tools/templates.d.ts +17 -0
  107. package/dist/tools/templates.d.ts.map +1 -0
  108. package/dist/tools/templates.js +521 -0
  109. package/dist/tools/templates.js.map +1 -0
  110. package/dist/tools/webhooks.d.ts.map +1 -1
  111. package/dist/tools/webhooks.js +44 -24
  112. package/dist/tools/webhooks.js.map +1 -1
  113. package/dist/types.d.ts +2 -181
  114. package/dist/types.d.ts.map +1 -1
  115. package/dist/types.js +1 -1
  116. package/package.json +26 -7
  117. package/server.json +4 -4
@@ -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(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">")
37
+ .replace(/&quot;/g, '"').replace(/&#39;/g, "'").replace(/&nbsp;/g, " ")
38
+ .replace(/&#x27;/g, "'").replace(/&mdash;/g, "—").replace(/&ndash;/g, "–")
39
+ .replace(/&hellip;/g, "…").replace(/&rsquo;/g, "'").replace(/&lsquo;/g, "'")
40
+ .replace(/&rdquo;/g, "\u201D").replace(/&ldquo;/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
- // Truncate very long content
145
- if (content.body.length > 5000) {
146
- markdown += content.body.slice(0, 5000);
147
- markdown += `\n\n*... (truncated, ${content.word_count} words total)*`;
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 += content.body;
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
- const response = await context.client.put(`/content/${id}`, updates);
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
- Generating: status.is_generating ? "Yes" : "No",
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;AAyB9E;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,iBAAiB,EA6CxC,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,CA8C9D,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;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"}
@@ -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