@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.
- package/CHANGELOG.md +36 -1
- package/README.md +32 -0
- package/dist/handlers/site_audit_tools.d.ts +107 -0
- package/dist/handlers/site_audit_tools.d.ts.map +1 -0
- package/dist/handlers/site_audit_tools.js +767 -0
- package/dist/handlers/site_audit_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 +20 -1
- package/dist/server.js.map +1 -1
- package/dist/services/site_audit.d.ts +19 -0
- package/dist/services/site_audit.d.ts.map +1 -0
- package/dist/services/site_audit.js +254 -0
- package/dist/services/site_audit.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 +221 -0
- package/dist/types/serpstat.d.ts.map +1 -1
- package/dist/utils/constants.d.ts +30 -0
- package/dist/utils/constants.d.ts.map +1 -1
- package/dist/utils/constants.js +54 -1
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/validation.d.ts +870 -100
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +194 -1
- package/dist/utils/validation.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,40 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.1.0] - 2025-10-01
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- **Site Audit Tools**: Added thirteen methods for comprehensive site audit project management and analysis
|
|
8
|
+
- `get_site_audit_settings` - Retrieve audit settings for a specific project including scan parameters, scheduling options, email notifications, and error detection thresholds (does not consume API credits)
|
|
9
|
+
- `set_site_audit_settings` - Update audit settings for a project with comprehensive configuration options for scan speed, user agent, URL depth, folder depth, keywords filtering, HTTP authentication, scheduling, and custom error thresholds (does not consume API credits)
|
|
10
|
+
- `start_site_audit` - Start an audit session for a specified project and receive a reportId to track audit progress (consumes 1 API credit per successfully scanned page without JS rendering, 10 credits per page with JS rendering)
|
|
11
|
+
- `stop_site_audit` - Stop an active audit session for a project and receive operation result status (does not consume API credits)
|
|
12
|
+
- `get_site_audit_results_by_categories` - Get audit results statistics grouped by issue categories (pages status, meta tags, headings, content, multimedia, indexation, redirects, links, HTTPS, hreflang, AMP, markup, pagespeed) showing critical, medium, low, and informational issue counts per category (does not consume API credits)
|
|
13
|
+
- `get_site_audit_history` - Get historical error count data for a specific error type across multiple audit reports, useful for tracking improvements or regressions in specific SEO issues over time (does not consume API credits)
|
|
14
|
+
- `get_site_audits_list` - Get list of all audit reports for a project with summary statistics including SDO score, pages scanned, error counts, progress percentage, and completion status (does not consume API credits)
|
|
15
|
+
- `get_site_audit_scanned_urls_list` - Get list of URLs that will be scanned based on project scan settings (entire domain, specific URLs only, or imported list) useful for verifying audit scope before starting scans (does not consume API credits)
|
|
16
|
+
- `get_site_audit_project_default_settings` - Get default audit settings template with recommended values for creating new projects, including standard error thresholds, scan parameters, and scheduling options (does not consume API credits)
|
|
17
|
+
- `get_site_audit_bref_info` - Get essential summary information from the latest site audit including Serpstat Domain Optimization Score (SDO), total error counts by priority level (high/medium/low/information), virus count, scan progress percentage, stop status, scanned pages count, redirect count, and captcha detection status (does not consume API credits)
|
|
18
|
+
- `get_site_audit_deteailed_report` - Get the number of errors and issues categorized by issue type found in a specific audit report, with optional comparison to another report showing countAll (total errors), countNew (new errors since comparison), and countFixed (fixed errors since comparison) for tracking audit improvements over time (does not consume API credits)
|
|
19
|
+
- `get_site_audit_pages_spec_errors` - Get a comprehensive list of all pages where a specific audit error was detected, with support for filtering by error display mode (all errors, new errors, or solved errors) and pagination, returning detailed information including startUrl, HTTP status code, finishUrl, occurrence count, and startUrlCrc for each affected page (does not consume API credits)
|
|
20
|
+
- `get_site_audit_elements_with_issues` - Get a list of sub-elements (URLs) which contain specific errors or issues identified by CRC parameter from get_site_audit_pages_spec_errors response, with support for filtering by mode and pagination, useful for drilling down into specific error instances (does not consume API credits)
|
|
21
|
+
- Added comprehensive validation schemas and TypeScript types for all site audit operations
|
|
22
|
+
- Added test coverage for all site audit methods (51 tests covering validation schemas and service methods)
|
|
23
|
+
- Updated documentation with complete site audit tools section and usage examples
|
|
24
|
+
|
|
25
|
+
## [1.0.9] - 2025-10-01
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
|
|
29
|
+
- **URL Analysis Tools**: Added four new methods for analyzing website URLs and their search performance
|
|
30
|
+
- `get_url_summary_traff` - Get traffic and keyword statistics for website pages matching a specific URL mask, showing organic traffic and keyword counts for URLs matching the given pattern
|
|
31
|
+
- `get_url_competitors` - Get list of URL competitors showing domains and pages that compete for the same keywords in top-10 search results
|
|
32
|
+
- `get_url_keywords` - Get keywords for which specified URL ranks in top-100 Google and top-50 Bing search results, with comprehensive metrics including positions, traffic, difficulty, and keyword intents
|
|
33
|
+
- `get_url_missing_keywords` - Get keywords that competitors rank for but the given URL does not, helping identify keyword gaps and content optimization opportunities
|
|
34
|
+
- Added comprehensive validation schemas and TypeScript types for URL analysis operations
|
|
35
|
+
- Added test coverage for all URL analysis methods (24 tests)
|
|
36
|
+
- Updated documentation with URL analysis tools section and usage examples
|
|
37
|
+
|
|
3
38
|
## [1.0.8] - 2025-09-30
|
|
4
39
|
|
|
5
40
|
### Added
|
|
@@ -47,7 +82,7 @@
|
|
|
47
82
|
- Added `get_keyword_full_top` method to show Google's top-100 search results for analyzed keywords
|
|
48
83
|
- Added `get_keywords_info` method to get keyword overview with volume, CPC, competition level, difficulty, and additional metrics for multiple keywords
|
|
49
84
|
- Added `get_keyword_suggestions` method to show search suggestions for keywords found by full-text search with geographic names information
|
|
50
|
-
- Added `get_keyword_top_urls` method to return website pages that rank for the largest amount of analyzed keyword variations with highest traffic
|
|
85
|
+
- Added `get_keyword_top_urls` method to return website pages that rank for the largest amount of analyzed keyword variations with the highest traffic
|
|
51
86
|
- Added `get_keyword_competitors` method to list domains that rank for the given keyword in Google top-20 results with detailed competitor analysis
|
|
52
87
|
- Added `get_keyword_top` method to show Google's top-100 search results for analyzed keyword with position, URL, domain and SERP features (deprecated method)
|
|
53
88
|
- Added `get_anchors` method to analyze anchor text distribution in backlinks with metrics on referring domains, total backlinks, and nofollow counts
|
package/README.md
CHANGED
|
@@ -153,6 +153,11 @@ After installation and configuration in Claude Desktop, you can ask Claude:
|
|
|
153
153
|
- "List all my rank tracker projects"
|
|
154
154
|
- "Check parsing status for project **12345** in region **2840**"
|
|
155
155
|
|
|
156
|
+
### Site Audit
|
|
157
|
+
- "Get audit settings for project **1113915**"
|
|
158
|
+
- "Start site audit for project **1113915**"
|
|
159
|
+
- "Stop site audit for project **1113915**"
|
|
160
|
+
|
|
156
161
|
## MCP Tools
|
|
157
162
|
|
|
158
163
|
### Domain Analysis Tools
|
|
@@ -179,6 +184,15 @@ After installation and configuration in Claude Desktop, you can ask Claude:
|
|
|
179
184
|
| get_keyword_competitors | Get domains that rank for the given keyword in Google top-20 results with competitor analysis | keyword, se, filters, sort |
|
|
180
185
|
| get_keyword_top | Get Google's top-100 search results for the analyzed keyword with position, URL, and SERP features| keyword, se, filters, size |
|
|
181
186
|
|
|
187
|
+
### URL Analysis Tools
|
|
188
|
+
|
|
189
|
+
| Tool Name | Description | Key Parameters |
|
|
190
|
+
|---------------------------|---------------------------------------------------------------------------------------------------|--------------------------|
|
|
191
|
+
| get_url_summary_traff | Get traffic and keyword statistics for website pages matching a specific URL mask | se, domain, urlContains |
|
|
192
|
+
| get_url_competitors | Get list of URL competitors showing domains competing for same keywords in top-10 results | se, url, sort, page |
|
|
193
|
+
| get_url_keywords | Get keywords for which specified URL ranks in top-100 Google and top-50 Bing search results | se, url, filters, sort |
|
|
194
|
+
| get_url_missing_keywords | Get keywords that competitors rank for but the given URL does not, identifying keyword gaps | url, se, filters, sort |
|
|
195
|
+
|
|
182
196
|
### Backlinks Analysis Tools
|
|
183
197
|
|
|
184
198
|
| Tool Name | Description | Key Parameters |
|
|
@@ -220,6 +234,24 @@ After installation and configuration in Claude Desktop, you can ask Claude:
|
|
|
220
234
|
| get_rt_project_keyword_serp_history | Get Google's top-100 SERP history for rank tracker keywords with positions and URLs *No cost* | projectId, projectRegionId, page|
|
|
221
235
|
| get_rt_project_url_serp_history | Get ranking history of URLs for rank tracker keywords with historical position data *No cost* | projectId, projectRegionId, page|
|
|
222
236
|
|
|
237
|
+
### Site Audit Tools
|
|
238
|
+
|
|
239
|
+
| Tool Name | Description | Key Parameters |
|
|
240
|
+
|-----------------------------|----------------------------------------------------------------------------------------------------------------------------------|-----------------------------|
|
|
241
|
+
| get_site_audit_settings | Get audit settings for a project including scan parameters, scheduling, and error thresholds *No cost* | projectId |
|
|
242
|
+
| set_site_audit_settings | Update audit settings for a project with scan configuration, scheduling, and notifications *No cost* | projectId, mainSettings, ... |
|
|
243
|
+
| start_site_audit | Start audit session for a project and receive reportId for tracking progress (1 credit/page, 10 credits/page with JS rendering) | projectId |
|
|
244
|
+
| stop_site_audit | Stop active audit session for a project *No cost* | projectId |
|
|
245
|
+
| get_site_audit_results_by_categories | Get audit results statistics grouped by issue categories (pages status, meta tags, links, etc.) *No cost* | reportId |
|
|
246
|
+
| get_site_audit_history | Get historical error count data for a specific error type across multiple audit reports *No cost* | projectId, errorName, limit, offset |
|
|
247
|
+
| get_site_audits_list | Get list of all audit reports for a project with summary statistics and progress information *No cost* | projectId, limit, offset |
|
|
248
|
+
| get_site_audit_scanned_urls_list | Get list of URLs that will be scanned based on project scan settings *No cost* | projectId |
|
|
249
|
+
| get_site_audit_project_default_settings | Get default audit settings template to use when creating new projects *No cost* | - |
|
|
250
|
+
| get_site_audit_bref_info | Get essential summary information from latest audit including SDO score, issue counts by priority, scan progress, and completion status *No cost* | reportId |
|
|
251
|
+
| get_site_audit_deteailed_report | Get number of errors categorized by type with comparison to previous report showing countAll, countNew, and countFixed *No cost* | reportId, compareReportId (optional) |
|
|
252
|
+
| get_site_audit_pages_spec_errors | Get list of all pages where a specific error was detected with filtering by mode (all/new/solved) and pagination support *No cost* | reportId, compareReportId, projectId, errorName, mode, limit, offset |
|
|
253
|
+
| get_site_audit_elements_with_issues | Get list of sub-elements (URLs) containing specific errors using CRC from get_site_audit_pages_spec_errors response *No cost* | reportId, projectId, errorName, crc, compareReportId (optional), mode, limit, offset |
|
|
254
|
+
|
|
223
255
|
### Search Engines (se parameter)
|
|
224
256
|
|
|
225
257
|
Common search engine codes:
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { BaseHandler } from './base.js';
|
|
2
|
+
import { MCPToolCall, MCPToolResponse } from '../types/mcp.js';
|
|
3
|
+
export declare class GetSiteAuditSettingsHandler extends BaseHandler {
|
|
4
|
+
private siteAuditService;
|
|
5
|
+
constructor();
|
|
6
|
+
getName(): string;
|
|
7
|
+
getDescription(): string;
|
|
8
|
+
getInputSchema(): object;
|
|
9
|
+
handle(call: MCPToolCall): Promise<MCPToolResponse>;
|
|
10
|
+
}
|
|
11
|
+
export declare class SetSiteAuditSettingsHandler extends BaseHandler {
|
|
12
|
+
private siteAuditService;
|
|
13
|
+
constructor();
|
|
14
|
+
getName(): string;
|
|
15
|
+
getDescription(): string;
|
|
16
|
+
getInputSchema(): object;
|
|
17
|
+
handle(call: MCPToolCall): Promise<MCPToolResponse>;
|
|
18
|
+
}
|
|
19
|
+
export declare class StartSiteAuditHandler extends BaseHandler {
|
|
20
|
+
private siteAuditService;
|
|
21
|
+
constructor();
|
|
22
|
+
getName(): string;
|
|
23
|
+
getDescription(): string;
|
|
24
|
+
getInputSchema(): object;
|
|
25
|
+
handle(call: MCPToolCall): Promise<MCPToolResponse>;
|
|
26
|
+
}
|
|
27
|
+
export declare class StopSiteAuditHandler extends BaseHandler {
|
|
28
|
+
private siteAuditService;
|
|
29
|
+
constructor();
|
|
30
|
+
getName(): string;
|
|
31
|
+
getDescription(): string;
|
|
32
|
+
getInputSchema(): object;
|
|
33
|
+
handle(call: MCPToolCall): Promise<MCPToolResponse>;
|
|
34
|
+
}
|
|
35
|
+
export declare class GetCategoriesStatisticHandler extends BaseHandler {
|
|
36
|
+
private siteAuditService;
|
|
37
|
+
constructor();
|
|
38
|
+
getName(): string;
|
|
39
|
+
getDescription(): string;
|
|
40
|
+
getInputSchema(): object;
|
|
41
|
+
handle(call: MCPToolCall): Promise<MCPToolResponse>;
|
|
42
|
+
}
|
|
43
|
+
export declare class GetHistoryByCountErrorHandler extends BaseHandler {
|
|
44
|
+
private siteAuditService;
|
|
45
|
+
constructor();
|
|
46
|
+
getName(): string;
|
|
47
|
+
getDescription(): string;
|
|
48
|
+
getInputSchema(): object;
|
|
49
|
+
handle(call: MCPToolCall): Promise<MCPToolResponse>;
|
|
50
|
+
}
|
|
51
|
+
export declare class GetSiteAuditsListHandler extends BaseHandler {
|
|
52
|
+
private siteAuditService;
|
|
53
|
+
constructor();
|
|
54
|
+
getName(): string;
|
|
55
|
+
getDescription(): string;
|
|
56
|
+
getInputSchema(): object;
|
|
57
|
+
handle(call: MCPToolCall): Promise<MCPToolResponse>;
|
|
58
|
+
}
|
|
59
|
+
export declare class GetScanUserUrlListHandler extends BaseHandler {
|
|
60
|
+
private siteAuditService;
|
|
61
|
+
constructor();
|
|
62
|
+
getName(): string;
|
|
63
|
+
getDescription(): string;
|
|
64
|
+
getInputSchema(): object;
|
|
65
|
+
handle(call: MCPToolCall): Promise<MCPToolResponse>;
|
|
66
|
+
}
|
|
67
|
+
export declare class GetDefaultSettingsHandler extends BaseHandler {
|
|
68
|
+
private siteAuditService;
|
|
69
|
+
constructor();
|
|
70
|
+
getName(): string;
|
|
71
|
+
getDescription(): string;
|
|
72
|
+
getInputSchema(): object;
|
|
73
|
+
handle(call: MCPToolCall): Promise<MCPToolResponse>;
|
|
74
|
+
}
|
|
75
|
+
export declare class GetBasicInfoHandler extends BaseHandler {
|
|
76
|
+
private siteAuditService;
|
|
77
|
+
constructor();
|
|
78
|
+
getName(): string;
|
|
79
|
+
getDescription(): string;
|
|
80
|
+
getInputSchema(): object;
|
|
81
|
+
handle(call: MCPToolCall): Promise<MCPToolResponse>;
|
|
82
|
+
}
|
|
83
|
+
export declare class GetReportWithoutDetailsHandler extends BaseHandler {
|
|
84
|
+
private siteAuditService;
|
|
85
|
+
constructor();
|
|
86
|
+
getName(): string;
|
|
87
|
+
getDescription(): string;
|
|
88
|
+
getInputSchema(): object;
|
|
89
|
+
handle(call: MCPToolCall): Promise<MCPToolResponse>;
|
|
90
|
+
}
|
|
91
|
+
export declare class GetErrorElementsHandler extends BaseHandler {
|
|
92
|
+
private siteAuditService;
|
|
93
|
+
constructor();
|
|
94
|
+
getName(): string;
|
|
95
|
+
getDescription(): string;
|
|
96
|
+
getInputSchema(): object;
|
|
97
|
+
handle(call: MCPToolCall): Promise<MCPToolResponse>;
|
|
98
|
+
}
|
|
99
|
+
export declare class GetSubElementsByCrcHandler extends BaseHandler {
|
|
100
|
+
private siteAuditService;
|
|
101
|
+
constructor();
|
|
102
|
+
getName(): string;
|
|
103
|
+
getDescription(): string;
|
|
104
|
+
getInputSchema(): object;
|
|
105
|
+
handle(call: MCPToolCall): Promise<MCPToolResponse>;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=site_audit_tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"site_audit_tools.d.ts","sourceRoot":"","sources":["../../src/handlers/site_audit_tools.ts"],"names":[],"mappings":"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"}
|