@heyseo/mcp-server 0.1.2 → 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.
@@ -0,0 +1,162 @@
1
+ /**
2
+ * SEO Audit Workflow Tools
3
+ * Composite workflow tools for high-level site analysis
4
+ */
5
+ import { z } from 'zod';
6
+ import { formatResponse, formatErrorResponse } from '../utils/response-formatter.js';
7
+ // Schema for site audit workflow
8
+ export const siteAuditSchema = z.object({
9
+ siteId: z.string().describe('The ID of the site to audit'),
10
+ days: z
11
+ .number()
12
+ .min(7)
13
+ .max(90)
14
+ .optional()
15
+ .default(28)
16
+ .describe('Number of days to analyze'),
17
+ });
18
+ /**
19
+ * Execute site audit workflow
20
+ * Performs comprehensive SEO audit including GSC, GA4, and opportunities analysis
21
+ */
22
+ export async function executeSiteAudit(client, input) {
23
+ try {
24
+ // Calculate date range
25
+ const endDate = new Date().toISOString().split('T')[0];
26
+ const startDate = new Date(Date.now() - input.days * 24 * 60 * 60 * 1000)
27
+ .toISOString()
28
+ .split('T')[0];
29
+ // Fetch all data in parallel
30
+ const [site, overview, topKeywords, topPages, opportunities] = await Promise.all([
31
+ client.getSite(input.siteId),
32
+ client.getSiteOverview(input.siteId, { startDate, endDate }),
33
+ client.getTopKeywords(input.siteId, { startDate, endDate, limit: 10 }),
34
+ client.getTopPages(input.siteId, { startDate, endDate, limit: 10 }),
35
+ client.getOpportunities(input.siteId),
36
+ ]);
37
+ // Extract and format GSC metrics
38
+ const gscRow = overview.gsc.rows[0];
39
+ const gscMetrics = {
40
+ clicks: gscRow?.clicks || 0,
41
+ impressions: gscRow?.impressions || 0,
42
+ ctr: gscRow ? `${(gscRow.ctr * 100).toFixed(2)}%` : '0%',
43
+ avgPosition: gscRow?.position.toFixed(1) || 'N/A',
44
+ };
45
+ // Extract and format GA4 metrics
46
+ const ga4Row = overview.ga4[0];
47
+ const ga4Metrics = {
48
+ sessions: ga4Row?.metrics?.sessions || 0,
49
+ activeUsers: ga4Row?.metrics?.activeUsers || 0,
50
+ bounceRate: ga4Row?.metrics?.bounceRate
51
+ ? `${(ga4Row.metrics.bounceRate * 100).toFixed(1)}%`
52
+ : '0%',
53
+ engagementRate: ga4Row?.metrics?.engagementRate
54
+ ? `${(ga4Row.metrics.engagementRate * 100).toFixed(1)}%`
55
+ : '0%',
56
+ };
57
+ // Format top keywords
58
+ const topKeywordsList = topKeywords.rows.slice(0, 10).map((row, index) => ({
59
+ rank: index + 1,
60
+ keyword: row.keys[0] || 'N/A',
61
+ clicks: row.clicks || 0,
62
+ position: row.position.toFixed(1),
63
+ }));
64
+ // Format top pages
65
+ const topPagesList = topPages.rows.slice(0, 10).map((row, index) => ({
66
+ rank: index + 1,
67
+ page: row.keys[0] || 'N/A',
68
+ clicks: row.clicks || 0,
69
+ position: row.position.toFixed(1),
70
+ }));
71
+ // Count opportunities by type and find high-priority items
72
+ const opportunitiesByType = {
73
+ keyword: 0,
74
+ page: 0,
75
+ technical: 0,
76
+ content: 0,
77
+ };
78
+ const highPriorityOpportunities = [];
79
+ for (const opp of opportunities) {
80
+ const type = opp.type;
81
+ if (type in opportunitiesByType) {
82
+ opportunitiesByType[type]++;
83
+ }
84
+ if (opp.priority === 'high' && highPriorityOpportunities.length < 5) {
85
+ highPriorityOpportunities.push({
86
+ type: opp.type,
87
+ title: opp.title,
88
+ priority: opp.priority,
89
+ });
90
+ }
91
+ }
92
+ // Build audit report
93
+ const auditReport = {
94
+ siteInfo: {
95
+ name: site.name || 'N/A',
96
+ url: site.url || 'N/A',
97
+ gscConnected: site.gscConnected,
98
+ ga4Connected: site.ga4Connected,
99
+ },
100
+ period: {
101
+ startDate,
102
+ endDate,
103
+ days: input.days,
104
+ },
105
+ metrics: {
106
+ gsc: gscMetrics,
107
+ ga4: ga4Metrics,
108
+ },
109
+ topKeywords: topKeywordsList,
110
+ topPages: topPagesList,
111
+ opportunities: {
112
+ total: opportunities.length,
113
+ byType: opportunitiesByType,
114
+ topPriority: highPriorityOpportunities,
115
+ },
116
+ };
117
+ return formatResponse(true, auditReport, {
118
+ summary: `Site audit for ${site.name || site.url} completed`,
119
+ period: { startDate, endDate },
120
+ });
121
+ }
122
+ catch (error) {
123
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
124
+ return formatErrorResponse(errorMessage, 'siteAudit');
125
+ }
126
+ }
127
+ /**
128
+ * Workflow tool definitions for MCP
129
+ */
130
+ export const workflowTools = [
131
+ {
132
+ name: 'heyseo_site_audit',
133
+ description: `Perform comprehensive SEO audit for a site.
134
+
135
+ Analyzes GSC performance data, GA4 user engagement metrics, top keywords and pages, and SEO opportunities.
136
+ Returns a complete site health assessment with actionable insights.`,
137
+ inputSchema: {
138
+ type: 'object',
139
+ properties: {
140
+ siteId: {
141
+ type: 'string',
142
+ description: 'The ID of the site to audit',
143
+ },
144
+ days: {
145
+ type: 'number',
146
+ minimum: 7,
147
+ maximum: 90,
148
+ default: 28,
149
+ description: 'Number of days to analyze',
150
+ },
151
+ },
152
+ required: ['siteId'],
153
+ },
154
+ hints: {
155
+ readOnlyHint: true,
156
+ destructiveHint: false,
157
+ idempotentHint: true,
158
+ openWorldHint: true,
159
+ },
160
+ },
161
+ ];
162
+ //# sourceMappingURL=workflows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/tools/workflows.ts"],"names":[],"mappings":"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"}
@@ -55,6 +55,22 @@ export declare class HeySeoApiClient {
55
55
  * Delete a Kanban task
56
56
  */
57
57
  deleteTask(taskId: string): Promise<void>;
58
+ /**
59
+ * Bulk create multiple tasks
60
+ */
61
+ bulkCreateTasks(siteId: string, tasks: Array<{
62
+ title: string;
63
+ description?: string;
64
+ priority?: 'low' | 'medium' | 'high';
65
+ category?: 'technical' | 'content' | 'links' | 'ux';
66
+ }>): Promise<KanbanTask[]>;
67
+ /**
68
+ * Bulk update multiple tasks
69
+ */
70
+ bulkUpdateTasks(taskIds: string[], updates: {
71
+ status?: 'todo' | 'in_progress' | 'done';
72
+ priority?: 'low' | 'medium' | 'high';
73
+ }): Promise<KanbanTask[]>;
58
74
  /**
59
75
  * Get top keywords for a site
60
76
  */
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/utils/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/utils/api-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,cAAc,EACd,cAAc,EACd,cAAc,EACd,MAAM,EACN,eAAe,EACf,cAAc,EACd,UAAU,EAEX,MAAM,aAAa,CAAC;AAErB,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,YAAY;YAIlB,OAAO;IAuBrB;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAQvC;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAUlD;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAqB/D;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAyBzD;;OAEG;IACG,gBAAgB,CACpB,GAAG,EAAE,MAAM,EACX,QAAQ,GAAE,QAAQ,GAAG,SAAoB,GACxC,OAAO,CAAC,eAAe,CAAC;IAc3B;;OAEG;IACG,gBAAgB,CACpB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,GAClD,OAAO,CAAC,cAAc,EAAE,CAAC;IAW5B;;OAEG;IACG,UAAU,CACd,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GACvD,OAAO,CAAC,UAAU,CAAC;IActB;;OAEG;IACG,QAAQ,CACZ,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;QACP,MAAM,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,MAAM,CAAC;QACzC,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;QACrC,QAAQ,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC;KAChD,GACL,OAAO,CAAC,UAAU,EAAE,CAAC;IAgBxB;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAUlD;;OAEG;IACG,UAAU,CACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC,CAAC,GAC/F,OAAO,CAAC,UAAU,CAAC;IActB;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/C;;OAEG;IACG,eAAe,CACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;QACrC,QAAQ,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC;KACrD,CAAC,GACD,OAAO,CAAC,UAAU,EAAE,CAAC;IAsBxB;;OAEG;IACG,eAAe,CACnB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE;QACP,MAAM,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,MAAM,CAAC;QACzC,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;KACtC,GACA,OAAO,CAAC,UAAU,EAAE,CAAC;IAiBxB;;OAEG;IACG,cAAc,CAClB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KACX,GACL,OAAO,CAAC,cAAc,CAAC;IAgB1B;;OAEG;IACG,WAAW,CACf,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KACX,GACL,OAAO,CAAC,cAAc,CAAC;IAgB1B;;OAEG;IACG,eAAe,CACnB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;KACb,GACL,OAAO,CAAC;QACT,GAAG,EAAE,cAAc,CAAC;QACpB,GAAG,EAAE,MAAM,EAAE,CAAC;KACf,CAAC;CA+BH;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM,GAAG,eAAe,CAWnF"}
@@ -176,6 +176,43 @@ export class HeySeoApiClient {
176
176
  throw new Error(response.error || 'Failed to delete task');
177
177
  }
178
178
  }
179
+ /**
180
+ * Bulk create multiple tasks
181
+ */
182
+ async bulkCreateTasks(siteId, tasks) {
183
+ const response = await this.request('/api/mcp/tasks/bulk', {
184
+ method: 'POST',
185
+ body: JSON.stringify({
186
+ siteId,
187
+ tasks: tasks.map((task) => ({
188
+ ...task,
189
+ status: 'todo',
190
+ priority: task.priority || 'medium',
191
+ category: task.category || 'technical',
192
+ })),
193
+ }),
194
+ });
195
+ if (!response.success || !response.data) {
196
+ throw new Error(response.error || 'Failed to bulk create tasks');
197
+ }
198
+ return response.data;
199
+ }
200
+ /**
201
+ * Bulk update multiple tasks
202
+ */
203
+ async bulkUpdateTasks(taskIds, updates) {
204
+ const response = await this.request('/api/mcp/tasks/bulk', {
205
+ method: 'PATCH',
206
+ body: JSON.stringify({
207
+ taskIds,
208
+ updates,
209
+ }),
210
+ });
211
+ if (!response.success || !response.data) {
212
+ throw new Error(response.error || 'Failed to bulk update tasks');
213
+ }
214
+ return response.data;
215
+ }
179
216
  /**
180
217
  * Get top keywords for a site
181
218
  */
@@ -245,7 +282,7 @@ export class HeySeoApiClient {
245
282
  */
246
283
  export function createApiClient(config = {}) {
247
284
  const apiKey = config.apiKey || process.env.HEYSEO_API_KEY;
248
- const baseUrl = config.baseUrl || process.env.HEYSEO_API_URL || 'https://heyseo.app';
285
+ const baseUrl = config.baseUrl || process.env.HEYSEO_API_URL || 'https://www.heyseo.app';
249
286
  if (!apiKey) {
250
287
  throw new Error('HeySeo API key is required. Set HEYSEO_API_KEY environment variable or pass apiKey in config.');
251
288
  }
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/utils/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/utils/api-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Response Formatter Utility
3
+ * Provides standardized response formatting functions for MCP tool responses
4
+ */
5
+ /**
6
+ * Standardized response format for all MCP tool responses
7
+ */
8
+ export interface FormattedResponse {
9
+ success: boolean;
10
+ summary?: string;
11
+ data: unknown;
12
+ meta?: {
13
+ period?: {
14
+ startDate?: string;
15
+ endDate?: string;
16
+ };
17
+ totalResults?: number;
18
+ rowCount?: number;
19
+ [key: string]: unknown;
20
+ };
21
+ error?: string;
22
+ }
23
+ /**
24
+ * Options for formatting responses
25
+ */
26
+ export interface FormatResponseOptions {
27
+ summary?: string;
28
+ period?: {
29
+ startDate?: string;
30
+ endDate?: string;
31
+ };
32
+ totalResults?: number;
33
+ rowCount?: number;
34
+ }
35
+ /**
36
+ * Format a successful response into standardized JSON format
37
+ *
38
+ * @param success - Whether the operation was successful
39
+ * @param data - The response data
40
+ * @param options - Optional formatting options
41
+ * @returns JSON string of FormattedResponse
42
+ */
43
+ export declare function formatResponse(success: boolean, data: unknown, options?: FormatResponseOptions): string;
44
+ /**
45
+ * Format an error response into standardized JSON format
46
+ *
47
+ * @param message - The error message
48
+ * @param context - Optional context information
49
+ * @returns JSON string of FormattedResponse with success=false
50
+ */
51
+ export declare function formatErrorResponse(message: string, context?: string): string;
52
+ /**
53
+ * Get actionable suggestions based on error message
54
+ * Helps LLM agents self-correct
55
+ *
56
+ * @param errorMessage - The error message to analyze
57
+ * @returns Actionable suggestion string
58
+ */
59
+ export declare function getSuggestion(errorMessage: string): string;
60
+ /**
61
+ * Truncate text to a maximum length and add ellipsis with details
62
+ *
63
+ * @param text - The text to truncate
64
+ * @param maxLength - Maximum length before truncation (default: 25000)
65
+ * @returns Truncated text with ellipsis message if over limit
66
+ */
67
+ export declare function truncateText(text: string, maxLength?: number): string;
68
+ //# sourceMappingURL=response-formatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-formatter.d.ts","sourceRoot":"","sources":["../../src/utils/response-formatter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE;YACP,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,OAAO,EACb,OAAO,GAAE,qBAA0B,GAClC,MAAM,CAgCR;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAyB7E;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAyD1D;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,MAAc,GAAG,MAAM,CAO5E"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * Response Formatter Utility
3
+ * Provides standardized response formatting functions for MCP tool responses
4
+ */
5
+ /**
6
+ * Format a successful response into standardized JSON format
7
+ *
8
+ * @param success - Whether the operation was successful
9
+ * @param data - The response data
10
+ * @param options - Optional formatting options
11
+ * @returns JSON string of FormattedResponse
12
+ */
13
+ export function formatResponse(success, data, options = {}) {
14
+ const response = {
15
+ success,
16
+ data,
17
+ };
18
+ // Add summary if provided
19
+ if (options.summary !== undefined) {
20
+ response.summary = options.summary;
21
+ }
22
+ // Build meta object if any meta options are provided
23
+ const metaEntries = [];
24
+ if (options.period !== undefined) {
25
+ metaEntries.push(['period', options.period]);
26
+ }
27
+ if (options.totalResults !== undefined) {
28
+ metaEntries.push(['totalResults', options.totalResults]);
29
+ }
30
+ if (options.rowCount !== undefined) {
31
+ metaEntries.push(['rowCount', options.rowCount]);
32
+ }
33
+ // Only add meta if there are entries
34
+ if (metaEntries.length > 0) {
35
+ response.meta = Object.fromEntries(metaEntries);
36
+ }
37
+ return JSON.stringify(response, null, 2);
38
+ }
39
+ /**
40
+ * Format an error response into standardized JSON format
41
+ *
42
+ * @param message - The error message
43
+ * @param context - Optional context information
44
+ * @returns JSON string of FormattedResponse with success=false
45
+ */
46
+ export function formatErrorResponse(message, context) {
47
+ const suggestion = getSuggestion(message);
48
+ const response = {
49
+ success: false,
50
+ data: null,
51
+ error: message,
52
+ };
53
+ // Add context and suggestion in meta if provided or available
54
+ const metaEntries = [];
55
+ if (context !== undefined) {
56
+ metaEntries.push(['context', context]);
57
+ }
58
+ if (suggestion) {
59
+ metaEntries.push(['suggestion', suggestion]);
60
+ }
61
+ if (metaEntries.length > 0) {
62
+ response.meta = Object.fromEntries(metaEntries);
63
+ }
64
+ return JSON.stringify(response, null, 2);
65
+ }
66
+ /**
67
+ * Get actionable suggestions based on error message
68
+ * Helps LLM agents self-correct
69
+ *
70
+ * @param errorMessage - The error message to analyze
71
+ * @returns Actionable suggestion string
72
+ */
73
+ export function getSuggestion(errorMessage) {
74
+ const lowerError = errorMessage.toLowerCase();
75
+ // Rate limit errors
76
+ if (lowerError.includes('rate limit') || lowerError.includes('429')) {
77
+ return 'Consider batching requests or implementing exponential backoff. Try again after the rate limit window resets. Check the error details for reset time.';
78
+ }
79
+ // API key errors
80
+ if (lowerError.includes('api key') ||
81
+ lowerError.includes('unauthorized') ||
82
+ lowerError.includes('401') ||
83
+ lowerError.includes('authentication')) {
84
+ return 'Verify that your API key is valid and has not expired. Check that the API key is properly set in the environment or configuration. Ensure you have the required permissions.';
85
+ }
86
+ // Site/resource not found errors
87
+ if (lowerError.includes('site') ||
88
+ lowerError.includes('not found') ||
89
+ lowerError.includes('404') ||
90
+ lowerError.includes('does not exist')) {
91
+ return 'Verify that the site ID is correct and that the site is connected to your account. Check that you have access to this site. Try listing all available sites to confirm the ID.';
92
+ }
93
+ // Date range errors
94
+ if (lowerError.includes('date') ||
95
+ lowerError.includes('start') ||
96
+ lowerError.includes('end')) {
97
+ return 'Check that start date is before end date. Ensure dates are in valid format (YYYY-MM-DD). Verify that the date range contains data for the requested period.';
98
+ }
99
+ // Invalid parameter errors
100
+ if (lowerError.includes('parameter') ||
101
+ lowerError.includes('invalid') ||
102
+ lowerError.includes('required')) {
103
+ return 'Review the required parameters and ensure they are provided correctly. Check the tool documentation for valid parameter values and formats. Ensure all mandatory parameters are included.';
104
+ }
105
+ // Server errors
106
+ if (lowerError.includes('server') ||
107
+ lowerError.includes('500') ||
108
+ lowerError.includes('503')) {
109
+ return 'The server is temporarily unavailable. Try again in a few moments. If the problem persists, check the service status page.';
110
+ }
111
+ // Generic fallback
112
+ return 'Please check the error details above. Review the tool documentation and verify your parameters are correct. Try again or contact support if the issue persists.';
113
+ }
114
+ /**
115
+ * Truncate text to a maximum length and add ellipsis with details
116
+ *
117
+ * @param text - The text to truncate
118
+ * @param maxLength - Maximum length before truncation (default: 25000)
119
+ * @returns Truncated text with ellipsis message if over limit
120
+ */
121
+ export function truncateText(text, maxLength = 25000) {
122
+ if (text.length <= maxLength) {
123
+ return text;
124
+ }
125
+ const omittedChars = text.length - maxLength;
126
+ return text.slice(0, maxLength) + `\n\n... (truncated, ${omittedChars} characters omitted)`;
127
+ }
128
+ //# sourceMappingURL=response-formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-formatter.js","sourceRoot":"","sources":["../../src/utils/response-formatter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@heyseo/mcp-server",
3
- "version": "0.1.2",
3
+ "version": "0.2.0",
4
4
  "description": "HeySeo MCP Server - Connect LLMs to your SEO data",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",