@frase/mcp-server 0.1.8 → 0.2.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/CHANGELOG.md +16 -0
- package/README.md +61 -0
- package/dist/api-client.js +1 -1
- package/dist/cli/config-writer.d.ts +30 -0
- package/dist/cli/config-writer.d.ts.map +1 -0
- package/dist/cli/config-writer.js +119 -0
- package/dist/cli/config-writer.js.map +1 -0
- package/dist/cli/detect-tool.d.ts +19 -0
- package/dist/cli/detect-tool.d.ts.map +1 -0
- package/dist/cli/detect-tool.js +98 -0
- package/dist/cli/detect-tool.js.map +1 -0
- package/dist/cli/init.d.ts +14 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +182 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/index.js +25 -1
- package/dist/index.js.map +1 -1
- package/dist/prompts/content-pipeline.d.ts +25 -0
- package/dist/prompts/content-pipeline.d.ts.map +1 -0
- package/dist/prompts/content-pipeline.js +112 -0
- package/dist/prompts/content-pipeline.js.map +1 -0
- package/dist/prompts/content-watchdog.d.ts +17 -0
- package/dist/prompts/content-watchdog.d.ts.map +1 -0
- package/dist/prompts/content-watchdog.js +82 -0
- package/dist/prompts/content-watchdog.js.map +1 -0
- package/dist/prompts/create-seo-article.d.ts +3 -0
- package/dist/prompts/create-seo-article.d.ts.map +1 -1
- package/dist/prompts/create-seo-article.js +51 -5
- package/dist/prompts/create-seo-article.js.map +1 -1
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +6 -0
- package/dist/prompts/index.js.map +1 -1
- package/dist/tools/audits.js +3 -3
- package/dist/tools/audits.js.map +1 -1
- package/dist/tools/briefs.d.ts +6 -0
- package/dist/tools/briefs.d.ts.map +1 -1
- package/dist/tools/briefs.js +12 -0
- package/dist/tools/briefs.js.map +1 -1
- package/dist/tools/content.d.ts +19 -3
- package/dist/tools/content.d.ts.map +1 -1
- package/dist/tools/content.js +76 -2
- package/dist/tools/content.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +15 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/playbooks.d.ts +17 -0
- package/dist/tools/playbooks.d.ts.map +1 -0
- package/dist/tools/playbooks.js +334 -0
- package/dist/tools/playbooks.js.map +1 -0
- package/dist/tools/publish.d.ts +41 -0
- package/dist/tools/publish.d.ts.map +1 -0
- package/dist/tools/publish.js +154 -0
- package/dist/tools/publish.js.map +1 -0
- package/dist/tools/research.js +2 -2
- package/dist/tools/research.js.map +1 -1
- package/dist/tools/rules.d.ts +66 -0
- package/dist/tools/rules.d.ts.map +1 -0
- package/dist/tools/rules.js +245 -0
- package/dist/tools/rules.js.map +1 -0
- package/dist/tools/serp.js +4 -4
- package/dist/tools/serp.js.map +1 -1
- package/package.json +25 -1
- package/server.json +35 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Content Rules tools
|
|
3
|
+
*/
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
import type { McpToolDefinition, ToolContext, ToolResult } from "../types.js";
|
|
6
|
+
/**
|
|
7
|
+
* Input schema for list_rule_sets
|
|
8
|
+
*/
|
|
9
|
+
declare const listRuleSetsInputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
10
|
+
export type ListRuleSetsInput = z.infer<typeof listRuleSetsInputSchema>;
|
|
11
|
+
/**
|
|
12
|
+
* Tool definition for list_rule_sets
|
|
13
|
+
*/
|
|
14
|
+
export declare const listRuleSetsTool: McpToolDefinition;
|
|
15
|
+
/**
|
|
16
|
+
* Execute list_rule_sets
|
|
17
|
+
*/
|
|
18
|
+
export declare function executeListRuleSets(input: unknown, context: ToolContext): Promise<ToolResult>;
|
|
19
|
+
/**
|
|
20
|
+
* Input schema for get_rule_set
|
|
21
|
+
*/
|
|
22
|
+
declare const getRuleSetInputSchema: z.ZodObject<{
|
|
23
|
+
rule_set_id: z.ZodString;
|
|
24
|
+
}, "strip", z.ZodTypeAny, {
|
|
25
|
+
rule_set_id: string;
|
|
26
|
+
}, {
|
|
27
|
+
rule_set_id: string;
|
|
28
|
+
}>;
|
|
29
|
+
export type GetRuleSetInput = z.infer<typeof getRuleSetInputSchema>;
|
|
30
|
+
/**
|
|
31
|
+
* Tool definition for get_rule_set
|
|
32
|
+
*/
|
|
33
|
+
export declare const getRuleSetTool: McpToolDefinition;
|
|
34
|
+
/**
|
|
35
|
+
* Execute get_rule_set
|
|
36
|
+
*/
|
|
37
|
+
export declare function executeGetRuleSet(input: unknown, context: ToolContext): Promise<ToolResult>;
|
|
38
|
+
/**
|
|
39
|
+
* Input schema for evaluate_rules
|
|
40
|
+
*/
|
|
41
|
+
declare const evaluateRulesInputSchema: z.ZodObject<{
|
|
42
|
+
rule_set_id: z.ZodString;
|
|
43
|
+
content_id: z.ZodString;
|
|
44
|
+
save_results: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
45
|
+
}, "strip", z.ZodTypeAny, {
|
|
46
|
+
content_id: string;
|
|
47
|
+
rule_set_id: string;
|
|
48
|
+
save_results: boolean;
|
|
49
|
+
}, {
|
|
50
|
+
content_id: string;
|
|
51
|
+
rule_set_id: string;
|
|
52
|
+
save_results?: boolean | undefined;
|
|
53
|
+
}>;
|
|
54
|
+
export type EvaluateRulesInput = z.infer<typeof evaluateRulesInputSchema>;
|
|
55
|
+
/**
|
|
56
|
+
* Tool definition for evaluate_rules
|
|
57
|
+
*/
|
|
58
|
+
export declare const evaluateRulesTool: McpToolDefinition;
|
|
59
|
+
/**
|
|
60
|
+
* Execute evaluate_rules
|
|
61
|
+
*/
|
|
62
|
+
export declare function executeEvaluateRules(input: unknown, context: ToolContext): Promise<ToolResult>;
|
|
63
|
+
export declare const rulesTools: McpToolDefinition[];
|
|
64
|
+
export declare const rulesExecutors: Record<string, (input: unknown, context: ToolContext) => Promise<ToolResult>>;
|
|
65
|
+
export {};
|
|
66
|
+
//# sourceMappingURL=rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/tools/rules.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAQ9E;;GAEG;AACH,QAAA,MAAM,uBAAuB,gDAAe,CAAC;AAE7C,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,iBAQ9B,CAAC;AAWF;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAyCrB;AAMD;;GAEG;AACH,QAAA,MAAM,qBAAqB;;;;;;EAEzB,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,iBAc5B,CAAC;AAsBF;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAwDrB;AAMD;;GAEG;AACH,QAAA,MAAM,wBAAwB;;;;;;;;;;;;EAI5B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,iBAsB/B,CAAC;AAuBF;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CA6DrB;AAMD,eAAO,MAAM,UAAU,EAAE,iBAAiB,EAIzC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,MAAM,CACjC,MAAM,EACN,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,CAK9D,CAAC"}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Content Rules tools
|
|
3
|
+
*/
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
import { CACHE_TTL } from "../cache.js";
|
|
6
|
+
import { formatTable, formatStatus, formatKeyValue } from "../formatter.js";
|
|
7
|
+
// ============================================
|
|
8
|
+
// list_rule_sets
|
|
9
|
+
// ============================================
|
|
10
|
+
/**
|
|
11
|
+
* Input schema for list_rule_sets
|
|
12
|
+
*/
|
|
13
|
+
const listRuleSetsInputSchema = z.object({});
|
|
14
|
+
/**
|
|
15
|
+
* Tool definition for list_rule_sets
|
|
16
|
+
*/
|
|
17
|
+
export const listRuleSetsTool = {
|
|
18
|
+
name: "list_rule_sets",
|
|
19
|
+
description: "List all available content rule sets. Rule sets define quality, style, and compliance rules that content can be evaluated against.",
|
|
20
|
+
inputSchema: {
|
|
21
|
+
type: "object",
|
|
22
|
+
properties: {},
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Execute list_rule_sets
|
|
27
|
+
*/
|
|
28
|
+
export async function executeListRuleSets(input, context) {
|
|
29
|
+
const parsed = listRuleSetsInputSchema.safeParse(input || {});
|
|
30
|
+
if (!parsed.success) {
|
|
31
|
+
return {
|
|
32
|
+
success: false,
|
|
33
|
+
markdown: `**Error:** Invalid input - ${parsed.error.message}`,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
const response = await context.client.get("/rule-sets", {}, CACHE_TTL.lists);
|
|
38
|
+
const ruleSets = response.data;
|
|
39
|
+
const headers = ["ID", "Name", "Description", "Rules", "Enabled"];
|
|
40
|
+
const rows = ruleSets.map((rs) => [
|
|
41
|
+
rs.id,
|
|
42
|
+
rs.name,
|
|
43
|
+
rs.description || "-",
|
|
44
|
+
String(rs.rules_count),
|
|
45
|
+
rs.enabled ? "Yes" : "No",
|
|
46
|
+
]);
|
|
47
|
+
const table = formatTable(headers, rows);
|
|
48
|
+
return {
|
|
49
|
+
success: true,
|
|
50
|
+
markdown: `## Rule Sets\n\n${table}\n\n${ruleSets.length} rule set(s) found.`,
|
|
51
|
+
data: response,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
const message = error instanceof Error ? error.message : "Unknown error";
|
|
56
|
+
return {
|
|
57
|
+
success: false,
|
|
58
|
+
markdown: `**Error:** Failed to list rule sets - ${message}`,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// ============================================
|
|
63
|
+
// get_rule_set
|
|
64
|
+
// ============================================
|
|
65
|
+
/**
|
|
66
|
+
* Input schema for get_rule_set
|
|
67
|
+
*/
|
|
68
|
+
const getRuleSetInputSchema = z.object({
|
|
69
|
+
rule_set_id: z.string().min(1),
|
|
70
|
+
});
|
|
71
|
+
/**
|
|
72
|
+
* Tool definition for get_rule_set
|
|
73
|
+
*/
|
|
74
|
+
export const getRuleSetTool = {
|
|
75
|
+
name: "get_rule_set",
|
|
76
|
+
description: "Get details of a specific rule set, including all its individual rules. Use list_rule_sets first to find available rule set IDs.",
|
|
77
|
+
inputSchema: {
|
|
78
|
+
type: "object",
|
|
79
|
+
properties: {
|
|
80
|
+
rule_set_id: {
|
|
81
|
+
type: "string",
|
|
82
|
+
description: "The rule set ID to retrieve (required)",
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
required: ["rule_set_id"],
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* Execute get_rule_set
|
|
90
|
+
*/
|
|
91
|
+
export async function executeGetRuleSet(input, context) {
|
|
92
|
+
const parsed = getRuleSetInputSchema.safeParse(input);
|
|
93
|
+
if (!parsed.success) {
|
|
94
|
+
return {
|
|
95
|
+
success: false,
|
|
96
|
+
markdown: `**Error:** Invalid input - ${parsed.error.message}`,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
const { rule_set_id } = parsed.data;
|
|
100
|
+
try {
|
|
101
|
+
const response = await context.client.get(`/rule-sets/${rule_set_id}`, {}, CACHE_TTL.resources);
|
|
102
|
+
const ruleSet = response.data;
|
|
103
|
+
let markdown = `## Rule Set: ${ruleSet.name}\n\n`;
|
|
104
|
+
markdown += formatKeyValue({
|
|
105
|
+
ID: ruleSet.id,
|
|
106
|
+
Name: ruleSet.name,
|
|
107
|
+
Description: ruleSet.description,
|
|
108
|
+
"Rules Count": ruleSet.rules_count,
|
|
109
|
+
Enabled: ruleSet.enabled ? "Yes" : "No",
|
|
110
|
+
});
|
|
111
|
+
if (ruleSet.rules.length > 0) {
|
|
112
|
+
markdown += `\n\n### Rules\n\n`;
|
|
113
|
+
const headers = ["ID", "Name", "Type", "Severity", "Enabled"];
|
|
114
|
+
const rows = ruleSet.rules.map((rule) => [
|
|
115
|
+
rule.id,
|
|
116
|
+
rule.name,
|
|
117
|
+
rule.type,
|
|
118
|
+
rule.severity,
|
|
119
|
+
rule.enabled ? "Yes" : "No",
|
|
120
|
+
]);
|
|
121
|
+
markdown += formatTable(headers, rows);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
markdown += `\n\n_No rules defined in this rule set._`;
|
|
125
|
+
}
|
|
126
|
+
return {
|
|
127
|
+
success: true,
|
|
128
|
+
markdown,
|
|
129
|
+
data: response,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
const message = error instanceof Error ? error.message : "Unknown error";
|
|
134
|
+
return {
|
|
135
|
+
success: false,
|
|
136
|
+
markdown: `**Error:** Failed to get rule set - ${message}`,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
// ============================================
|
|
141
|
+
// evaluate_rules
|
|
142
|
+
// ============================================
|
|
143
|
+
/**
|
|
144
|
+
* Input schema for evaluate_rules
|
|
145
|
+
*/
|
|
146
|
+
const evaluateRulesInputSchema = z.object({
|
|
147
|
+
rule_set_id: z.string().min(1),
|
|
148
|
+
content_id: z.string().min(1),
|
|
149
|
+
save_results: z.boolean().optional().default(true),
|
|
150
|
+
});
|
|
151
|
+
/**
|
|
152
|
+
* Tool definition for evaluate_rules
|
|
153
|
+
*/
|
|
154
|
+
export const evaluateRulesTool = {
|
|
155
|
+
name: "evaluate_rules",
|
|
156
|
+
description: "Evaluate content against a rule set. Returns pass/fail results for each rule, an overall status, and a summary. Use list_rule_sets to find rule set IDs and list_content to find content IDs.",
|
|
157
|
+
inputSchema: {
|
|
158
|
+
type: "object",
|
|
159
|
+
properties: {
|
|
160
|
+
rule_set_id: {
|
|
161
|
+
type: "string",
|
|
162
|
+
description: "The rule set ID to evaluate against (required)",
|
|
163
|
+
},
|
|
164
|
+
content_id: {
|
|
165
|
+
type: "string",
|
|
166
|
+
description: "The content ID to evaluate (required)",
|
|
167
|
+
},
|
|
168
|
+
save_results: {
|
|
169
|
+
type: "boolean",
|
|
170
|
+
description: "Whether to save evaluation results (default: true)",
|
|
171
|
+
},
|
|
172
|
+
},
|
|
173
|
+
required: ["rule_set_id", "content_id"],
|
|
174
|
+
},
|
|
175
|
+
};
|
|
176
|
+
/**
|
|
177
|
+
* Execute evaluate_rules
|
|
178
|
+
*/
|
|
179
|
+
export async function executeEvaluateRules(input, context) {
|
|
180
|
+
const parsed = evaluateRulesInputSchema.safeParse(input);
|
|
181
|
+
if (!parsed.success) {
|
|
182
|
+
return {
|
|
183
|
+
success: false,
|
|
184
|
+
markdown: `**Error:** Invalid input - ${parsed.error.message}`,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
const { rule_set_id, content_id, save_results } = parsed.data;
|
|
188
|
+
try {
|
|
189
|
+
const response = await context.client.post(`/rule-sets/${rule_set_id}/evaluate`, {
|
|
190
|
+
content_id,
|
|
191
|
+
save_results,
|
|
192
|
+
});
|
|
193
|
+
const evaluation = response.data;
|
|
194
|
+
let markdown = `## Rule Evaluation Results\n\n`;
|
|
195
|
+
markdown += formatKeyValue({
|
|
196
|
+
"Evaluation ID": evaluation.evaluation_id,
|
|
197
|
+
"Rule Set": evaluation.rule_set_id,
|
|
198
|
+
"Content ID": evaluation.content_id,
|
|
199
|
+
"Overall Status": formatStatus(evaluation.overall_status),
|
|
200
|
+
"Total Rules": evaluation.total_rules,
|
|
201
|
+
Passed: evaluation.passed_count,
|
|
202
|
+
Failed: evaluation.failed_count,
|
|
203
|
+
});
|
|
204
|
+
if (evaluation.summary) {
|
|
205
|
+
markdown += `\n\n> ${evaluation.summary}`;
|
|
206
|
+
}
|
|
207
|
+
if (evaluation.results.length > 0) {
|
|
208
|
+
markdown += `\n\n### Results by Rule\n\n`;
|
|
209
|
+
const headers = ["Rule", "Status", "Severity", "Message"];
|
|
210
|
+
const rows = evaluation.results.map((r) => [
|
|
211
|
+
r.rule_name,
|
|
212
|
+
r.passed ? "Pass" : "Fail",
|
|
213
|
+
r.severity,
|
|
214
|
+
r.message || "-",
|
|
215
|
+
]);
|
|
216
|
+
markdown += formatTable(headers, rows);
|
|
217
|
+
}
|
|
218
|
+
return {
|
|
219
|
+
success: true,
|
|
220
|
+
markdown,
|
|
221
|
+
data: response,
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
catch (error) {
|
|
225
|
+
const message = error instanceof Error ? error.message : "Unknown error";
|
|
226
|
+
return {
|
|
227
|
+
success: false,
|
|
228
|
+
markdown: `**Error:** Failed to evaluate rules - ${message}`,
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
// ============================================
|
|
233
|
+
// Export all rules tools
|
|
234
|
+
// ============================================
|
|
235
|
+
export const rulesTools = [
|
|
236
|
+
listRuleSetsTool,
|
|
237
|
+
getRuleSetTool,
|
|
238
|
+
evaluateRulesTool,
|
|
239
|
+
];
|
|
240
|
+
export const rulesExecutors = {
|
|
241
|
+
list_rule_sets: executeListRuleSets,
|
|
242
|
+
get_rule_set: executeGetRuleSet,
|
|
243
|
+
evaluate_rules: executeEvaluateRules,
|
|
244
|
+
};
|
|
245
|
+
//# sourceMappingURL=rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/tools/rules.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/serp.js
CHANGED
|
@@ -10,8 +10,8 @@ import { formatTable, formatKeyValue, truncate, } from "../formatter.js";
|
|
|
10
10
|
// ============================================
|
|
11
11
|
const analyzeSerpInputSchema = z.object({
|
|
12
12
|
keyword: z.string().min(1).max(200),
|
|
13
|
-
country: z.string().
|
|
14
|
-
language: z.string().
|
|
13
|
+
country: z.string().regex(/^[a-z]{2}$/, "Must be a lowercase ISO 3166-1 alpha-2 code (e.g., 'us', 'de')").optional().default("us"),
|
|
14
|
+
language: z.string().regex(/^[a-z]{2}$/, "Must be a lowercase ISO 639-1 code (e.g., 'en', 'de')").optional().default("en"),
|
|
15
15
|
});
|
|
16
16
|
export const analyzeSerpTool = {
|
|
17
17
|
name: "analyze_serp",
|
|
@@ -110,8 +110,8 @@ export async function executeAnalyzeSerp(input, context) {
|
|
|
110
110
|
const analyzeCompetitorsInputSchema = z.object({
|
|
111
111
|
keyword: z.string().min(1).max(200),
|
|
112
112
|
urls: z.array(z.string().url()).optional(),
|
|
113
|
-
country: z.string().
|
|
114
|
-
language: z.string().
|
|
113
|
+
country: z.string().regex(/^[a-z]{2}$/, "Must be a lowercase ISO 3166-1 alpha-2 code (e.g., 'us', 'de')").optional().default("us"),
|
|
114
|
+
language: z.string().regex(/^[a-z]{2}$/, "Must be a lowercase ISO 639-1 code (e.g., 'en', 'de')").optional().default("en"),
|
|
115
115
|
});
|
|
116
116
|
export const analyzeCompetitorsTool = {
|
|
117
117
|
name: "analyze_competitors",
|
package/dist/tools/serp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serp.js","sourceRoot":"","sources":["../../src/tools/serp.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,OAAO,EACL,WAAW,EACX,cAAc,EACd,QAAQ,GACT,MAAM,iBAAiB,CAAC;AAmDzB,+CAA+C;AAC/C,eAAe;AACf,+CAA+C;AAE/C,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"serp.js","sourceRoot":"","sources":["../../src/tools/serp.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,32 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@frase/mcp-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Frase MCP Server - Use Claude Desktop to interact with your Frase account",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./tools": {
|
|
14
|
+
"types": "./dist/tools/index.d.ts",
|
|
15
|
+
"import": "./dist/tools/index.js"
|
|
16
|
+
},
|
|
17
|
+
"./types": {
|
|
18
|
+
"types": "./dist/types.d.ts",
|
|
19
|
+
"import": "./dist/types.js"
|
|
20
|
+
},
|
|
21
|
+
"./api-client": {
|
|
22
|
+
"types": "./dist/api-client.d.ts",
|
|
23
|
+
"import": "./dist/api-client.js"
|
|
24
|
+
},
|
|
25
|
+
"./config": {
|
|
26
|
+
"types": "./dist/config.d.ts",
|
|
27
|
+
"import": "./dist/config.js"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
8
30
|
"bin": {
|
|
9
31
|
"frase-mcp": "./dist/index.js"
|
|
10
32
|
},
|
|
@@ -61,9 +83,11 @@
|
|
|
61
83
|
},
|
|
62
84
|
"files": [
|
|
63
85
|
"dist",
|
|
86
|
+
"server.json",
|
|
64
87
|
"README.md",
|
|
65
88
|
"CHANGELOG.md"
|
|
66
89
|
],
|
|
90
|
+
"mcpName": "io.frase/mcp-server",
|
|
67
91
|
"publishConfig": {
|
|
68
92
|
"access": "public"
|
|
69
93
|
}
|
package/server.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
|
+
"name": "io.frase/mcp-server",
|
|
4
|
+
"title": "Frase SEO",
|
|
5
|
+
"description": "Connect to your Frase account — manage content briefs, research, site audits, AI visibility tracking, SERP analysis, and SEO optimization with 70+ tools.",
|
|
6
|
+
"version": "0.2.0",
|
|
7
|
+
"websiteUrl": "https://frase.io/agents",
|
|
8
|
+
"repository": {
|
|
9
|
+
"url": "https://github.com/frase-io/frase.git",
|
|
10
|
+
"source": "github"
|
|
11
|
+
},
|
|
12
|
+
"packages": [
|
|
13
|
+
{
|
|
14
|
+
"registryType": "npm",
|
|
15
|
+
"identifier": "@frase/mcp-server",
|
|
16
|
+
"version": "0.2.0",
|
|
17
|
+
"transport": {
|
|
18
|
+
"type": "stdio"
|
|
19
|
+
},
|
|
20
|
+
"environmentVariables": [
|
|
21
|
+
{
|
|
22
|
+
"name": "FRASE_API_KEY",
|
|
23
|
+
"description": "Your Frase API key from Settings > API (https://next.frase.io/settings/api)",
|
|
24
|
+
"isRequired": true,
|
|
25
|
+
"isSecret": true
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"name": "FRASE_API_URL",
|
|
29
|
+
"description": "Frase API endpoint (leave default unless instructed otherwise)",
|
|
30
|
+
"isRequired": false
|
|
31
|
+
}
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
}
|