@serpstat/serpstat-mcp-server 1.0.7 → 1.0.9
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 +35 -0
- package/README.md +86 -27
- package/dist/handlers/credits_tools.d.ts +19 -0
- package/dist/handlers/credits_tools.d.ts.map +1 -0
- package/dist/handlers/credits_tools.js +79 -0
- package/dist/handlers/credits_tools.js.map +1 -0
- package/dist/handlers/project_tools.d.ts +27 -0
- package/dist/handlers/project_tools.d.ts.map +1 -0
- package/dist/handlers/project_tools.js +167 -0
- package/dist/handlers/project_tools.js.map +1 -0
- package/dist/handlers/rank_tracking_tools.d.ts +43 -0
- package/dist/handlers/rank_tracking_tools.d.ts.map +1 -0
- package/dist/handlers/rank_tracking_tools.js +335 -0
- package/dist/handlers/rank_tracking_tools.js.map +1 -0
- package/dist/handlers/url_tools.d.ts +35 -0
- package/dist/handlers/url_tools.d.ts.map +1 -0
- package/dist/handlers/url_tools.js +361 -0
- package/dist/handlers/url_tools.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +19 -1
- package/dist/server.js.map +1 -1
- package/dist/services/credits_service.d.ts +7 -0
- package/dist/services/credits_service.d.ts.map +1 -0
- package/dist/services/credits_service.js +45 -0
- package/dist/services/credits_service.js.map +1 -0
- package/dist/services/project_service.d.ts +9 -0
- package/dist/services/project_service.d.ts.map +1 -0
- package/dist/services/project_service.js +59 -0
- package/dist/services/project_service.js.map +1 -0
- package/dist/services/rank_tracking_service.d.ts +11 -0
- package/dist/services/rank_tracking_service.d.ts.map +1 -0
- package/dist/services/rank_tracking_service.js +112 -0
- package/dist/services/rank_tracking_service.js.map +1 -0
- package/dist/services/url_tools.d.ts +10 -0
- package/dist/services/url_tools.d.ts.map +1 -0
- package/dist/services/url_tools.js +81 -0
- package/dist/services/url_tools.js.map +1 -0
- package/dist/types/serpstat.d.ts +209 -0
- package/dist/types/serpstat.d.ts.map +1 -1
- package/dist/utils/constants.d.ts +17 -0
- package/dist/utils/constants.d.ts.map +1 -1
- package/dist/utils/constants.js +18 -1
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/validation.d.ts +617 -96
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +161 -1
- package/dist/utils/validation.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GetRtProjectUrlSerpHistoryHandler = exports.GetRtProjectKeywordSerpHistoryHandler = exports.GetRtProjectRegionsListHandler = exports.GetRtProjectStatusHandler = exports.GetRtProjectsListHandler = void 0;
|
|
4
|
+
const base_js_1 = require("./base.js");
|
|
5
|
+
const rank_tracking_service_js_1 = require("../services/rank_tracking_service.js");
|
|
6
|
+
const validation_js_1 = require("../utils/validation.js");
|
|
7
|
+
const config_js_1 = require("../utils/config.js");
|
|
8
|
+
const zod_1 = require("zod");
|
|
9
|
+
const constants_js_1 = require("../utils/constants.js");
|
|
10
|
+
class GetRtProjectsListHandler extends base_js_1.BaseHandler {
|
|
11
|
+
rankTrackingService;
|
|
12
|
+
constructor() {
|
|
13
|
+
super();
|
|
14
|
+
const config = (0, config_js_1.loadConfig)();
|
|
15
|
+
this.rankTrackingService = new rank_tracking_service_js_1.RankTrackingService(config);
|
|
16
|
+
}
|
|
17
|
+
getName() {
|
|
18
|
+
return 'get_rt_projects_list';
|
|
19
|
+
}
|
|
20
|
+
getDescription() {
|
|
21
|
+
return 'Get a list of rank tracker projects including project ID, name, domain, creation date, and tracking status. This method does not consume API credits.';
|
|
22
|
+
}
|
|
23
|
+
getInputSchema() {
|
|
24
|
+
return {
|
|
25
|
+
type: "object",
|
|
26
|
+
properties: {
|
|
27
|
+
page: {
|
|
28
|
+
type: "number",
|
|
29
|
+
minimum: constants_js_1.MIN_PAGE,
|
|
30
|
+
default: 1,
|
|
31
|
+
description: "Page number in the projects list"
|
|
32
|
+
},
|
|
33
|
+
pageSize: {
|
|
34
|
+
type: "number",
|
|
35
|
+
enum: constants_js_1.RT_ALLOWED_PAGE_SIZES,
|
|
36
|
+
default: constants_js_1.DEFAULT_RT_PAGE_SIZE,
|
|
37
|
+
description: `Number of results per page. Allowed values: ${constants_js_1.RT_ALLOWED_PAGE_SIZES.join(', ')}`
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
additionalProperties: false
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
async handle(call) {
|
|
44
|
+
try {
|
|
45
|
+
const params = validation_js_1.getRtProjectsListSchema.parse(call.arguments);
|
|
46
|
+
const result = await this.rankTrackingService.getRtProjectsList(params);
|
|
47
|
+
return this.createSuccessResponse(result);
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
if (error instanceof zod_1.z.ZodError) {
|
|
51
|
+
return this.createErrorResponse(new Error(`Invalid parameters: ${error.errors.map(e => `${e.path.join('.')}: ${e.message}`).join(', ')}`));
|
|
52
|
+
}
|
|
53
|
+
return this.createErrorResponse(error);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.GetRtProjectsListHandler = GetRtProjectsListHandler;
|
|
58
|
+
class GetRtProjectStatusHandler extends base_js_1.BaseHandler {
|
|
59
|
+
rankTrackingService;
|
|
60
|
+
constructor() {
|
|
61
|
+
super();
|
|
62
|
+
const config = (0, config_js_1.loadConfig)();
|
|
63
|
+
this.rankTrackingService = new rank_tracking_service_js_1.RankTrackingService(config);
|
|
64
|
+
}
|
|
65
|
+
getName() {
|
|
66
|
+
return 'get_rt_project_status';
|
|
67
|
+
}
|
|
68
|
+
getDescription() {
|
|
69
|
+
return 'Get the current status of position updates (parsing) for a rank tracker project and region. Use this to check if data is ready before requesting results. This method does not consume API credits.';
|
|
70
|
+
}
|
|
71
|
+
getInputSchema() {
|
|
72
|
+
return {
|
|
73
|
+
type: "object",
|
|
74
|
+
properties: {
|
|
75
|
+
projectId: {
|
|
76
|
+
type: "number",
|
|
77
|
+
minimum: constants_js_1.MIN_RT_PROJECT_ID,
|
|
78
|
+
description: "Project identifier"
|
|
79
|
+
},
|
|
80
|
+
regionId: {
|
|
81
|
+
type: "number",
|
|
82
|
+
minimum: constants_js_1.MIN_RT_REGION_ID,
|
|
83
|
+
description: "Search region ID (see https://docs.google.com/spreadsheets/d/1LUDtm-L1qWMVpmWuN-nvDyYFfQtfiXUh5LIHE8sjs0k/edit?gid=75443986#gid=75443986)"
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
required: ["projectId", "regionId"],
|
|
87
|
+
additionalProperties: false
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
async handle(call) {
|
|
91
|
+
try {
|
|
92
|
+
const params = validation_js_1.getRtProjectStatusSchema.parse(call.arguments);
|
|
93
|
+
const result = await this.rankTrackingService.getRtProjectStatus(params);
|
|
94
|
+
return this.createSuccessResponse(result);
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
if (error instanceof zod_1.z.ZodError) {
|
|
98
|
+
return this.createErrorResponse(new Error(`Invalid parameters: ${error.errors.map(e => `${e.path.join('.')}: ${e.message}`).join(', ')}`));
|
|
99
|
+
}
|
|
100
|
+
return this.createErrorResponse(error);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
exports.GetRtProjectStatusHandler = GetRtProjectStatusHandler;
|
|
105
|
+
class GetRtProjectRegionsListHandler extends base_js_1.BaseHandler {
|
|
106
|
+
rankTrackingService;
|
|
107
|
+
constructor() {
|
|
108
|
+
super();
|
|
109
|
+
const config = (0, config_js_1.loadConfig)();
|
|
110
|
+
this.rankTrackingService = new rank_tracking_service_js_1.RankTrackingService(config);
|
|
111
|
+
}
|
|
112
|
+
getName() {
|
|
113
|
+
return 'get_rt_project_regions_list';
|
|
114
|
+
}
|
|
115
|
+
getDescription() {
|
|
116
|
+
return 'Get the list of regions configured for a rank tracker project, including region ID, status (active/inactive), SERP type (organic/paid), device type (desktop/mobile), search engine, and location details. This method does not consume API credits.';
|
|
117
|
+
}
|
|
118
|
+
getInputSchema() {
|
|
119
|
+
return {
|
|
120
|
+
type: "object",
|
|
121
|
+
properties: {
|
|
122
|
+
projectId: {
|
|
123
|
+
type: "number",
|
|
124
|
+
minimum: constants_js_1.MIN_RT_PROJECT_ID,
|
|
125
|
+
description: "Project identifier"
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
required: ["projectId"],
|
|
129
|
+
additionalProperties: false
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
async handle(call) {
|
|
133
|
+
try {
|
|
134
|
+
const params = validation_js_1.getRtProjectRegionsListSchema.parse(call.arguments);
|
|
135
|
+
const result = await this.rankTrackingService.getRtProjectRegionsList(params);
|
|
136
|
+
return this.createSuccessResponse(result);
|
|
137
|
+
}
|
|
138
|
+
catch (error) {
|
|
139
|
+
if (error instanceof zod_1.z.ZodError) {
|
|
140
|
+
return this.createErrorResponse(new Error(`Invalid parameters: ${error.errors.map(e => `${e.path.join('.')}: ${e.message}`).join(', ')}`));
|
|
141
|
+
}
|
|
142
|
+
return this.createErrorResponse(error);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
exports.GetRtProjectRegionsListHandler = GetRtProjectRegionsListHandler;
|
|
147
|
+
class GetRtProjectKeywordSerpHistoryHandler extends base_js_1.BaseHandler {
|
|
148
|
+
rankTrackingService;
|
|
149
|
+
constructor() {
|
|
150
|
+
super();
|
|
151
|
+
const config = (0, config_js_1.loadConfig)();
|
|
152
|
+
this.rankTrackingService = new rank_tracking_service_js_1.RankTrackingService(config);
|
|
153
|
+
}
|
|
154
|
+
getName() {
|
|
155
|
+
return 'get_rt_project_keyword_serp_history';
|
|
156
|
+
}
|
|
157
|
+
getDescription() {
|
|
158
|
+
return 'Get complete Google top-100 SERP history for tracked keywords in a rank tracker project. Returns full competitor analysis with historical positions, URLs, domains, and search volumes for each date. WARNING: This method returns large datasets (full top-100 for each keyword/date combination). Recommended pageSize: 20-50 for most use cases. Use date filters and keyword filters to reduce response size. Supports keyword tagging for grouping and filtering. This method does not consume API credits.';
|
|
159
|
+
}
|
|
160
|
+
getInputSchema() {
|
|
161
|
+
return {
|
|
162
|
+
type: "object",
|
|
163
|
+
properties: {
|
|
164
|
+
projectId: {
|
|
165
|
+
type: "number",
|
|
166
|
+
minimum: constants_js_1.MIN_RT_PROJECT_ID,
|
|
167
|
+
description: "Project identifier"
|
|
168
|
+
},
|
|
169
|
+
projectRegionId: {
|
|
170
|
+
type: "number",
|
|
171
|
+
minimum: constants_js_1.MIN_RT_REGION_ID,
|
|
172
|
+
description: "Region ID for the project. Required. Get from get_rt_project_regions_list method. Each project can track multiple regions. See region reference: https://docs.google.com/spreadsheets/d/1LUDtm-L1qWMVpmWuN-nvDyYFfQtfiXUh5LIHE8sjs0k/edit?gid=75443986#gid=75443986"
|
|
173
|
+
},
|
|
174
|
+
page: {
|
|
175
|
+
type: "number",
|
|
176
|
+
minimum: constants_js_1.MIN_PAGE,
|
|
177
|
+
default: 1,
|
|
178
|
+
description: "Page number for pagination. Starts at 1."
|
|
179
|
+
},
|
|
180
|
+
pageSize: {
|
|
181
|
+
type: "number",
|
|
182
|
+
enum: constants_js_1.RT_ALLOWED_PAGE_SIZES,
|
|
183
|
+
default: constants_js_1.DEFAULT_RT_PAGE_SIZE,
|
|
184
|
+
description: `Number of keywords per page. Allowed values: ${constants_js_1.RT_ALLOWED_PAGE_SIZES.join(', ')}. RECOMMENDED: Use 20 or 50 to avoid response truncation due to large dataset sizes. Each keyword returns full top-100 SERP for all dates.`
|
|
185
|
+
},
|
|
186
|
+
dateFrom: {
|
|
187
|
+
type: "string",
|
|
188
|
+
pattern: "^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$",
|
|
189
|
+
description: "Start date of the period in YYYY-MM-DD format (e.g., '2025-09-01'). Use to filter historical data and reduce response size."
|
|
190
|
+
},
|
|
191
|
+
dateTo: {
|
|
192
|
+
type: "string",
|
|
193
|
+
pattern: "^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$",
|
|
194
|
+
description: "End date of the period in YYYY-MM-DD format (e.g., '2025-09-30'). Use to filter historical data and reduce response size."
|
|
195
|
+
},
|
|
196
|
+
sort: {
|
|
197
|
+
type: "string",
|
|
198
|
+
enum: constants_js_1.RT_SERP_HISTORY_SORT_TYPES,
|
|
199
|
+
description: "Sort results by 'keyword' (alphabetically) or 'date' (chronologically). Default is 'date'."
|
|
200
|
+
},
|
|
201
|
+
order: {
|
|
202
|
+
type: "string",
|
|
203
|
+
enum: ["asc", "desc"],
|
|
204
|
+
description: "Sorting order: 'asc' (oldest first) or 'desc' (newest first). Default is 'desc'."
|
|
205
|
+
},
|
|
206
|
+
keywords: {
|
|
207
|
+
type: "array",
|
|
208
|
+
items: {
|
|
209
|
+
type: "string"
|
|
210
|
+
},
|
|
211
|
+
maxItems: constants_js_1.MAX_RT_KEYWORDS_FILTER,
|
|
212
|
+
description: `Filter by specific keywords (max ${constants_js_1.MAX_RT_KEYWORDS_FILTER} keywords)`
|
|
213
|
+
},
|
|
214
|
+
withTags: {
|
|
215
|
+
type: "boolean",
|
|
216
|
+
default: false,
|
|
217
|
+
description: "Include keyword tags in the response. Tags are used to group and categorize keywords in the project. Set to true to receive tag IDs and values for each keyword."
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
required: ["projectId", "projectRegionId", "page"],
|
|
221
|
+
additionalProperties: false
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
async handle(call) {
|
|
225
|
+
try {
|
|
226
|
+
const params = validation_js_1.getRtProjectKeywordSerpHistorySchema.parse(call.arguments);
|
|
227
|
+
const result = await this.rankTrackingService.getRtProjectKeywordSerpHistory(params);
|
|
228
|
+
return this.createSuccessResponse(result);
|
|
229
|
+
}
|
|
230
|
+
catch (error) {
|
|
231
|
+
if (error instanceof zod_1.z.ZodError) {
|
|
232
|
+
return this.createErrorResponse(new Error(`Invalid parameters: ${error.errors.map(e => `${e.path.join('.')}: ${e.message}`).join(', ')}`));
|
|
233
|
+
}
|
|
234
|
+
return this.createErrorResponse(error);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
exports.GetRtProjectKeywordSerpHistoryHandler = GetRtProjectKeywordSerpHistoryHandler;
|
|
239
|
+
class GetRtProjectUrlSerpHistoryHandler extends base_js_1.BaseHandler {
|
|
240
|
+
rankTrackingService;
|
|
241
|
+
constructor() {
|
|
242
|
+
super();
|
|
243
|
+
const config = (0, config_js_1.loadConfig)();
|
|
244
|
+
this.rankTrackingService = new rank_tracking_service_js_1.RankTrackingService(config);
|
|
245
|
+
}
|
|
246
|
+
getName() {
|
|
247
|
+
return 'get_rt_project_url_serp_history';
|
|
248
|
+
}
|
|
249
|
+
getDescription() {
|
|
250
|
+
return 'Get ranking history showing only YOUR domain\'s positions across all tracked keywords. Unlike get_rt_project_keyword_serp_history (which shows full top-100), this method returns only positions where your specified domain/URL ranks. Perfect for tracking your own performance over time without competitor noise. Returns historical position data, search volumes, and optional keyword tags. This method does not consume API credits.';
|
|
251
|
+
}
|
|
252
|
+
getInputSchema() {
|
|
253
|
+
return {
|
|
254
|
+
type: "object",
|
|
255
|
+
properties: {
|
|
256
|
+
projectId: {
|
|
257
|
+
type: "number",
|
|
258
|
+
minimum: constants_js_1.MIN_RT_PROJECT_ID,
|
|
259
|
+
description: "Rank tracker project ID. Required. Get from get_rt_projects_list method."
|
|
260
|
+
},
|
|
261
|
+
projectRegionId: {
|
|
262
|
+
type: "number",
|
|
263
|
+
minimum: constants_js_1.MIN_RT_REGION_ID,
|
|
264
|
+
description: "Region ID for the project. Required. Get from get_rt_project_regions_list method. Each project can track multiple regions. See region reference: https://docs.google.com/spreadsheets/d/1LUDtm-L1qWMVpmWuN-nvDyYFfQtfiXUh5LIHE8sjs0k/edit?gid=75443986#gid=75443986"
|
|
265
|
+
},
|
|
266
|
+
page: {
|
|
267
|
+
type: "number",
|
|
268
|
+
minimum: constants_js_1.MIN_PAGE,
|
|
269
|
+
default: 1,
|
|
270
|
+
description: "Page number for pagination. Starts at 1."
|
|
271
|
+
},
|
|
272
|
+
pageSize: {
|
|
273
|
+
type: "number",
|
|
274
|
+
enum: constants_js_1.RT_ALLOWED_PAGE_SIZES,
|
|
275
|
+
default: constants_js_1.DEFAULT_RT_PAGE_SIZE,
|
|
276
|
+
description: "Number of keywords per page. Allowed values: 20, 50, 100, 500. Recommended: 100 for most use cases (response is much smaller than get_rt_project_keyword_serp_history since it only shows your domain's positions)."
|
|
277
|
+
},
|
|
278
|
+
dateFrom: {
|
|
279
|
+
type: "string",
|
|
280
|
+
pattern: "^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$",
|
|
281
|
+
description: "Start date of the period in YYYY-MM-DD format (e.g., '2025-09-01'). Filters historical data to this date range."
|
|
282
|
+
},
|
|
283
|
+
dateTo: {
|
|
284
|
+
type: "string",
|
|
285
|
+
pattern: "^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$",
|
|
286
|
+
description: "End date of the period in YYYY-MM-DD format (e.g., '2025-09-30'). Filters historical data to this date range."
|
|
287
|
+
},
|
|
288
|
+
sort: {
|
|
289
|
+
type: "string",
|
|
290
|
+
enum: constants_js_1.RT_SERP_HISTORY_SORT_TYPES,
|
|
291
|
+
description: "Sort results by 'keyword' (alphabetically) or 'date' (chronologically). Default is 'keyword'."
|
|
292
|
+
},
|
|
293
|
+
order: {
|
|
294
|
+
type: "string",
|
|
295
|
+
enum: ["asc", "desc"],
|
|
296
|
+
description: "Sorting order: 'asc' (oldest first) or 'desc' (newest first). Default is 'desc'."
|
|
297
|
+
},
|
|
298
|
+
keywords: {
|
|
299
|
+
type: "array",
|
|
300
|
+
items: {
|
|
301
|
+
type: "string"
|
|
302
|
+
},
|
|
303
|
+
maxItems: constants_js_1.MAX_RT_KEYWORDS_FILTER,
|
|
304
|
+
description: "Filter results by specific keywords (max 1000 keywords). Returns only data for the specified keywords where your domain ranks."
|
|
305
|
+
},
|
|
306
|
+
withTags: {
|
|
307
|
+
type: "boolean",
|
|
308
|
+
default: false,
|
|
309
|
+
description: "Include keyword tags in the response. Tags are used to group and categorize keywords in the project. Set to true to receive tag IDs and values for each keyword."
|
|
310
|
+
},
|
|
311
|
+
domain: {
|
|
312
|
+
type: "string",
|
|
313
|
+
description: "Domain or URL to track. Accepts: 'domain.com' (tracks all URLs from this domain), 'subdomain.domain.com' (tracks specific subdomain), or full URL 'https://domain.com/page' (tracks specific page). Do NOT include protocol for domain-level tracking."
|
|
314
|
+
}
|
|
315
|
+
},
|
|
316
|
+
required: ["projectId", "projectRegionId", "page"],
|
|
317
|
+
additionalProperties: false
|
|
318
|
+
};
|
|
319
|
+
}
|
|
320
|
+
async handle(call) {
|
|
321
|
+
try {
|
|
322
|
+
const params = validation_js_1.getRtProjectUrlSerpHistorySchema.parse(call.arguments);
|
|
323
|
+
const result = await this.rankTrackingService.getRtProjectUrlSerpHistory(params);
|
|
324
|
+
return this.createSuccessResponse(result);
|
|
325
|
+
}
|
|
326
|
+
catch (error) {
|
|
327
|
+
if (error instanceof zod_1.z.ZodError) {
|
|
328
|
+
return this.createErrorResponse(new Error(`Invalid parameters: ${error.errors.map(e => `${e.path.join('.')}: ${e.message}`).join(', ')}`));
|
|
329
|
+
}
|
|
330
|
+
return this.createErrorResponse(error);
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
exports.GetRtProjectUrlSerpHistoryHandler = GetRtProjectUrlSerpHistoryHandler;
|
|
335
|
+
//# sourceMappingURL=rank_tracking_tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rank_tracking_tools.js","sourceRoot":"","sources":["../../src/handlers/rank_tracking_tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { BaseHandler } from './base.js';
|
|
2
|
+
import { MCPToolCall, MCPToolResponse } from '../types/mcp.js';
|
|
3
|
+
export declare class GetUrlSummaryTrafficHandler extends BaseHandler {
|
|
4
|
+
private urlService;
|
|
5
|
+
constructor();
|
|
6
|
+
getName(): string;
|
|
7
|
+
getDescription(): string;
|
|
8
|
+
getInputSchema(): object;
|
|
9
|
+
handle(call: MCPToolCall): Promise<MCPToolResponse>;
|
|
10
|
+
}
|
|
11
|
+
export declare class GetUrlCompetitorsHandler extends BaseHandler {
|
|
12
|
+
private urlService;
|
|
13
|
+
constructor();
|
|
14
|
+
getName(): string;
|
|
15
|
+
getDescription(): string;
|
|
16
|
+
getInputSchema(): object;
|
|
17
|
+
handle(call: MCPToolCall): Promise<MCPToolResponse>;
|
|
18
|
+
}
|
|
19
|
+
export declare class GetUrlKeywordsHandler extends BaseHandler {
|
|
20
|
+
private urlService;
|
|
21
|
+
constructor();
|
|
22
|
+
getName(): string;
|
|
23
|
+
getDescription(): string;
|
|
24
|
+
getInputSchema(): object;
|
|
25
|
+
handle(call: MCPToolCall): Promise<MCPToolResponse>;
|
|
26
|
+
}
|
|
27
|
+
export declare class GetUrlMissingKeywordsHandler extends BaseHandler {
|
|
28
|
+
private urlService;
|
|
29
|
+
constructor();
|
|
30
|
+
getName(): string;
|
|
31
|
+
getDescription(): string;
|
|
32
|
+
getInputSchema(): object;
|
|
33
|
+
handle(call: MCPToolCall): Promise<MCPToolResponse>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=url_tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url_tools.d.ts","sourceRoot":"","sources":["../../src/handlers/url_tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAwB/D,qBAAa,2BAA4B,SAAQ,WAAW;IACxD,OAAO,CAAC,UAAU,CAAa;;IAQ/B,OAAO,IAAI,MAAM;IAIjB,cAAc,IAAI,MAAM;IAOxB,cAAc,IAAI,MAAM;IA+BlB,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;CAY5D;AAED,qBAAa,wBAAyB,SAAQ,WAAW;IACrD,OAAO,CAAC,UAAU,CAAa;;IAQ/B,OAAO,IAAI,MAAM;IAIjB,cAAc,IAAI,MAAM;IAIxB,cAAc,IAAI,MAAM;IA8ClB,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;CAe5D;AAED,qBAAa,qBAAsB,SAAQ,WAAW;IAClD,OAAO,CAAC,UAAU,CAAa;;IAQ/B,OAAO,IAAI,MAAM;IAIjB,cAAc,IAAI,MAAM;IAIxB,cAAc,IAAI,MAAM;IAoFlB,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;CAe5D;AAED,qBAAa,4BAA6B,SAAQ,WAAW;IACzD,OAAO,CAAC,UAAU,CAAa;;IAQ/B,OAAO,IAAI,MAAM;IAIjB,cAAc,IAAI,MAAM;IAIxB,cAAc,IAAI,MAAM;IAuElB,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;CAe5D"}
|