@frase/mcp-server 0.2.1 → 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/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 +1 -1
- 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/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.map +1 -1
- package/dist/tools/audits.js +1 -2
- package/dist/tools/audits.js.map +1 -1
- package/dist/tools/briefs.d.ts +2 -2
- package/dist/tools/briefs.d.ts.map +1 -1
- package/dist/tools/briefs.js +63 -4
- 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 +2 -2
- package/dist/tools/content.d.ts.map +1 -1
- package/dist/tools/content.js +73 -9
- 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 +32 -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/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/types.d.ts +2 -180
- 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/config.js
CHANGED
|
@@ -1,31 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Configuration
|
|
2
|
+
* Configuration — re-exported from @frase/core
|
|
3
3
|
*/
|
|
4
|
-
|
|
5
|
-
* Default API URL
|
|
6
|
-
*/
|
|
7
|
-
const DEFAULT_API_URL = "https://next.frase.io/api/v1";
|
|
8
|
-
/**
|
|
9
|
-
* Load configuration from environment variables
|
|
10
|
-
*/
|
|
11
|
-
export function loadConfig() {
|
|
12
|
-
const apiKey = process.env.FRASE_API_KEY;
|
|
13
|
-
if (!apiKey) {
|
|
14
|
-
throw new Error("FRASE_API_KEY environment variable is required. " +
|
|
15
|
-
"Get your API key from https://next.frase.io/settings/api");
|
|
16
|
-
}
|
|
17
|
-
return {
|
|
18
|
-
apiKey,
|
|
19
|
-
apiUrl: process.env.FRASE_API_URL || DEFAULT_API_URL,
|
|
20
|
-
debug: process.env.FRASE_MCP_DEBUG === "true",
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Log debug message if debug mode is enabled
|
|
25
|
-
*/
|
|
26
|
-
export function debugLog(config, ...args) {
|
|
27
|
-
if (config.debug) {
|
|
28
|
-
console.error("[Frase MCP Debug]", ...args);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
4
|
+
export { loadConfig, debugLog, getConfigPath } from "@frase/core";
|
|
31
5
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/formatter.d.ts
CHANGED
|
@@ -1,47 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Formatter — re-exported from @frase/core
|
|
3
3
|
*/
|
|
4
|
-
|
|
5
|
-
* Format a date for display
|
|
6
|
-
*/
|
|
7
|
-
export declare function formatDate(date: string | Date): string;
|
|
8
|
-
/**
|
|
9
|
-
* Format status with emoji
|
|
10
|
-
*/
|
|
11
|
-
export declare function formatStatus(status: string | null | undefined): string;
|
|
12
|
-
/**
|
|
13
|
-
* Format a list of items as a markdown table
|
|
14
|
-
*/
|
|
15
|
-
export declare function formatTable(headers: string[], rows: string[][], options?: {
|
|
16
|
-
align?: ("left" | "center" | "right")[];
|
|
17
|
-
}): string;
|
|
18
|
-
/**
|
|
19
|
-
* Format pagination info
|
|
20
|
-
*/
|
|
21
|
-
export declare function formatPagination(pagination: {
|
|
22
|
-
page: number;
|
|
23
|
-
page_size: number;
|
|
24
|
-
total: number;
|
|
25
|
-
has_more: boolean;
|
|
26
|
-
}): string;
|
|
27
|
-
/**
|
|
28
|
-
* Format a success response
|
|
29
|
-
*/
|
|
30
|
-
export declare function formatSuccess(title: string, content: string): string;
|
|
31
|
-
/**
|
|
32
|
-
* Format an error response
|
|
33
|
-
*/
|
|
34
|
-
export declare function formatError(error: Error | string): string;
|
|
35
|
-
/**
|
|
36
|
-
* Format a key-value list
|
|
37
|
-
*/
|
|
38
|
-
export declare function formatKeyValue(items: Record<string, string | number | boolean | null | undefined>): string;
|
|
39
|
-
/**
|
|
40
|
-
* Format word count
|
|
41
|
-
*/
|
|
42
|
-
export declare function formatWordCount(count: number | null | undefined): string;
|
|
43
|
-
/**
|
|
44
|
-
* Truncate text with ellipsis
|
|
45
|
-
*/
|
|
46
|
-
export declare function truncate(text: string | null | undefined, maxLength: number): string;
|
|
4
|
+
export { formatDate, formatStatus, formatTable, formatPagination, formatSuccess, formatError, formatKeyValue, formatWordCount, truncate, } from "@frase/core";
|
|
47
5
|
//# sourceMappingURL=formatter.d.ts.map
|
package/dist/formatter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../src/formatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH
|
|
1
|
+
{"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../src/formatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,UAAU,EACV,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,cAAc,EACd,eAAe,EACf,QAAQ,GACT,MAAM,aAAa,CAAC"}
|
package/dist/formatter.js
CHANGED
|
@@ -1,145 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Formatter — re-exported from @frase/core
|
|
3
3
|
*/
|
|
4
|
-
|
|
5
|
-
* Format a date for display
|
|
6
|
-
*/
|
|
7
|
-
export function formatDate(date) {
|
|
8
|
-
const d = typeof date === "string" ? new Date(date) : date;
|
|
9
|
-
return d.toLocaleDateString("en-US", {
|
|
10
|
-
month: "short",
|
|
11
|
-
day: "numeric",
|
|
12
|
-
year: "numeric",
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Format status with emoji
|
|
17
|
-
*/
|
|
18
|
-
export function formatStatus(status) {
|
|
19
|
-
if (!status)
|
|
20
|
-
return "• unknown";
|
|
21
|
-
const statusEmojis = {
|
|
22
|
-
// Content statuses
|
|
23
|
-
draft: "📝",
|
|
24
|
-
generating: "🔄",
|
|
25
|
-
review: "👀",
|
|
26
|
-
published: "✅",
|
|
27
|
-
archived: "📦",
|
|
28
|
-
// Brief statuses
|
|
29
|
-
pending: "⏳",
|
|
30
|
-
research: "🔍",
|
|
31
|
-
ready: "✅",
|
|
32
|
-
completed: "✅",
|
|
33
|
-
// Job statuses
|
|
34
|
-
running: "🔄",
|
|
35
|
-
failed: "❌",
|
|
36
|
-
success: "✅",
|
|
37
|
-
// Audit statuses
|
|
38
|
-
crawling: "🕷️",
|
|
39
|
-
analyzing: "🔍",
|
|
40
|
-
// Competitive analysis statuses
|
|
41
|
-
crawling_page: "🕷️",
|
|
42
|
-
fetching_rankings: "📊",
|
|
43
|
-
analyzing_competitors: "⚔️",
|
|
44
|
-
generating_report: "📝",
|
|
45
|
-
};
|
|
46
|
-
const emoji = statusEmojis[status.toLowerCase()] || "•";
|
|
47
|
-
return `${emoji} ${status}`;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Format a list of items as a markdown table
|
|
51
|
-
*/
|
|
52
|
-
export function formatTable(headers, rows, options) {
|
|
53
|
-
if (rows.length === 0) {
|
|
54
|
-
return "_No items found._";
|
|
55
|
-
}
|
|
56
|
-
const align = options?.align || headers.map(() => "left");
|
|
57
|
-
// Build header row
|
|
58
|
-
let table = "| " + headers.join(" | ") + " |\n";
|
|
59
|
-
// Build separator row with alignment
|
|
60
|
-
table +=
|
|
61
|
-
"| " +
|
|
62
|
-
align
|
|
63
|
-
.map((a) => {
|
|
64
|
-
switch (a) {
|
|
65
|
-
case "center":
|
|
66
|
-
return ":---:";
|
|
67
|
-
case "right":
|
|
68
|
-
return "---:";
|
|
69
|
-
default:
|
|
70
|
-
return "---";
|
|
71
|
-
}
|
|
72
|
-
})
|
|
73
|
-
.join(" | ") +
|
|
74
|
-
" |\n";
|
|
75
|
-
// Build data rows
|
|
76
|
-
for (const row of rows) {
|
|
77
|
-
table += "| " + row.join(" | ") + " |\n";
|
|
78
|
-
}
|
|
79
|
-
return table;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Format pagination info
|
|
83
|
-
*/
|
|
84
|
-
export function formatPagination(pagination) {
|
|
85
|
-
const start = (pagination.page - 1) * pagination.page_size + 1;
|
|
86
|
-
const end = Math.min(pagination.page * pagination.page_size, pagination.total);
|
|
87
|
-
let text = `\n**Showing ${start}-${end} of ${pagination.total} items**`;
|
|
88
|
-
if (pagination.has_more) {
|
|
89
|
-
text += ` · \`has_more: true\`\n`;
|
|
90
|
-
text += `\nUse \`page: ${pagination.page + 1}\` to see more.`;
|
|
91
|
-
}
|
|
92
|
-
return text;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Format a success response
|
|
96
|
-
*/
|
|
97
|
-
export function formatSuccess(title, content) {
|
|
98
|
-
return `## ${title}\n\n${content}`;
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Format an error response
|
|
102
|
-
*/
|
|
103
|
-
export function formatError(error) {
|
|
104
|
-
const message = typeof error === "string" ? error : error.message;
|
|
105
|
-
return `**Error:** ${message}`;
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Format a key-value list
|
|
109
|
-
*/
|
|
110
|
-
export function formatKeyValue(items) {
|
|
111
|
-
const lines = [];
|
|
112
|
-
for (const [key, value] of Object.entries(items)) {
|
|
113
|
-
if (value !== undefined && value !== null) {
|
|
114
|
-
const displayKey = key
|
|
115
|
-
.replace(/_/g, " ")
|
|
116
|
-
.replace(/\b\w/g, (c) => c.toUpperCase());
|
|
117
|
-
lines.push(`- **${displayKey}:** ${value}`);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
return lines.join("\n");
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Format word count
|
|
124
|
-
*/
|
|
125
|
-
export function formatWordCount(count) {
|
|
126
|
-
if (count === null || count === undefined) {
|
|
127
|
-
return "-";
|
|
128
|
-
}
|
|
129
|
-
if (count >= 1000) {
|
|
130
|
-
return `${(count / 1000).toFixed(1)}k`;
|
|
131
|
-
}
|
|
132
|
-
return count.toString();
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Truncate text with ellipsis
|
|
136
|
-
*/
|
|
137
|
-
export function truncate(text, maxLength) {
|
|
138
|
-
if (!text)
|
|
139
|
-
return "-";
|
|
140
|
-
if (text.length <= maxLength) {
|
|
141
|
-
return text;
|
|
142
|
-
}
|
|
143
|
-
return text.slice(0, maxLength - 3) + "...";
|
|
144
|
-
}
|
|
4
|
+
export { formatDate, formatStatus, formatTable, formatPagination, formatSuccess, formatError, formatKeyValue, formatWordCount, truncate, } from "@frase/core";
|
|
145
5
|
//# sourceMappingURL=formatter.js.map
|
package/dist/formatter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatter.js","sourceRoot":"","sources":["../src/formatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH
|
|
1
|
+
{"version":3,"file":"formatter.js","sourceRoot":"","sources":["../src/formatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,UAAU,EACV,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,cAAc,EACd,eAAe,EACf,QAAQ,GACT,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -97,7 +97,7 @@ class FraseMcpServer {
|
|
|
97
97
|
}
|
|
98
98
|
try {
|
|
99
99
|
this.config = loadConfig();
|
|
100
|
-
this.client = new FraseApiClient(this.config);
|
|
100
|
+
this.client = new FraseApiClient(this.config, "frase-mcp-server/0.2.1");
|
|
101
101
|
this.isInitialized = true;
|
|
102
102
|
debugLog(this.config, "Server initialized");
|
|
103
103
|
debugLog(this.config, `API URL: ${this.config.apiUrl}`);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CMS Publishing Prompt
|
|
3
|
+
*
|
|
4
|
+
* Multi-platform publishing workflow — check connections,
|
|
5
|
+
* verify content quality, publish, and set up monitoring.
|
|
6
|
+
*/
|
|
7
|
+
import type { McpPromptDefinition } from "../types.js";
|
|
8
|
+
export declare const cmsPublishingPrompt: McpPromptDefinition;
|
|
9
|
+
export declare function getCmsPublishingMessages(args: Record<string, string>): Array<{
|
|
10
|
+
role: "user" | "assistant";
|
|
11
|
+
content: {
|
|
12
|
+
type: "text";
|
|
13
|
+
text: string;
|
|
14
|
+
};
|
|
15
|
+
}>;
|
|
16
|
+
//# sourceMappingURL=cms-publishing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cms-publishing.d.ts","sourceRoot":"","sources":["../../src/prompts/cms-publishing.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,eAAO,MAAM,mBAAmB,EAAE,mBA0BjC,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;IAC5E,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC,CAAC,CAmDD"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CMS Publishing Prompt
|
|
3
|
+
*
|
|
4
|
+
* Multi-platform publishing workflow — check connections,
|
|
5
|
+
* verify content quality, publish, and set up monitoring.
|
|
6
|
+
*/
|
|
7
|
+
export const cmsPublishingPrompt = {
|
|
8
|
+
name: "cms_publishing",
|
|
9
|
+
description: "Multi-platform publishing workflow. Checks CMS connections (FraseCMS, WordPress, Webflow, Sanity), verifies content quality against optimization thresholds, publishes content, and sets up AI visibility monitoring post-publish.",
|
|
10
|
+
arguments: [
|
|
11
|
+
{
|
|
12
|
+
name: "content_id",
|
|
13
|
+
description: "Content ID to publish (required)",
|
|
14
|
+
required: true,
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
name: "site_id",
|
|
18
|
+
description: "Site ID with CMS connections (required)",
|
|
19
|
+
required: true,
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: "destination",
|
|
23
|
+
description: "Target CMS: frase, wordpress, webflow, sanity (optional — auto-detects if omitted)",
|
|
24
|
+
required: false,
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
name: "min_score",
|
|
28
|
+
description: "Minimum optimization score required before publishing (default: 70)",
|
|
29
|
+
required: false,
|
|
30
|
+
},
|
|
31
|
+
],
|
|
32
|
+
};
|
|
33
|
+
export function getCmsPublishingMessages(args) {
|
|
34
|
+
const contentId = args.content_id || "";
|
|
35
|
+
const siteId = args.site_id || "";
|
|
36
|
+
const destination = args.destination || "";
|
|
37
|
+
const minScore = args.min_score || "70";
|
|
38
|
+
return [
|
|
39
|
+
{
|
|
40
|
+
role: "user",
|
|
41
|
+
content: {
|
|
42
|
+
type: "text",
|
|
43
|
+
text: `Publish content "${contentId}" to CMS. Verify quality, publish, and set up post-publish monitoring.
|
|
44
|
+
|
|
45
|
+
**Configuration:**
|
|
46
|
+
- Content ID: ${contentId}
|
|
47
|
+
- Site ID: ${siteId}
|
|
48
|
+
${destination ? `- Target CMS: ${destination}` : "- Target CMS: auto-detect"}
|
|
49
|
+
- Minimum score: ${minScore}
|
|
50
|
+
|
|
51
|
+
**Execute these steps:**
|
|
52
|
+
|
|
53
|
+
**Step 1 — Check CMS Connections:** Use list_cms_connections with site_id "${siteId}". ${destination ? `Verify that "${destination}" is connected and active.` : "Identify available CMS platforms."} If no connections exist, report this and stop — a CMS connection must be set up first.
|
|
54
|
+
|
|
55
|
+
**Step 2 — Verify Content Quality:** Use start_optimization with content_id "${contentId}". Wait for analysis, then use get_optimization to check the current score.
|
|
56
|
+
- If score >= ${minScore}: proceed to publishing
|
|
57
|
+
- If score < ${minScore}: report the gap and apply the top 3 high-priority suggestions using apply_optimization. Re-score. If still below ${minScore} after 2 optimization rounds, warn but allow manual override decision.
|
|
58
|
+
|
|
59
|
+
**Step 3 — Check Content Rules:** Use list_rule_sets with site_id "${siteId}". If active rule sets exist, use evaluate_rules with content_id "${contentId}" and each active rule_set_id. Report any failures. Critical rule failures should block publishing.
|
|
60
|
+
|
|
61
|
+
**Step 4 — Get Content Details:** Use get_content with content_id "${contentId}" to confirm title, word count, and meta tags are set.
|
|
62
|
+
|
|
63
|
+
**Step 5 — Publish:** Use publish_content with:
|
|
64
|
+
- content_id: "${contentId}"
|
|
65
|
+
- destination: ${destination ? `"${destination}"` : "the first available connected CMS"}
|
|
66
|
+
- site_id: "${siteId}"
|
|
67
|
+
Report the published URL.
|
|
68
|
+
|
|
69
|
+
**Step 6 — Set Up AI Visibility Monitoring:** Use create_prompt with a natural question related to this content's topic and the site's brand name. This tracks whether AI search engines cite this content.
|
|
70
|
+
|
|
71
|
+
**Step 7 — Check Auto-Optimization:** Use get_auto_optimization_status with site_id "${siteId}". If auto-optimization is not enabled, recommend enabling it to detect content decay automatically.
|
|
72
|
+
|
|
73
|
+
**Provide a publishing report:**
|
|
74
|
+
- Content title and URL
|
|
75
|
+
- Final optimization score (SEO + GEO)
|
|
76
|
+
- Rule evaluation results (pass/fail)
|
|
77
|
+
- Published destination and URL
|
|
78
|
+
- AI visibility monitoring status
|
|
79
|
+
- Auto-optimization status`,
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
];
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=cms-publishing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cms-publishing.js","sourceRoot":"","sources":["../../src/prompts/cms-publishing.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,CAAC,MAAM,mBAAmB,GAAwB;IACtD,IAAI,EAAE,gBAAgB;IACtB,WAAW,EACT,oOAAoO;IACtO,SAAS,EAAE;QACT;YACE,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,kCAAkC;YAC/C,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,yCAAyC;YACtD,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,oFAAoF;YACjG,QAAQ,EAAE,KAAK;SAChB;QACD;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,qEAAqE;YAClF,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,MAAM,UAAU,wBAAwB,CAAC,IAA4B;IAInE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;IAClC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;IAExC,OAAO;QACL;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,oBAAoB,SAAS;;;gBAG3B,SAAS;aACZ,MAAM;EACjB,WAAW,CAAC,CAAC,CAAC,iBAAiB,WAAW,EAAE,CAAC,CAAC,CAAC,2BAA2B;mBACzD,QAAQ;;;;6EAIkD,MAAM,MAAM,WAAW,CAAC,CAAC,CAAC,gBAAgB,WAAW,4BAA4B,CAAC,CAAC,CAAC,mCAAmC;;+EAErH,SAAS;gBACxE,QAAQ;eACT,QAAQ,qHAAqH,QAAQ;;qEAE/E,MAAM,qEAAqE,SAAS;;qEAEpF,SAAS;;;iBAG7D,SAAS;iBACT,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC,mCAAmC;cACzE,MAAM;;;;;uFAKmE,MAAM;;;;;;;;2BAQlE;aACpB;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Competitive Intelligence Prompt
|
|
3
|
+
*
|
|
4
|
+
* Full competitive analysis workflow — analyze competitors,
|
|
5
|
+
* detect opportunities, and organize content into topic clusters.
|
|
6
|
+
*/
|
|
7
|
+
import type { McpPromptDefinition } from "../types.js";
|
|
8
|
+
export declare const competitiveIntelligencePrompt: McpPromptDefinition;
|
|
9
|
+
export declare function getCompetitiveIntelligenceMessages(args: Record<string, string>): Array<{
|
|
10
|
+
role: "user" | "assistant";
|
|
11
|
+
content: {
|
|
12
|
+
type: "text";
|
|
13
|
+
text: string;
|
|
14
|
+
};
|
|
15
|
+
}>;
|
|
16
|
+
//# sourceMappingURL=competitive-intelligence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"competitive-intelligence.d.ts","sourceRoot":"","sources":["../../src/prompts/competitive-intelligence.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,eAAO,MAAM,6BAA6B,EAAE,mBAqB3C,CAAC;AAEF,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;IACtF,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC,CAAC,CAmDD"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Competitive Intelligence Prompt
|
|
3
|
+
*
|
|
4
|
+
* Full competitive analysis workflow — analyze competitors,
|
|
5
|
+
* detect opportunities, and organize content into topic clusters.
|
|
6
|
+
*/
|
|
7
|
+
export const competitiveIntelligencePrompt = {
|
|
8
|
+
name: "competitive_intelligence",
|
|
9
|
+
description: "Full competitive analysis workflow. Analyzes competitor pages, detects content opportunities (quick wins, growth, strategic), scores them by impact/effort/speed/strategic value, and organizes findings into topic clusters.",
|
|
10
|
+
arguments: [
|
|
11
|
+
{
|
|
12
|
+
name: "site_id",
|
|
13
|
+
description: "Site ID to analyze opportunities for (required)",
|
|
14
|
+
required: true,
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
name: "competitor_url",
|
|
18
|
+
description: "Competitor page URL to analyze (optional — if provided, starts with page-level analysis)",
|
|
19
|
+
required: false,
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: "keyword",
|
|
23
|
+
description: "Target keyword to focus analysis on (optional)",
|
|
24
|
+
required: false,
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
};
|
|
28
|
+
export function getCompetitiveIntelligenceMessages(args) {
|
|
29
|
+
const siteId = args.site_id || "";
|
|
30
|
+
const competitorUrl = args.competitor_url || "";
|
|
31
|
+
const keyword = args.keyword || "";
|
|
32
|
+
const competitorStep = competitorUrl
|
|
33
|
+
? `**Step 1 — Analyze Competitor:** Use start_competitive_analysis with url "${competitorUrl}"${keyword ? `, industry or location context as appropriate` : ""}. This is async — poll with get_competitive_analysis using the returned ID until complete. Review the gap analysis: missing topics, thin sections, structural gaps, and content quality comparison.`
|
|
34
|
+
: `**Step 1 — Skip:** No competitor URL provided. Proceed to opportunity detection.`;
|
|
35
|
+
return [
|
|
36
|
+
{
|
|
37
|
+
role: "user",
|
|
38
|
+
content: {
|
|
39
|
+
type: "text",
|
|
40
|
+
text: `Run a full competitive intelligence analysis for site "${siteId}".
|
|
41
|
+
|
|
42
|
+
**Configuration:**
|
|
43
|
+
- Site ID: ${siteId}
|
|
44
|
+
${competitorUrl ? `- Competitor URL: ${competitorUrl}` : ""}
|
|
45
|
+
${keyword ? `- Focus keyword: ${keyword}` : ""}
|
|
46
|
+
|
|
47
|
+
**Execute these steps:**
|
|
48
|
+
|
|
49
|
+
${competitorStep}
|
|
50
|
+
|
|
51
|
+
**Step 2 — Detect Opportunities:** Use list_opportunities with site_id "${siteId}". Review opportunities across three views:
|
|
52
|
+
- Quick wins: low effort, proven demand (call with view "quick-wins")
|
|
53
|
+
- Growth: medium effort, validated gaps (call with view "growth")
|
|
54
|
+
- Strategic: high effort, high reward (call with view "strategic")
|
|
55
|
+
Each opportunity has a composite score (Impact 35%, Effort 25%, Speed 20%, Strategic 20%).
|
|
56
|
+
|
|
57
|
+
**Step 3 — Deep-Dive Top Opportunities:** For the top 3-5 opportunities, use get_opportunity to review detailed scoring and recommendations.
|
|
58
|
+
|
|
59
|
+
**Step 4 — Check Existing Clusters:** Use list_clusters with site_id "${siteId}" to see how content is currently organized. Identify gaps in cluster coverage.
|
|
60
|
+
|
|
61
|
+
**Step 5 — Get Cluster Suggestions:** Use suggest_clusters with site_id "${siteId}" for AI-powered topic cluster recommendations. These suggest how to organize new and existing content for topical authority.
|
|
62
|
+
|
|
63
|
+
**Step 6 — SERP Context:** ${keyword ? `Use analyze_serp for "${keyword}" to understand the competitive landscape. Use get_search_intent to classify query intent.` : "For the top opportunity's keyword, use analyze_serp to understand the competitive landscape."}
|
|
64
|
+
|
|
65
|
+
**Step 7 — Create Actionable Briefs:** For the top 1-2 quick-win opportunities, use create_from_opportunity with the opportunity ID to auto-generate content briefs pre-populated with keyword data, competitor insights, and gap analysis.
|
|
66
|
+
|
|
67
|
+
**Provide a comprehensive report:**
|
|
68
|
+
- Competitive landscape summary
|
|
69
|
+
- Top 5 opportunities ranked by composite score
|
|
70
|
+
- Quick wins that can be executed immediately
|
|
71
|
+
- Cluster organization recommendations
|
|
72
|
+
- Briefs created and their IDs
|
|
73
|
+
- Strategic recommendations for long-term content investment`,
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
];
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=competitive-intelligence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"competitive-intelligence.js","sourceRoot":"","sources":["../../src/prompts/competitive-intelligence.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,CAAC,MAAM,6BAA6B,GAAwB;IAChE,IAAI,EAAE,0BAA0B;IAChC,WAAW,EACT,+NAA+N;IACjO,SAAS,EAAE;QACT;YACE,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,iDAAiD;YAC9D,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,0FAA0F;YACvG,QAAQ,EAAE,KAAK;SAChB;QACD;YACE,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,gDAAgD;YAC7D,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,MAAM,UAAU,kCAAkC,CAAC,IAA4B;IAI7E,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;IAClC,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;IAEnC,MAAM,cAAc,GAAG,aAAa;QAClC,CAAC,CAAC,6EAA6E,aAAa,IAAI,OAAO,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,EAAE,qMAAqM;QACnW,CAAC,CAAC,kFAAkF,CAAC;IAEvF,OAAO;QACL;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,0DAA0D,MAAM;;;aAGjE,MAAM;EACjB,aAAa,CAAC,CAAC,CAAC,qBAAqB,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE;EACzD,OAAO,CAAC,CAAC,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE;;;;EAI5C,cAAc;;0EAE0D,MAAM;;;;;;;;wEAQR,MAAM;;2EAEH,MAAM;;6BAEpD,OAAO,CAAC,CAAC,CAAC,yBAAyB,OAAO,4FAA4F,CAAC,CAAC,CAAC,8FAA8F;;;;;;;;;;6DAUvM;aACtD;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Content Governance Prompt
|
|
3
|
+
*
|
|
4
|
+
* Template + rules + playbook automation workflow.
|
|
5
|
+
* Sets up content quality standards and automated workflows.
|
|
6
|
+
*/
|
|
7
|
+
import type { McpPromptDefinition } from "../types.js";
|
|
8
|
+
export declare const contentGovernancePrompt: McpPromptDefinition;
|
|
9
|
+
export declare function getContentGovernanceMessages(args: Record<string, string>): Array<{
|
|
10
|
+
role: "user" | "assistant";
|
|
11
|
+
content: {
|
|
12
|
+
type: "text";
|
|
13
|
+
text: string;
|
|
14
|
+
};
|
|
15
|
+
}>;
|
|
16
|
+
//# sourceMappingURL=content-governance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-governance.d.ts","sourceRoot":"","sources":["../../src/prompts/content-governance.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,eAAO,MAAM,uBAAuB,EAAE,mBA0BrC,CAAC;AAEF,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;IAChF,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC,CAAC,CAkFD"}
|