@serpstat/serpstat-mcp-server 1.0.8 → 1.1.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,254 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SiteAuditService = void 0;
4
+ const base_js_1 = require("./base.js");
5
+ const logger_js_1 = require("../utils/logger.js");
6
+ class SiteAuditService extends base_js_1.BaseService {
7
+ async getSettings(params) {
8
+ logger_js_1.logger.info('Getting site audit settings', { projectId: params.projectId });
9
+ const request = {
10
+ id: `get_site_audit_settings_${Date.now()}`,
11
+ method: 'AuditSite.getSettings',
12
+ params,
13
+ };
14
+ const response = await this.makeRequest(request);
15
+ if (!response.result) {
16
+ throw new Error('No result data received from Serpstat API');
17
+ }
18
+ logger_js_1.logger.info('Successfully retrieved site audit settings', {
19
+ projectId: params.projectId,
20
+ domain: response.result.mainSettings.domain
21
+ });
22
+ return response.result;
23
+ }
24
+ async setSettings(params) {
25
+ logger_js_1.logger.info('Setting site audit settings', {
26
+ projectId: params.projectId,
27
+ domain: params.mainSettings.domain
28
+ });
29
+ const request = {
30
+ id: `set_site_audit_settings_${Date.now()}`,
31
+ method: 'AuditSite.setSettings',
32
+ params,
33
+ };
34
+ const response = await this.makeRequest(request);
35
+ logger_js_1.logger.info('Successfully set site audit settings', { projectId: params.projectId });
36
+ return null;
37
+ }
38
+ async start(params) {
39
+ logger_js_1.logger.info('Starting site audit', { projectId: params.projectId });
40
+ const request = {
41
+ id: `start_site_audit_${Date.now()}`,
42
+ method: 'AuditSite.start',
43
+ params,
44
+ };
45
+ const response = await this.makeRequest(request);
46
+ if (!response.result) {
47
+ throw new Error('No result data received from Serpstat API');
48
+ }
49
+ logger_js_1.logger.info('Successfully started site audit', {
50
+ projectId: params.projectId,
51
+ reportId: response.result.reportId
52
+ });
53
+ return response.result;
54
+ }
55
+ async stop(params) {
56
+ logger_js_1.logger.info('Stopping site audit', { projectId: params.projectId });
57
+ const request = {
58
+ id: `stop_site_audit_${Date.now()}`,
59
+ method: 'AuditSite.stop',
60
+ params,
61
+ };
62
+ const response = await this.makeRequest(request);
63
+ if (response.result === undefined || response.result === null) {
64
+ throw new Error('No result data received from Serpstat API');
65
+ }
66
+ logger_js_1.logger.info('Successfully stopped site audit', {
67
+ projectId: params.projectId,
68
+ result: response.result.result
69
+ });
70
+ return response.result.result;
71
+ }
72
+ async getCategoriesStatistic(params) {
73
+ logger_js_1.logger.info('Getting categories statistic', { reportId: params.reportId });
74
+ const request = {
75
+ id: `get_categories_statistic_${Date.now()}`,
76
+ method: 'AuditSite.getCategoriesStatistic',
77
+ params,
78
+ };
79
+ const response = await this.makeRequest(request);
80
+ if (!response.result) {
81
+ throw new Error('No result data received from Serpstat API');
82
+ }
83
+ logger_js_1.logger.info('Successfully retrieved categories statistic', {
84
+ reportId: params.reportId,
85
+ categoriesCount: response.result.length
86
+ });
87
+ return response.result;
88
+ }
89
+ async getHistoryByCountError(params) {
90
+ logger_js_1.logger.info('Getting history by count error', {
91
+ projectId: params.projectId,
92
+ errorName: params.errorName,
93
+ limit: params.limit,
94
+ offset: params.offset
95
+ });
96
+ const request = {
97
+ id: `get_history_by_count_error_${Date.now()}`,
98
+ method: 'AuditSite.getHistoryByCountError',
99
+ params,
100
+ };
101
+ const response = await this.makeRequest(request);
102
+ if (!response.result) {
103
+ throw new Error('No result data received from Serpstat API');
104
+ }
105
+ logger_js_1.logger.info('Successfully retrieved history by count error', {
106
+ projectId: params.projectId,
107
+ errorName: params.errorName,
108
+ historyCount: response.result.errorCounts.length
109
+ });
110
+ return response.result;
111
+ }
112
+ async getSiteAuditsList(params) {
113
+ logger_js_1.logger.info('Getting site audits list', {
114
+ projectId: params.projectId,
115
+ limit: params.limit,
116
+ offset: params.offset
117
+ });
118
+ const request = {
119
+ id: `get_site_audits_list_${Date.now()}`,
120
+ method: 'AuditSite.getList',
121
+ params,
122
+ };
123
+ const response = await this.makeRequest(request);
124
+ if (!response.result) {
125
+ throw new Error('No result data received from Serpstat API');
126
+ }
127
+ logger_js_1.logger.info('Successfully retrieved site audits list', {
128
+ projectId: params.projectId,
129
+ auditsCount: response.result.length
130
+ });
131
+ return response.result;
132
+ }
133
+ async getScanUserUrlList(params) {
134
+ logger_js_1.logger.info('Getting scan user URL list', { projectId: params.projectId });
135
+ const request = {
136
+ id: `get_scan_user_url_list_${Date.now()}`,
137
+ method: 'AuditSite.getScanUserUrlList',
138
+ params,
139
+ };
140
+ const response = await this.makeRequest(request);
141
+ if (!response.result) {
142
+ throw new Error('No result data received from Serpstat API');
143
+ }
144
+ logger_js_1.logger.info('Successfully retrieved scan user URL list', {
145
+ projectId: params.projectId,
146
+ urlsCount: response.result.urls.length,
147
+ scanType: response.result.scanType
148
+ });
149
+ return response.result;
150
+ }
151
+ async getDefaultSettings(params) {
152
+ logger_js_1.logger.info('Getting default settings');
153
+ const request = {
154
+ id: `get_default_settings_${Date.now()}`,
155
+ method: 'AuditSite.getDefaultSettings',
156
+ params,
157
+ };
158
+ const response = await this.makeRequest(request);
159
+ if (!response.result) {
160
+ throw new Error('No result data received from Serpstat API');
161
+ }
162
+ logger_js_1.logger.info('Successfully retrieved default settings');
163
+ return response.result;
164
+ }
165
+ async getBasicInfo(params) {
166
+ logger_js_1.logger.info('Getting basic audit info', { reportId: params.reportId });
167
+ const request = {
168
+ id: `get_basic_info_${Date.now()}`,
169
+ method: 'AuditSite.getBasicInfo',
170
+ params,
171
+ };
172
+ const response = await this.makeRequest(request);
173
+ if (!response.result) {
174
+ throw new Error('No result data received from Serpstat API');
175
+ }
176
+ logger_js_1.logger.info('Successfully retrieved basic audit info', {
177
+ reportId: params.reportId,
178
+ sdo: response.result.sdo,
179
+ progress: response.result.progress
180
+ });
181
+ return response.result;
182
+ }
183
+ async getReportWithoutDetails(params) {
184
+ logger_js_1.logger.info('Getting report without details', {
185
+ reportId: params.reportId,
186
+ compareReportId: params.compareReportId
187
+ });
188
+ const request = {
189
+ id: `get_report_without_details_${Date.now()}`,
190
+ method: 'AuditSite.getReportWithoutDetails',
191
+ params,
192
+ };
193
+ const response = await this.makeRequest(request);
194
+ if (!response.result) {
195
+ throw new Error('No result data received from Serpstat API');
196
+ }
197
+ logger_js_1.logger.info('Successfully retrieved report without details', {
198
+ reportId: params.reportId,
199
+ categoriesCount: response.result.categories.length
200
+ });
201
+ return response.result;
202
+ }
203
+ async getErrorElements(params) {
204
+ logger_js_1.logger.info('Getting error elements', {
205
+ reportId: params.reportId,
206
+ errorName: params.errorName,
207
+ mode: params.mode,
208
+ limit: params.limit,
209
+ offset: params.offset
210
+ });
211
+ const request = {
212
+ id: `get_error_elements_${Date.now()}`,
213
+ method: 'AuditSite.getErrorElements',
214
+ params,
215
+ };
216
+ const response = await this.makeRequest(request);
217
+ if (!response.result) {
218
+ throw new Error('No result data received from Serpstat API');
219
+ }
220
+ logger_js_1.logger.info('Successfully retrieved error elements', {
221
+ reportId: params.reportId,
222
+ errorName: params.errorName,
223
+ totalCount: response.result.totalCount
224
+ });
225
+ return response.result;
226
+ }
227
+ async getSubElementsByCrc(params) {
228
+ logger_js_1.logger.info('Getting sub-elements by CRC', {
229
+ reportId: params.reportId,
230
+ errorName: params.errorName,
231
+ crc: params.crc,
232
+ mode: params.mode,
233
+ limit: params.limit,
234
+ offset: params.offset
235
+ });
236
+ const request = {
237
+ id: `get_sub_elements_by_crc_${Date.now()}`,
238
+ method: 'AuditSite.getSubElementsByCrc',
239
+ params,
240
+ };
241
+ const response = await this.makeRequest(request);
242
+ if (!response.result) {
243
+ throw new Error('No result data received from Serpstat API');
244
+ }
245
+ logger_js_1.logger.info('Successfully retrieved sub-elements by CRC', {
246
+ reportId: params.reportId,
247
+ crc: params.crc,
248
+ totalCount: response.result.totalCount
249
+ });
250
+ return response.result;
251
+ }
252
+ }
253
+ exports.SiteAuditService = SiteAuditService;
254
+ //# sourceMappingURL=site_audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site_audit.js","sourceRoot":"","sources":["../../src/services/site_audit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { BaseService } from './base.js';
2
+ import { UrlSummaryTrafficParams, UrlCompetitorsParams, UrlKeywordsParams, UrlMissingKeywordsParams } from '../utils/validation.js';
3
+ import { UrlSummaryTrafficResponse, UrlCompetitorsResponse, UrlKeywordsResponse, UrlMissingKeywordsResponse } from '../types/serpstat.js';
4
+ export declare class UrlService extends BaseService {
5
+ getUrlSummaryTraffic(params: UrlSummaryTrafficParams): Promise<UrlSummaryTrafficResponse>;
6
+ getUrlCompetitors(params: UrlCompetitorsParams): Promise<UrlCompetitorsResponse>;
7
+ getUrlKeywords(params: UrlKeywordsParams): Promise<UrlKeywordsResponse>;
8
+ getUrlMissingKeywords(params: UrlMissingKeywordsParams): Promise<UrlMissingKeywordsResponse>;
9
+ }
10
+ //# sourceMappingURL=url_tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url_tools.d.ts","sourceRoot":"","sources":["../../src/services/url_tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACpI,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,0BAA0B,EAAmB,MAAM,sBAAsB,CAAC;AAG3J,qBAAa,UAAW,SAAQ,WAAW;IACjC,oBAAoB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAoBzF,iBAAiB,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAmBhF,cAAc,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAmBvE,qBAAqB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,0BAA0B,CAAC;CAiBrG"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UrlService = void 0;
4
+ const base_js_1 = require("./base.js");
5
+ const logger_js_1 = require("../utils/logger.js");
6
+ class UrlService extends base_js_1.BaseService {
7
+ async getUrlSummaryTraffic(params) {
8
+ logger_js_1.logger.info('Getting URL summary traffic', { domain: params.domain, urlContains: params.urlContains, se: params.se });
9
+ const request = {
10
+ id: `get_url_summary_traffic_${Date.now()}`,
11
+ method: 'SerpstatUrlProcedure.getSummaryTraffic',
12
+ params,
13
+ };
14
+ const response = await this.makeRequest(request);
15
+ if (!response.result) {
16
+ throw new Error('No result data received from Serpstat API');
17
+ }
18
+ logger_js_1.logger.info('Successfully retrieved URL summary traffic', {
19
+ urls: response.result.urls,
20
+ traffic: response.result.traffic,
21
+ keywords: response.result.keywords,
22
+ leftLines: response.result.summary_info.left_lines
23
+ });
24
+ return response.result;
25
+ }
26
+ async getUrlCompetitors(params) {
27
+ logger_js_1.logger.info('Getting URL competitors', { url: params.url, se: params.se });
28
+ const request = {
29
+ id: `get_url_competitors_${Date.now()}`,
30
+ method: 'SerpstatUrlProcedure.getUrlCompetitors',
31
+ params,
32
+ };
33
+ const response = await this.makeRequest(request);
34
+ if (!response.result) {
35
+ throw new Error('No result data received from Serpstat API');
36
+ }
37
+ logger_js_1.logger.info('Successfully retrieved URL competitors', {
38
+ competitorsCount: response.result.data.length,
39
+ total: response.result.summary_info.total,
40
+ leftLines: response.result.summary_info.left_lines
41
+ });
42
+ return response.result;
43
+ }
44
+ async getUrlKeywords(params) {
45
+ logger_js_1.logger.info('Getting URL keywords', { url: params.url, se: params.se, withIntents: params.withIntents });
46
+ const request = {
47
+ id: `get_url_keywords_${Date.now()}`,
48
+ method: 'SerpstatUrlProcedure.getUrlKeywords',
49
+ params,
50
+ };
51
+ const response = await this.makeRequest(request);
52
+ if (!response.result) {
53
+ throw new Error('No result data received from Serpstat API');
54
+ }
55
+ logger_js_1.logger.info('Successfully retrieved URL keywords', {
56
+ keywordsCount: response.result.data.length,
57
+ total: response.result.summary_info.total,
58
+ leftLines: response.result.summary_info.left_lines
59
+ });
60
+ return response.result;
61
+ }
62
+ async getUrlMissingKeywords(params) {
63
+ logger_js_1.logger.info('Getting URL missing keywords', { url: params.url, se: params.se });
64
+ const request = {
65
+ id: `get_url_missing_keywords_${Date.now()}`,
66
+ method: 'SerpstatUrlProcedure.getUrlMissingKeywords',
67
+ params,
68
+ };
69
+ const response = await this.makeRequest(request);
70
+ if (!response.result) {
71
+ throw new Error('No result data received from Serpstat API');
72
+ }
73
+ logger_js_1.logger.info('Successfully retrieved URL missing keywords', {
74
+ keywordsCount: response.result.data.length,
75
+ leftLines: response.result.summary_info.left_lines
76
+ });
77
+ return response.result;
78
+ }
79
+ }
80
+ exports.UrlService = UrlService;
81
+ //# sourceMappingURL=url_tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url_tools.js","sourceRoot":"","sources":["../../src/services/url_tools.ts"],"names":[],"mappings":"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"}
@@ -631,4 +631,225 @@ export interface GetRtProjectUrlSerpHistoryResponse {
631
631
  summary_info: RtProjectsSummaryInfo;
632
632
  spent_limits: number;
633
633
  }
634
+ export interface UrlSummaryTrafficResponse {
635
+ urls: number;
636
+ traffic?: number;
637
+ keywords?: number;
638
+ summary_info: {
639
+ left_lines: number;
640
+ };
641
+ }
642
+ export interface UrlCompetitorData {
643
+ domain: string;
644
+ url: string;
645
+ cnt: number;
646
+ }
647
+ export interface UrlCompetitorsResponse {
648
+ data: UrlCompetitorData[];
649
+ summary_info: {
650
+ page: number;
651
+ total: number;
652
+ left_lines: number;
653
+ };
654
+ }
655
+ export interface UrlKeywordData {
656
+ domain: string;
657
+ subdomain: string;
658
+ keyword: string;
659
+ keyword_length: number;
660
+ url: string;
661
+ position: number;
662
+ types: string[];
663
+ found_results: number;
664
+ cost: number;
665
+ concurrency: number;
666
+ region_queries_count: number;
667
+ region_queries_count_wide: number | null;
668
+ geo_names: string[];
669
+ traff: number;
670
+ difficulty: number;
671
+ dynamic: number;
672
+ intents: string[];
673
+ first_position?: string;
674
+ first_url?: string;
675
+ }
676
+ export interface UrlKeywordsResponse {
677
+ data: UrlKeywordData[];
678
+ summary_info: {
679
+ page: number;
680
+ total: number;
681
+ left_lines: number;
682
+ };
683
+ }
684
+ export interface UrlMissingKeywordData {
685
+ geo_names: string[];
686
+ region_queries_count: number;
687
+ types: string[];
688
+ cost: number;
689
+ region_queries_count_wide: number;
690
+ keyword: string;
691
+ concurrency: number;
692
+ weight: number;
693
+ }
694
+ export interface UrlMissingKeywordsResponse {
695
+ data: UrlMissingKeywordData[];
696
+ summary_info: {
697
+ page: number;
698
+ left_lines: number;
699
+ };
700
+ }
701
+ export interface SiteAuditMainSettings {
702
+ domain: string;
703
+ name: string;
704
+ subdomainsCheck: boolean;
705
+ pagesLimit: number;
706
+ scanSpeed: number;
707
+ autoSpeed: boolean;
708
+ scanNoIndex: boolean;
709
+ autoUserAgent: boolean;
710
+ scanWrongCanonical: boolean;
711
+ scanDuration: number;
712
+ folderDepth: number;
713
+ urlDepth: number;
714
+ userAgent: number;
715
+ robotsTxt: boolean;
716
+ withImages: boolean;
717
+ }
718
+ export interface SiteAuditKeywordsBlock {
719
+ checked: boolean;
720
+ keywords: string;
721
+ }
722
+ export interface SiteAuditBaseAuthBlock {
723
+ login: string;
724
+ password: string;
725
+ }
726
+ export interface SiteAuditMailTriggerSettings {
727
+ emails: string[];
728
+ interval: number;
729
+ enabled: boolean;
730
+ enableExportAfterFinish?: boolean;
731
+ }
732
+ export interface SiteAuditScheduleSettings {
733
+ scheduleRepeatOption: number;
734
+ }
735
+ export interface SiteAuditScanSetting {
736
+ type: number;
737
+ list: string[];
738
+ }
739
+ export interface SiteAuditErrorsSettings {
740
+ tiny_title: number;
741
+ long_title: number;
742
+ tiny_desc: number;
743
+ long_desc: number;
744
+ long_url: number;
745
+ large_image_size: number;
746
+ large_page_size: number;
747
+ many_external_links: number;
748
+ }
749
+ export interface SiteAuditSettings {
750
+ mainSettings: SiteAuditMainSettings;
751
+ dontScanKeywordsBlock: SiteAuditKeywordsBlock;
752
+ onlyScanKeywordsBlock: SiteAuditKeywordsBlock;
753
+ baseAuthBlock: SiteAuditBaseAuthBlock;
754
+ mailTriggerSettings: SiteAuditMailTriggerSettings;
755
+ scheduleSettings: SiteAuditScheduleSettings;
756
+ scanSetting: SiteAuditScanSetting;
757
+ errorsSettings: SiteAuditErrorsSettings;
758
+ }
759
+ export interface GetSiteAuditSettingsResponse extends SiteAuditSettings {
760
+ }
761
+ export interface SetSiteAuditSettingsResponse {
762
+ result: null;
763
+ }
764
+ export interface StartSiteAuditResponse {
765
+ reportId: number;
766
+ }
767
+ export interface StopSiteAuditResponse {
768
+ result: boolean;
769
+ }
770
+ export interface CategoryStatistic {
771
+ category: string;
772
+ highCount: number;
773
+ mediumCount: number;
774
+ lowCount: number;
775
+ informationCount: number;
776
+ }
777
+ export type GetCategoriesStatisticResponse = CategoryStatistic[];
778
+ export interface ErrorCountHistory {
779
+ reportId: number;
780
+ date: string;
781
+ count: string;
782
+ }
783
+ export interface GetHistoryByCountErrorResponse {
784
+ errorCounts: ErrorCountHistory[];
785
+ }
786
+ export interface AuditReportSummary {
787
+ reportId: number;
788
+ date: string;
789
+ sdo: number;
790
+ pagesLimit: number;
791
+ pagesScanned: number;
792
+ criticalCount: number;
793
+ nonCriticalCount: number;
794
+ virusesCount: number;
795
+ progress: number;
796
+ stoped: boolean;
797
+ hasDetailData: boolean;
798
+ }
799
+ export type GetSiteAuditsListResponse = AuditReportSummary[];
800
+ export interface GetScanUserUrlListResponse {
801
+ urls: string[];
802
+ scanType: number;
803
+ isImported: boolean;
804
+ }
805
+ export interface GetDefaultSettingsResponse extends SiteAuditSettings {
806
+ }
807
+ export interface GetBasicInfoResponse {
808
+ reportId: number;
809
+ date: string;
810
+ sdo: number;
811
+ highCount: number;
812
+ mediumCount: number;
813
+ lowCount: number;
814
+ informationCount: number;
815
+ virusesCount: number;
816
+ progress: number;
817
+ stoped: number;
818
+ specialStopReason: number;
819
+ checkedPageCount: number;
820
+ totalCheckedPageCount: number;
821
+ redirectCount: number;
822
+ captchaDetected: boolean;
823
+ hasDetailData: boolean;
824
+ }
825
+ export interface AuditError {
826
+ key: string;
827
+ priority: string;
828
+ countAll: number;
829
+ countNew: number;
830
+ countFixed: number;
831
+ }
832
+ export interface AuditCategory {
833
+ key: string;
834
+ errors: AuditError[];
835
+ }
836
+ export interface GetReportWithoutDetailsResponse {
837
+ categories: AuditCategory[];
838
+ }
839
+ export interface ErrorElement {
840
+ startUrl: string;
841
+ code: number;
842
+ finishUrl: string;
843
+ count: number;
844
+ startUrlCrc: number;
845
+ }
846
+ export interface GetErrorElementsResponse {
847
+ data: ErrorElement[];
848
+ totalCount: number;
849
+ mode: string;
850
+ }
851
+ export interface GetSubElementsByCrcResponse {
852
+ data: string[];
853
+ totalCount: number;
854
+ }
634
855
  //# sourceMappingURL=serpstat.d.ts.map