@heyseo/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 (82) hide show
  1. package/README.md +234 -60
  2. package/dist/index.js +872 -293
  3. package/dist/index.js.map +1 -1
  4. package/dist/prompts/index.d.ts.map +1 -1
  5. package/dist/prompts/index.js +93 -0
  6. package/dist/prompts/index.js.map +1 -1
  7. package/dist/resources/index.d.ts +1 -1
  8. package/dist/resources/index.d.ts.map +1 -1
  9. package/dist/resources/index.js +135 -4
  10. package/dist/resources/index.js.map +1 -1
  11. package/dist/tools/chat.d.ts +44 -0
  12. package/dist/tools/chat.d.ts.map +1 -0
  13. package/dist/tools/chat.js +37 -0
  14. package/dist/tools/chat.js.map +1 -0
  15. package/dist/tools/comparison.d.ts +1 -1
  16. package/dist/tools/conversations.d.ts +95 -0
  17. package/dist/tools/conversations.d.ts.map +1 -0
  18. package/dist/tools/conversations.js +110 -0
  19. package/dist/tools/conversations.js.map +1 -0
  20. package/dist/tools/dataforseo.d.ts +49 -0
  21. package/dist/tools/dataforseo.d.ts.map +1 -0
  22. package/dist/tools/dataforseo.js +37 -0
  23. package/dist/tools/dataforseo.js.map +1 -0
  24. package/dist/tools/index.d.ts +1126 -4
  25. package/dist/tools/index.d.ts.map +1 -1
  26. package/dist/tools/index.js +146 -6
  27. package/dist/tools/index.js.map +1 -1
  28. package/dist/tools/indexing.d.ts +228 -0
  29. package/dist/tools/indexing.d.ts.map +1 -0
  30. package/dist/tools/indexing.js +262 -0
  31. package/dist/tools/indexing.js.map +1 -0
  32. package/dist/tools/insights.d.ts +61 -0
  33. package/dist/tools/insights.d.ts.map +1 -0
  34. package/dist/tools/insights.js +85 -0
  35. package/dist/tools/insights.js.map +1 -0
  36. package/dist/tools/knowledge.d.ts +98 -0
  37. package/dist/tools/knowledge.d.ts.map +1 -0
  38. package/dist/tools/knowledge.js +69 -0
  39. package/dist/tools/knowledge.js.map +1 -0
  40. package/dist/tools/memory.d.ts +602 -0
  41. package/dist/tools/memory.d.ts.map +1 -0
  42. package/dist/tools/memory.js +395 -0
  43. package/dist/tools/memory.js.map +1 -0
  44. package/dist/tools/notifications.d.ts +75 -0
  45. package/dist/tools/notifications.d.ts.map +1 -0
  46. package/dist/tools/notifications.js +62 -0
  47. package/dist/tools/notifications.js.map +1 -0
  48. package/dist/tools/onpage.d.ts +71 -0
  49. package/dist/tools/onpage.d.ts.map +1 -0
  50. package/dist/tools/onpage.js +75 -0
  51. package/dist/tools/onpage.js.map +1 -0
  52. package/dist/tools/pagespeed.d.ts +39 -0
  53. package/dist/tools/pagespeed.d.ts.map +1 -1
  54. package/dist/tools/pagespeed.js +29 -0
  55. package/dist/tools/pagespeed.js.map +1 -1
  56. package/dist/tools/reports.d.ts +248 -0
  57. package/dist/tools/reports.d.ts.map +1 -0
  58. package/dist/tools/reports.js +234 -0
  59. package/dist/tools/reports.js.map +1 -0
  60. package/dist/tools/serp.d.ts +138 -0
  61. package/dist/tools/serp.d.ts.map +1 -0
  62. package/dist/tools/serp.js +105 -0
  63. package/dist/tools/serp.js.map +1 -0
  64. package/dist/tools/site.d.ts +47 -0
  65. package/dist/tools/site.d.ts.map +1 -1
  66. package/dist/tools/site.js +88 -1
  67. package/dist/tools/site.js.map +1 -1
  68. package/dist/tools/sitemaps.d.ts +72 -0
  69. package/dist/tools/sitemaps.d.ts.map +1 -0
  70. package/dist/tools/sitemaps.js +100 -0
  71. package/dist/tools/sitemaps.js.map +1 -0
  72. package/dist/tools/tasks.d.ts +70 -16
  73. package/dist/tools/tasks.d.ts.map +1 -1
  74. package/dist/tools/tasks.js +46 -0
  75. package/dist/tools/tasks.js.map +1 -1
  76. package/dist/types.d.ts +138 -0
  77. package/dist/types.d.ts.map +1 -1
  78. package/dist/utils/api-client.d.ts +103 -1
  79. package/dist/utils/api-client.d.ts.map +1 -1
  80. package/dist/utils/api-client.js +400 -1
  81. package/dist/utils/api-client.js.map +1 -1
  82. package/package.json +2 -1
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Conversations Tools
3
+ * Tools for managing AI chat conversations
4
+ */
5
+ import { z } from 'zod';
6
+ import type { HeySeoApiClient } from '../utils/api-client.js';
7
+ export declare const listConversationsSchema: z.ZodObject<{
8
+ siteId: z.ZodOptional<z.ZodString>;
9
+ }, "strip", z.ZodTypeAny, {
10
+ siteId?: string | undefined;
11
+ }, {
12
+ siteId?: string | undefined;
13
+ }>;
14
+ export type ListConversationsInput = z.infer<typeof listConversationsSchema>;
15
+ export declare const getConversationSchema: z.ZodObject<{
16
+ conversationId: z.ZodString;
17
+ }, "strip", z.ZodTypeAny, {
18
+ conversationId: string;
19
+ }, {
20
+ conversationId: string;
21
+ }>;
22
+ export type GetConversationInput = z.infer<typeof getConversationSchema>;
23
+ export declare const createConversationSchema: z.ZodObject<{
24
+ siteId: z.ZodString;
25
+ title: z.ZodOptional<z.ZodString>;
26
+ }, "strip", z.ZodTypeAny, {
27
+ siteId: string;
28
+ title?: string | undefined;
29
+ }, {
30
+ siteId: string;
31
+ title?: string | undefined;
32
+ }>;
33
+ export type CreateConversationInput = z.infer<typeof createConversationSchema>;
34
+ export declare const deleteConversationSchema: z.ZodObject<{
35
+ conversationId: z.ZodString;
36
+ }, "strip", z.ZodTypeAny, {
37
+ conversationId: string;
38
+ }, {
39
+ conversationId: string;
40
+ }>;
41
+ export type DeleteConversationInput = z.infer<typeof deleteConversationSchema>;
42
+ export declare function executeListConversations(client: HeySeoApiClient, input: ListConversationsInput): Promise<string>;
43
+ export declare function executeGetConversation(client: HeySeoApiClient, input: GetConversationInput): Promise<string>;
44
+ export declare function executeCreateConversation(client: HeySeoApiClient, input: CreateConversationInput): Promise<string>;
45
+ export declare function executeDeleteConversation(client: HeySeoApiClient, input: DeleteConversationInput): Promise<string>;
46
+ export declare const conversationTools: ({
47
+ name: string;
48
+ description: string;
49
+ inputSchema: {
50
+ type: string;
51
+ properties: {
52
+ siteId: {
53
+ type: string;
54
+ description: string;
55
+ };
56
+ conversationId?: undefined;
57
+ title?: undefined;
58
+ };
59
+ required: never[];
60
+ };
61
+ } | {
62
+ name: string;
63
+ description: string;
64
+ inputSchema: {
65
+ type: string;
66
+ properties: {
67
+ conversationId: {
68
+ type: string;
69
+ description: string;
70
+ };
71
+ siteId?: undefined;
72
+ title?: undefined;
73
+ };
74
+ required: string[];
75
+ };
76
+ } | {
77
+ name: string;
78
+ description: string;
79
+ inputSchema: {
80
+ type: string;
81
+ properties: {
82
+ siteId: {
83
+ type: string;
84
+ description: string;
85
+ };
86
+ title: {
87
+ type: string;
88
+ description: string;
89
+ };
90
+ conversationId?: undefined;
91
+ };
92
+ required: string[];
93
+ };
94
+ })[];
95
+ //# sourceMappingURL=conversations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversations.d.ts","sourceRoot":"","sources":["../../src/tools/conversations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,eAAO,MAAM,uBAAuB;;;;;;EAElC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE7E,eAAO,MAAM,qBAAqB;;;;;;EAEhC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEzE,eAAO,MAAM,wBAAwB;;;;;;;;;EAGnC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE/E,eAAO,MAAM,wBAAwB;;;;;;EAEnC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE/E,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsD7B,CAAC"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Conversations Tools
3
+ * Tools for managing AI chat conversations
4
+ */
5
+ import { z } from 'zod';
6
+ export const listConversationsSchema = z.object({
7
+ siteId: z.string().optional().describe('Filter conversations by site ID'),
8
+ });
9
+ export const getConversationSchema = z.object({
10
+ conversationId: z.string().describe('The ID of the conversation'),
11
+ });
12
+ export const createConversationSchema = z.object({
13
+ siteId: z.string().describe('The ID of the site'),
14
+ title: z.string().optional().describe('Optional title for the conversation'),
15
+ });
16
+ export const deleteConversationSchema = z.object({
17
+ conversationId: z.string().describe('The ID of the conversation to delete'),
18
+ });
19
+ export async function executeListConversations(client, input) {
20
+ try {
21
+ const result = await client.listConversations(input.siteId);
22
+ return JSON.stringify({ success: true, ...result }, null, 2);
23
+ }
24
+ catch (error) {
25
+ return JSON.stringify({ success: false, error: error instanceof Error ? error.message : 'Unknown error' });
26
+ }
27
+ }
28
+ export async function executeGetConversation(client, input) {
29
+ try {
30
+ const result = await client.getConversation(input.conversationId);
31
+ return JSON.stringify({ success: true, ...result }, null, 2);
32
+ }
33
+ catch (error) {
34
+ return JSON.stringify({ success: false, error: error instanceof Error ? error.message : 'Unknown error' });
35
+ }
36
+ }
37
+ export async function executeCreateConversation(client, input) {
38
+ try {
39
+ const result = await client.createConversation(input.siteId, input.title);
40
+ return JSON.stringify({ success: true, message: 'Conversation created', ...result }, null, 2);
41
+ }
42
+ catch (error) {
43
+ return JSON.stringify({ success: false, error: error instanceof Error ? error.message : 'Unknown error' });
44
+ }
45
+ }
46
+ export async function executeDeleteConversation(client, input) {
47
+ try {
48
+ await client.deleteConversation(input.conversationId);
49
+ return JSON.stringify({ success: true, message: 'Conversation deleted', conversationId: input.conversationId }, null, 2);
50
+ }
51
+ catch (error) {
52
+ return JSON.stringify({ success: false, error: error instanceof Error ? error.message : 'Unknown error' });
53
+ }
54
+ }
55
+ export const conversationTools = [
56
+ {
57
+ name: 'heyseo_list_conversations',
58
+ description: `List AI chat conversations.
59
+
60
+ Returns a list of previous conversations with the AI assistant, optionally filtered by site.`,
61
+ inputSchema: {
62
+ type: 'object',
63
+ properties: {
64
+ siteId: { type: 'string', description: 'Filter by site ID' },
65
+ },
66
+ required: [],
67
+ },
68
+ },
69
+ {
70
+ name: 'heyseo_get_conversation',
71
+ description: `Get a conversation with its messages.
72
+
73
+ Returns the full conversation including all messages exchanged with the AI assistant.`,
74
+ inputSchema: {
75
+ type: 'object',
76
+ properties: {
77
+ conversationId: { type: 'string', description: 'The conversation ID' },
78
+ },
79
+ required: ['conversationId'],
80
+ },
81
+ },
82
+ {
83
+ name: 'heyseo_create_conversation',
84
+ description: `Create a new conversation.
85
+
86
+ Start a new conversation thread with the AI assistant for a specific site.`,
87
+ inputSchema: {
88
+ type: 'object',
89
+ properties: {
90
+ siteId: { type: 'string', description: 'The ID of the site' },
91
+ title: { type: 'string', description: 'Optional conversation title' },
92
+ },
93
+ required: ['siteId'],
94
+ },
95
+ },
96
+ {
97
+ name: 'heyseo_delete_conversation',
98
+ description: `Delete a conversation.
99
+
100
+ Permanently remove a conversation and all its messages.`,
101
+ inputSchema: {
102
+ type: 'object',
103
+ properties: {
104
+ conversationId: { type: 'string', description: 'The conversation ID to delete' },
105
+ },
106
+ required: ['conversationId'],
107
+ },
108
+ },
109
+ ];
110
+ //# sourceMappingURL=conversations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversations.js","sourceRoot":"","sources":["../../src/tools/conversations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * DataForSEO Tools
3
+ * Tools for keyword research and search volume data
4
+ */
5
+ import { z } from 'zod';
6
+ import type { HeySeoApiClient } from '../utils/api-client.js';
7
+ export declare const keywordVolumeSchema: z.ZodObject<{
8
+ keywords: z.ZodArray<z.ZodString, "many">;
9
+ location_code: z.ZodOptional<z.ZodNumber>;
10
+ language_code: z.ZodOptional<z.ZodString>;
11
+ }, "strip", z.ZodTypeAny, {
12
+ keywords: string[];
13
+ location_code?: number | undefined;
14
+ language_code?: string | undefined;
15
+ }, {
16
+ keywords: string[];
17
+ location_code?: number | undefined;
18
+ language_code?: string | undefined;
19
+ }>;
20
+ export type KeywordVolumeInput = z.infer<typeof keywordVolumeSchema>;
21
+ export declare function executeKeywordVolume(client: HeySeoApiClient, input: KeywordVolumeInput): Promise<string>;
22
+ export declare const dataforseoTools: {
23
+ name: string;
24
+ description: string;
25
+ inputSchema: {
26
+ type: string;
27
+ properties: {
28
+ keywords: {
29
+ type: string;
30
+ items: {
31
+ type: string;
32
+ };
33
+ minItems: number;
34
+ maxItems: number;
35
+ description: string;
36
+ };
37
+ location_code: {
38
+ type: string;
39
+ description: string;
40
+ };
41
+ language_code: {
42
+ type: string;
43
+ description: string;
44
+ };
45
+ };
46
+ required: string[];
47
+ };
48
+ }[];
49
+ //# sourceMappingURL=dataforseo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataforseo.d.ts","sourceRoot":"","sources":["../../src/tools/dataforseo.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;EAI9B,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAErE,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;GAgB3B,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * DataForSEO Tools
3
+ * Tools for keyword research and search volume data
4
+ */
5
+ import { z } from 'zod';
6
+ export const keywordVolumeSchema = z.object({
7
+ keywords: z.array(z.string()).min(1).max(100).describe('Keywords to get search volume for (max 100)'),
8
+ location_code: z.number().optional().describe('Location code (e.g., 2840 for US)'),
9
+ language_code: z.string().optional().describe('Language code (e.g., en)'),
10
+ });
11
+ export async function executeKeywordVolume(client, input) {
12
+ try {
13
+ const result = await client.getKeywordVolume(input.keywords, input.location_code, input.language_code);
14
+ return JSON.stringify({ success: true, ...result }, null, 2);
15
+ }
16
+ catch (error) {
17
+ return JSON.stringify({ success: false, error: error instanceof Error ? error.message : 'Unknown error' });
18
+ }
19
+ }
20
+ export const dataforseoTools = [
21
+ {
22
+ name: 'heyseo_keyword_volume',
23
+ description: `Get keyword search volume data.
24
+
25
+ Returns search volume, competition, CPC, and trend data for up to 100 keywords. Powered by DataForSEO. Useful for keyword research and content planning.`,
26
+ inputSchema: {
27
+ type: 'object',
28
+ properties: {
29
+ keywords: { type: 'array', items: { type: 'string' }, minItems: 1, maxItems: 100, description: 'Keywords to analyze' },
30
+ location_code: { type: 'number', description: 'Location code (e.g., 2840 for US)' },
31
+ language_code: { type: 'string', description: 'Language code (e.g., en)' },
32
+ },
33
+ required: ['keywords'],
34
+ },
35
+ },
36
+ ];
37
+ //# sourceMappingURL=dataforseo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataforseo.js","sourceRoot":"","sources":["../../src/tools/dataforseo.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,6CAA6C,CAAC;IACrG,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAClF,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;CAC1E,CAAC,CAAC;AAGH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAuB,EACvB,KAAyB;IAEzB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;QACvG,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IAC7G,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B;QACE,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EAAE;;yJAEwI;QACrJ,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,qBAAqB,EAAE;gBACtH,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mCAAmC,EAAE;gBACnF,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE;aAC3E;YACD,QAAQ,EAAE,CAAC,UAAU,CAAC;SACvB;KACF;CACF,CAAC"}