@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,262 @@
1
+ /**
2
+ * Indexing Tools
3
+ * Tools for monitoring and managing URL indexing health
4
+ */
5
+ import { z } from 'zod';
6
+ export const indexingStatusSchema = z.object({
7
+ siteId: z.string().describe('The ID of the site to check indexing status for'),
8
+ });
9
+ export const indexingPagesSchema = z.object({
10
+ siteId: z.string().describe('The ID of the site'),
11
+ status: z.enum(['indexed', 'not_indexed', 'all']).optional().default('all').describe('Filter by indexing status'),
12
+ });
13
+ export const submitForIndexingSchema = z.object({
14
+ siteId: z.string().describe('The ID of the site'),
15
+ pageId: z.string().describe('The ID of the page to submit for indexing'),
16
+ });
17
+ export async function executeIndexingStatus(client, input) {
18
+ try {
19
+ const summary = await client.getIndexingStatus(input.siteId);
20
+ return JSON.stringify({ success: true, ...summary }, null, 2);
21
+ }
22
+ catch (error) {
23
+ return JSON.stringify({ success: false, error: error instanceof Error ? error.message : 'Unknown error' });
24
+ }
25
+ }
26
+ export async function executeIndexingPages(client, input) {
27
+ try {
28
+ const result = await client.getIndexingPages(input.siteId, input.status);
29
+ return JSON.stringify({
30
+ success: true,
31
+ total: result.total,
32
+ pages: result.pages.map(p => ({
33
+ id: p.id,
34
+ url: p.url,
35
+ verdict: p.verdict,
36
+ coverageState: p.coverageState,
37
+ indexingState: p.indexingState,
38
+ lastCheckedAt: p.lastCheckedAt,
39
+ lastCrawlTime: p.lastCrawlTime,
40
+ })),
41
+ }, null, 2);
42
+ }
43
+ catch (error) {
44
+ return JSON.stringify({ success: false, error: error instanceof Error ? error.message : 'Unknown error' });
45
+ }
46
+ }
47
+ export async function executeSubmitForIndexing(client, input) {
48
+ try {
49
+ const result = await client.submitForIndexing(input.siteId, input.pageId);
50
+ return JSON.stringify({ success: true, ...result }, null, 2);
51
+ }
52
+ catch (error) {
53
+ return JSON.stringify({ success: false, error: error instanceof Error ? error.message : 'Unknown error' });
54
+ }
55
+ }
56
+ // --- New schemas ---
57
+ export const indexingCheckSchema = z.object({
58
+ siteId: z.string().describe('The ID of the site to trigger an indexing check for'),
59
+ });
60
+ export const indexingHistorySchema = z.object({
61
+ siteId: z.string().describe('The ID of the site'),
62
+ days: z.number().min(1).max(365).optional().default(30).describe('Number of days of history to retrieve'),
63
+ });
64
+ export const indexingSettingsSchema = z.object({
65
+ siteId: z.string().describe('The ID of the site'),
66
+ });
67
+ export const updateIndexingSettingsSchema = z.object({
68
+ siteId: z.string().describe('The ID of the site'),
69
+ enabled: z.boolean().optional().describe('Enable or disable indexing monitoring'),
70
+ checkFrequency: z.string().optional().describe('Check frequency (e.g., daily, weekly)'),
71
+ notifyOnChange: z.boolean().optional().describe('Notify when indexing status changes'),
72
+ });
73
+ export const indexingSubmissionsSchema = z.object({
74
+ siteId: z.string().describe('The ID of the site'),
75
+ });
76
+ export const removeIndexingPageSchema = z.object({
77
+ siteId: z.string().describe('The ID of the site'),
78
+ pageId: z.string().describe('The ID of the page to remove from monitoring'),
79
+ });
80
+ // --- New execute functions ---
81
+ export async function executeIndexingCheck(client, input) {
82
+ try {
83
+ const result = await client.triggerIndexingCheck(input.siteId);
84
+ return JSON.stringify({ success: true, ...result }, null, 2);
85
+ }
86
+ catch (error) {
87
+ return JSON.stringify({ success: false, error: error instanceof Error ? error.message : 'Unknown error' });
88
+ }
89
+ }
90
+ export async function executeIndexingHistory(client, input) {
91
+ try {
92
+ const result = await client.getIndexingHistory(input.siteId, input.days);
93
+ return JSON.stringify({ success: true, ...result }, null, 2);
94
+ }
95
+ catch (error) {
96
+ return JSON.stringify({ success: false, error: error instanceof Error ? error.message : 'Unknown error' });
97
+ }
98
+ }
99
+ export async function executeIndexingSettings(client, input) {
100
+ try {
101
+ const result = await client.getIndexingSettings(input.siteId);
102
+ return JSON.stringify({ success: true, ...result }, null, 2);
103
+ }
104
+ catch (error) {
105
+ return JSON.stringify({ success: false, error: error instanceof Error ? error.message : 'Unknown error' });
106
+ }
107
+ }
108
+ export async function executeUpdateIndexingSettings(client, input) {
109
+ try {
110
+ const { siteId, ...settings } = input;
111
+ const result = await client.updateIndexingSettings(siteId, settings);
112
+ return JSON.stringify({ success: true, message: 'Indexing settings updated', ...result }, null, 2);
113
+ }
114
+ catch (error) {
115
+ return JSON.stringify({ success: false, error: error instanceof Error ? error.message : 'Unknown error' });
116
+ }
117
+ }
118
+ export async function executeIndexingSubmissions(client, input) {
119
+ try {
120
+ const result = await client.getIndexingSubmissions(input.siteId);
121
+ return JSON.stringify({ success: true, ...result }, null, 2);
122
+ }
123
+ catch (error) {
124
+ return JSON.stringify({ success: false, error: error instanceof Error ? error.message : 'Unknown error' });
125
+ }
126
+ }
127
+ export async function executeRemoveIndexingPage(client, input) {
128
+ try {
129
+ await client.removeIndexingPage(input.siteId, input.pageId);
130
+ return JSON.stringify({ success: true, message: 'Page removed from indexing monitoring', pageId: input.pageId }, null, 2);
131
+ }
132
+ catch (error) {
133
+ return JSON.stringify({ success: false, error: error instanceof Error ? error.message : 'Unknown error' });
134
+ }
135
+ }
136
+ export const indexingTools = [
137
+ {
138
+ name: 'heyseo_indexing_status',
139
+ description: `Get the indexing health summary for a site.
140
+
141
+ Returns the total number of pages monitored, how many are indexed vs not indexed, and overall health metrics.`,
142
+ inputSchema: {
143
+ type: 'object',
144
+ properties: {
145
+ siteId: { type: 'string', description: 'The ID of the site' },
146
+ },
147
+ required: ['siteId'],
148
+ },
149
+ },
150
+ {
151
+ name: 'heyseo_indexing_pages',
152
+ description: `List pages with their indexing status.
153
+
154
+ Returns each monitored page with its indexing verdict (PASS/FAIL), coverage state, and when it was last checked or crawled. Filter by indexed/not_indexed status.`,
155
+ inputSchema: {
156
+ type: 'object',
157
+ properties: {
158
+ siteId: { type: 'string', description: 'The ID of the site' },
159
+ status: { type: 'string', enum: ['indexed', 'not_indexed', 'all'], default: 'all', description: 'Filter by indexing status' },
160
+ },
161
+ required: ['siteId'],
162
+ },
163
+ },
164
+ {
165
+ name: 'heyseo_submit_for_indexing',
166
+ description: `Submit a page to Google's Indexing API for faster indexing.
167
+
168
+ Requires the page to already be tracked in the indexing monitor. Use heyseo_indexing_pages to find the page ID first.`,
169
+ inputSchema: {
170
+ type: 'object',
171
+ properties: {
172
+ siteId: { type: 'string', description: 'The ID of the site' },
173
+ pageId: { type: 'string', description: 'The ID of the page to submit' },
174
+ },
175
+ required: ['siteId', 'pageId'],
176
+ },
177
+ },
178
+ {
179
+ name: 'heyseo_indexing_check',
180
+ description: `Trigger an indexing check for a site.
181
+
182
+ Initiates a fresh check of all monitored pages against Google's URL Inspection API to update their indexing status.`,
183
+ inputSchema: {
184
+ type: 'object',
185
+ properties: {
186
+ siteId: { type: 'string', description: 'The ID of the site' },
187
+ },
188
+ required: ['siteId'],
189
+ },
190
+ },
191
+ {
192
+ name: 'heyseo_indexing_history',
193
+ description: `Get indexing check history for a site.
194
+
195
+ Returns a history of indexing checks showing how the number of indexed/not-indexed pages has changed over time.`,
196
+ inputSchema: {
197
+ type: 'object',
198
+ properties: {
199
+ siteId: { type: 'string', description: 'The ID of the site' },
200
+ days: { type: 'number', minimum: 1, maximum: 365, default: 30, description: 'Number of days of history' },
201
+ },
202
+ required: ['siteId'],
203
+ },
204
+ },
205
+ {
206
+ name: 'heyseo_indexing_settings',
207
+ description: `Get indexing monitoring settings for a site.
208
+
209
+ Returns the current configuration for indexing monitoring including check frequency and notification preferences.`,
210
+ inputSchema: {
211
+ type: 'object',
212
+ properties: {
213
+ siteId: { type: 'string', description: 'The ID of the site' },
214
+ },
215
+ required: ['siteId'],
216
+ },
217
+ },
218
+ {
219
+ name: 'heyseo_update_indexing_settings',
220
+ description: `Update indexing monitoring settings for a site.
221
+
222
+ Configure how often pages are checked, whether notifications are sent on status changes, and enable/disable monitoring.`,
223
+ inputSchema: {
224
+ type: 'object',
225
+ properties: {
226
+ siteId: { type: 'string', description: 'The ID of the site' },
227
+ enabled: { type: 'boolean', description: 'Enable or disable monitoring' },
228
+ checkFrequency: { type: 'string', description: 'Check frequency (e.g., daily, weekly)' },
229
+ notifyOnChange: { type: 'boolean', description: 'Notify on status changes' },
230
+ },
231
+ required: ['siteId'],
232
+ },
233
+ },
234
+ {
235
+ name: 'heyseo_indexing_submissions',
236
+ description: `Get indexing submission history for a site.
237
+
238
+ Returns the history of pages submitted to Google's Indexing API, including submission dates and outcomes.`,
239
+ inputSchema: {
240
+ type: 'object',
241
+ properties: {
242
+ siteId: { type: 'string', description: 'The ID of the site' },
243
+ },
244
+ required: ['siteId'],
245
+ },
246
+ },
247
+ {
248
+ name: 'heyseo_remove_indexing_page',
249
+ description: `Remove a page from indexing monitoring.
250
+
251
+ Stop monitoring a specific page's indexing status. The page will no longer be checked during indexing audits.`,
252
+ inputSchema: {
253
+ type: 'object',
254
+ properties: {
255
+ siteId: { type: 'string', description: 'The ID of the site' },
256
+ pageId: { type: 'string', description: 'The ID of the page to remove' },
257
+ },
258
+ required: ['siteId', 'pageId'],
259
+ },
260
+ },
261
+ ];
262
+ //# sourceMappingURL=indexing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexing.js","sourceRoot":"","sources":["../../src/tools/indexing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * AI Insights Tools
3
+ * Tools for accessing AI-generated SEO insights
4
+ */
5
+ import { z } from 'zod';
6
+ import type { HeySeoApiClient } from '../utils/api-client.js';
7
+ export declare const getInsightsSchema: z.ZodObject<{
8
+ siteId: z.ZodString;
9
+ unreadOnly: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
10
+ }, "strip", z.ZodTypeAny, {
11
+ siteId: string;
12
+ unreadOnly: boolean;
13
+ }, {
14
+ siteId: string;
15
+ unreadOnly?: boolean | undefined;
16
+ }>;
17
+ export type GetInsightsInput = z.infer<typeof getInsightsSchema>;
18
+ export declare function executeGetInsights(client: HeySeoApiClient, input: GetInsightsInput): Promise<string>;
19
+ export declare const generateInsightsSchema: z.ZodObject<{
20
+ siteId: z.ZodString;
21
+ }, "strip", z.ZodTypeAny, {
22
+ siteId: string;
23
+ }, {
24
+ siteId: string;
25
+ }>;
26
+ export type GenerateInsightsInput = z.infer<typeof generateInsightsSchema>;
27
+ export declare function executeGenerateInsights(client: HeySeoApiClient, input: GenerateInsightsInput): Promise<string>;
28
+ export declare const insightTools: ({
29
+ name: string;
30
+ description: string;
31
+ inputSchema: {
32
+ type: string;
33
+ properties: {
34
+ siteId: {
35
+ type: string;
36
+ description: string;
37
+ };
38
+ unreadOnly: {
39
+ type: string;
40
+ default: boolean;
41
+ description: string;
42
+ };
43
+ };
44
+ required: string[];
45
+ };
46
+ } | {
47
+ name: string;
48
+ description: string;
49
+ inputSchema: {
50
+ type: string;
51
+ properties: {
52
+ siteId: {
53
+ type: string;
54
+ description: string;
55
+ };
56
+ unreadOnly?: undefined;
57
+ };
58
+ required: string[];
59
+ };
60
+ })[];
61
+ //# sourceMappingURL=insights.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insights.d.ts","sourceRoot":"","sources":["../../src/tools/insights.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,iBAAiB;;;;;;;;;EAG5B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,MAAM,CAAC,CAgCjB;AAID,eAAO,MAAM,sBAAsB;;;;;;EAEjC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAI3E,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4BxB,CAAC"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * AI Insights Tools
3
+ * Tools for accessing AI-generated SEO insights
4
+ */
5
+ import { z } from 'zod';
6
+ export const getInsightsSchema = z.object({
7
+ siteId: z.string().describe('The ID of the site'),
8
+ unreadOnly: z.boolean().optional().default(false).describe('Only return unread insights'),
9
+ });
10
+ export async function executeGetInsights(client, input) {
11
+ try {
12
+ const result = await client.getInsights(input.siteId, input.unreadOnly);
13
+ if (result.insights.length === 0) {
14
+ return JSON.stringify({
15
+ success: true,
16
+ message: 'No insights found. Insights are generated automatically as the system detects anomalies, opportunities, and trends.',
17
+ unreadCount: 0,
18
+ insights: [],
19
+ });
20
+ }
21
+ return JSON.stringify({
22
+ success: true,
23
+ unreadCount: result.unreadCount,
24
+ hasUnread: result.hasUnread,
25
+ insights: result.insights.map(i => ({
26
+ id: i.id,
27
+ type: i.type,
28
+ severity: i.severity,
29
+ title: i.title,
30
+ description: i.description,
31
+ suggestedActions: i.suggestedActions,
32
+ createdAt: i.createdAt,
33
+ isRead: !!i.readAt,
34
+ isDismissed: !!i.dismissedAt,
35
+ })),
36
+ }, null, 2);
37
+ }
38
+ catch (error) {
39
+ return JSON.stringify({ success: false, error: error instanceof Error ? error.message : 'Unknown error' });
40
+ }
41
+ }
42
+ // --- New schemas ---
43
+ export const generateInsightsSchema = z.object({
44
+ siteId: z.string().describe('The ID of the site to generate insights for'),
45
+ });
46
+ // --- New execute functions ---
47
+ export async function executeGenerateInsights(client, input) {
48
+ try {
49
+ const result = await client.generateInsights(input.siteId);
50
+ return JSON.stringify({ success: true, message: 'Insights generation triggered', ...result }, null, 2);
51
+ }
52
+ catch (error) {
53
+ return JSON.stringify({ success: false, error: error instanceof Error ? error.message : 'Unknown error' });
54
+ }
55
+ }
56
+ export const insightTools = [
57
+ {
58
+ name: 'heyseo_get_insights',
59
+ description: `Get AI-generated insights for a site.
60
+
61
+ Returns proactive insights including anomalies, opportunities, alerts, trends, and milestones. Each insight includes a severity level, description, and suggested actions.`,
62
+ inputSchema: {
63
+ type: 'object',
64
+ properties: {
65
+ siteId: { type: 'string', description: 'The ID of the site' },
66
+ unreadOnly: { type: 'boolean', default: false, description: 'Only return unread insights' },
67
+ },
68
+ required: ['siteId'],
69
+ },
70
+ },
71
+ {
72
+ name: 'heyseo_generate_insights',
73
+ description: `Generate new AI insights for a site.
74
+
75
+ Triggers the AI engine to analyze recent data and generate fresh insights about anomalies, opportunities, and trends.`,
76
+ inputSchema: {
77
+ type: 'object',
78
+ properties: {
79
+ siteId: { type: 'string', description: 'The ID of the site' },
80
+ },
81
+ required: ['siteId'],
82
+ },
83
+ },
84
+ ];
85
+ //# sourceMappingURL=insights.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insights.js","sourceRoot":"","sources":["../../src/tools/insights.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Knowledge Tools
3
+ * Tools for accessing and updating the AI knowledge base for a site
4
+ */
5
+ import { z } from 'zod';
6
+ import type { HeySeoApiClient } from '../utils/api-client.js';
7
+ export declare const getKnowledgeSchema: z.ZodObject<{
8
+ siteId: z.ZodString;
9
+ }, "strip", z.ZodTypeAny, {
10
+ siteId: string;
11
+ }, {
12
+ siteId: string;
13
+ }>;
14
+ export type GetKnowledgeInput = z.infer<typeof getKnowledgeSchema>;
15
+ export declare const updateKnowledgeSchema: z.ZodObject<{
16
+ siteId: z.ZodString;
17
+ businessDescription: z.ZodOptional<z.ZodString>;
18
+ targetAudience: z.ZodOptional<z.ZodString>;
19
+ competitors: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
20
+ keyTopics: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
21
+ brandVoice: z.ZodOptional<z.ZodString>;
22
+ }, "strip", z.ZodTypeAny, {
23
+ siteId: string;
24
+ businessDescription?: string | undefined;
25
+ targetAudience?: string | undefined;
26
+ competitors?: string[] | undefined;
27
+ keyTopics?: string[] | undefined;
28
+ brandVoice?: string | undefined;
29
+ }, {
30
+ siteId: string;
31
+ businessDescription?: string | undefined;
32
+ targetAudience?: string | undefined;
33
+ competitors?: string[] | undefined;
34
+ keyTopics?: string[] | undefined;
35
+ brandVoice?: string | undefined;
36
+ }>;
37
+ export type UpdateKnowledgeInput = z.infer<typeof updateKnowledgeSchema>;
38
+ export declare function executeGetKnowledge(client: HeySeoApiClient, input: GetKnowledgeInput): Promise<string>;
39
+ export declare function executeUpdateKnowledge(client: HeySeoApiClient, input: UpdateKnowledgeInput): Promise<string>;
40
+ export declare const knowledgeTools: ({
41
+ name: string;
42
+ description: string;
43
+ inputSchema: {
44
+ type: string;
45
+ properties: {
46
+ siteId: {
47
+ type: string;
48
+ description: string;
49
+ };
50
+ businessDescription?: undefined;
51
+ targetAudience?: undefined;
52
+ competitors?: undefined;
53
+ keyTopics?: undefined;
54
+ brandVoice?: undefined;
55
+ };
56
+ required: string[];
57
+ };
58
+ } | {
59
+ name: string;
60
+ description: string;
61
+ inputSchema: {
62
+ type: string;
63
+ properties: {
64
+ siteId: {
65
+ type: string;
66
+ description: string;
67
+ };
68
+ businessDescription: {
69
+ type: string;
70
+ description: string;
71
+ };
72
+ targetAudience: {
73
+ type: string;
74
+ description: string;
75
+ };
76
+ competitors: {
77
+ type: string;
78
+ items: {
79
+ type: string;
80
+ };
81
+ description: string;
82
+ };
83
+ keyTopics: {
84
+ type: string;
85
+ items: {
86
+ type: string;
87
+ };
88
+ description: string;
89
+ };
90
+ brandVoice: {
91
+ type: string;
92
+ description: string;
93
+ };
94
+ };
95
+ required: string[];
96
+ };
97
+ })[];
98
+ //# sourceMappingURL=knowledge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../src/tools/knowledge.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,kBAAkB;;;;;;EAE7B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEnE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;EAOhC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEzE,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAQjB;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgC1B,CAAC"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Knowledge Tools
3
+ * Tools for accessing and updating the AI knowledge base for a site
4
+ */
5
+ import { z } from 'zod';
6
+ export const getKnowledgeSchema = z.object({
7
+ siteId: z.string().describe('The ID of the site'),
8
+ });
9
+ export const updateKnowledgeSchema = z.object({
10
+ siteId: z.string().describe('The ID of the site'),
11
+ businessDescription: z.string().optional().describe('Description of the business'),
12
+ targetAudience: z.string().optional().describe('Target audience description'),
13
+ competitors: z.array(z.string()).optional().describe('List of competitor domains'),
14
+ keyTopics: z.array(z.string()).optional().describe('Key topics the site covers'),
15
+ brandVoice: z.string().optional().describe('Brand voice/tone description'),
16
+ });
17
+ export async function executeGetKnowledge(client, input) {
18
+ try {
19
+ const result = await client.getKnowledge(input.siteId);
20
+ return JSON.stringify({ success: true, ...result }, null, 2);
21
+ }
22
+ catch (error) {
23
+ return JSON.stringify({ success: false, error: error instanceof Error ? error.message : 'Unknown error' });
24
+ }
25
+ }
26
+ export async function executeUpdateKnowledge(client, input) {
27
+ try {
28
+ const { siteId, ...updates } = input;
29
+ const result = await client.updateKnowledge(siteId, updates);
30
+ return JSON.stringify({ success: true, message: 'Knowledge updated', ...result }, null, 2);
31
+ }
32
+ catch (error) {
33
+ return JSON.stringify({ success: false, error: error instanceof Error ? error.message : 'Unknown error' });
34
+ }
35
+ }
36
+ export const knowledgeTools = [
37
+ {
38
+ name: 'heyseo_get_knowledge',
39
+ description: `Get the AI knowledge base for a site.
40
+
41
+ Returns the stored knowledge about the business including description, target audience, competitors, key topics, and brand voice. This context is used by the AI to provide more relevant insights and recommendations.`,
42
+ inputSchema: {
43
+ type: 'object',
44
+ properties: {
45
+ siteId: { type: 'string', description: 'The ID of the site' },
46
+ },
47
+ required: ['siteId'],
48
+ },
49
+ },
50
+ {
51
+ name: 'heyseo_update_knowledge',
52
+ description: `Update the AI knowledge base for a site.
53
+
54
+ Update business context that helps the AI provide more relevant and targeted insights. Include information about the business, target audience, competitors, and key topics.`,
55
+ inputSchema: {
56
+ type: 'object',
57
+ properties: {
58
+ siteId: { type: 'string', description: 'The ID of the site' },
59
+ businessDescription: { type: 'string', description: 'Description of the business' },
60
+ targetAudience: { type: 'string', description: 'Target audience description' },
61
+ competitors: { type: 'array', items: { type: 'string' }, description: 'Competitor domains' },
62
+ keyTopics: { type: 'array', items: { type: 'string' }, description: 'Key topics' },
63
+ brandVoice: { type: 'string', description: 'Brand voice/tone description' },
64
+ },
65
+ required: ['siteId'],
66
+ },
67
+ },
68
+ ];
69
+ //# sourceMappingURL=knowledge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../src/tools/knowledge.ts"],"names":[],"mappings":"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"}