search-console-mcp 1.10.0 → 1.11.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/README.md +36 -5
- package/dist/bing/client.js +97 -0
- package/dist/bing/docs/algorithm-updates.js +31 -0
- package/dist/bing/docs/dimensions.js +42 -0
- package/dist/bing/docs/filters.js +43 -0
- package/dist/bing/docs/index.js +111 -0
- package/dist/bing/docs/patterns.js +108 -0
- package/dist/bing/docs/search-types.js +21 -0
- package/dist/bing/tools/advanced-analytics.js +238 -0
- package/dist/bing/tools/analytics.js +121 -0
- package/dist/bing/tools/crawl.js +15 -0
- package/dist/bing/tools/index-now.js +18 -0
- package/dist/bing/tools/inspection.js +8 -0
- package/dist/bing/tools/keywords.js +15 -0
- package/dist/bing/tools/links.js +8 -0
- package/dist/bing/tools/seo-insights.js +114 -0
- package/dist/bing/tools/sitemaps.js +22 -0
- package/dist/bing/tools/sites-health.js +109 -0
- package/dist/bing/tools/sites.js +10 -0
- package/dist/bing/tools/url-submission.js +24 -0
- package/dist/{tools → common/tools}/seo-primitives.js +1 -1
- package/dist/{tools → google/tools}/analytics.js +6 -3
- package/dist/{tools → google/tools}/inspection.js +1 -1
- package/dist/{tools → google/tools}/seo-insights.js +3 -8
- package/dist/{tools → google/tools}/sitemaps.js +1 -1
- package/dist/{tools → google/tools}/sites.js +1 -1
- package/dist/index.js +476 -14
- package/dist/setup.js +45 -14
- package/package.json +3 -2
- /package/dist/{errors.js → common/errors.js} +0 -0
- /package/dist/{tools → common/tools}/schema-validator.js +0 -0
- /package/dist/{utils → common/utils}/regex.js +0 -0
- /package/dist/{google-client.js → google/client.js} +0 -0
- /package/dist/{docs → google/docs}/algorithm-updates.js +0 -0
- /package/dist/{docs → google/docs}/dimensions.js +0 -0
- /package/dist/{docs → google/docs}/filters.js +0 -0
- /package/dist/{docs → google/docs}/index.js +0 -0
- /package/dist/{docs → google/docs}/patterns.js +0 -0
- /package/dist/{docs → google/docs}/search-types.js +0 -0
- /package/dist/{tools → google/tools}/advanced-analytics.js +0 -0
- /package/dist/{tools → google/tools}/pagespeed.js +0 -0
- /package/dist/{tools → google/tools}/sites-health.js +0 -0
- /package/dist/{tools → google/tools}/support.js +0 -0
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
|
-
#
|
|
2
|
+
# Search Console MCP
|
|
3
3
|
|
|
4
|
-
A Model Context Protocol (MCP) server that transforms how you interact with Google Search Console
|
|
4
|
+
A Model Context Protocol (MCP) server that transforms how you interact with **Google Search Console** and **Bing Webmaster Tools**. Stop exporting CSVs and start asking questions.
|
|
5
5
|
|
|
6
6
|
[📚 View Documentation](https://searchconsolemcp.mintlify.app/)
|
|
7
7
|
|
|
@@ -29,7 +29,7 @@ A Model Context Protocol (MCP) server that transforms how you interact with Goog
|
|
|
29
29
|
|
|
30
30
|
Copy and paste these into your MCP client (Claude Desktop, etc.) to see the intelligence engine in action:
|
|
31
31
|
|
|
32
|
-
####
|
|
32
|
+
#### 🔍 The Traffic Detective
|
|
33
33
|
> "My traffic dropped this week compared to last. Use the anomaly detection and time-series tools to find exactly when the drop started and which pages are responsible."
|
|
34
34
|
|
|
35
35
|
#### 🎯 The "Striking Distance" Hunter
|
|
@@ -47,6 +47,9 @@ Copy and paste these into your MCP client (Claude Desktop, etc.) to see the inte
|
|
|
47
47
|
#### ⚡ The Speed vs. Ranking Correlator
|
|
48
48
|
> "Fetch the top 5 pages by impressions. For these pages, run a PageSpeed audit. Is there any correlation between low performance scores and recently declining positions?"
|
|
49
49
|
|
|
50
|
+
#### 🔍 Multi-Engine Comparison
|
|
51
|
+
> "Compare my performance between Google and Bing for the last 30 days. Which keywords are ranking better on Bing but have lower traffic on Google?"
|
|
52
|
+
|
|
50
53
|
---
|
|
51
54
|
|
|
52
55
|
## 🔐 Authentication (Desktop Flow)
|
|
@@ -95,6 +98,20 @@ For server-side environments or automated tasks where interactive login isn't po
|
|
|
95
98
|
|
|
96
99
|
---
|
|
97
100
|
|
|
101
|
+
## 🔑 Bing Webmaster Tools (API Key)
|
|
102
|
+
|
|
103
|
+
To access Bing data, you simply need an API Key.
|
|
104
|
+
|
|
105
|
+
### Setup:
|
|
106
|
+
1. **Get Your API Key**: Go to [Bing Webmaster Tools Settings](https://www.bing.com/webmasters/settings/api).
|
|
107
|
+
2. **Configure**: Set the API key in your environment:
|
|
108
|
+
```bash
|
|
109
|
+
export BING_API_KEY="your-api-key-here"
|
|
110
|
+
```
|
|
111
|
+
3. **IndexNow**: Bing tools also support **IndexNow** for instant URL submission.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
98
115
|
|
|
99
116
|
## 🛡️ Fort Knox Security
|
|
100
117
|
|
|
@@ -110,7 +127,7 @@ This MCP server implements a multi-layered security architecture:
|
|
|
110
127
|
|
|
111
128
|
## Tools Reference
|
|
112
129
|
|
|
113
|
-
### Analytics
|
|
130
|
+
### Google Analytics
|
|
114
131
|
| Tool | Description |
|
|
115
132
|
|------|-------------|
|
|
116
133
|
| `analytics_query` | Master tool for raw data. Supports `dimensions`, `filters`, `aggregationType` (byPage/byProperty), `dataState` (final/all), and `type` (web/image/news/discover). |
|
|
@@ -154,9 +171,23 @@ These are low-level tools designed to be used by other AI agents to build comple
|
|
|
154
171
|
| `pagespeed_analyze` | Lighthouse scores & Core Web Vitals. |
|
|
155
172
|
| `schema_validate` | Validate Structured Data (JSON-LD). |
|
|
156
173
|
|
|
174
|
+
### Bing Webmaster Tools
|
|
175
|
+
| Tool | Description |
|
|
176
|
+
|------|-------------|
|
|
177
|
+
| `bing_sites_list` | List all verified sites in Bing. |
|
|
178
|
+
| `bing_analytics_query` | Query search performance from Bing. |
|
|
179
|
+
| `bing_opportunity_finder` | Find low-hanging fruit keywords on Bing. |
|
|
180
|
+
| `bing_seo_recommendations` | Get prioritized SEO insights for Bing. |
|
|
181
|
+
| `bing_url_info` | Detailed indexing and crawl info for a URL (Bing). |
|
|
182
|
+
| `bing_index_now` | **[NEW]** Instantly notify search engines of changes. |
|
|
183
|
+
| `bing_crawl_issues` | List crawl issues detected by Bing. |
|
|
184
|
+
| `bing_analytics_detect_anomalies` | Detect daily spikes or drops in Bing traffic. |
|
|
185
|
+
| `bing_analytics_time_series` | Advanced time series analysis for Bing. |
|
|
186
|
+
| `bing_sitemaps_list` / `bing_sitemaps_submit` | Manage sitemaps in Bing. |
|
|
187
|
+
|
|
157
188
|
|
|
158
189
|
|
|
159
190
|
## License
|
|
160
191
|
|
|
161
|
-
[MIT](LICENSE
|
|
192
|
+
[MIT](LICENSE)
|
|
162
193
|
[Contributing](CONTRIBUTING.md)
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
export class BingClient {
|
|
2
|
+
apiKey;
|
|
3
|
+
baseUrl = 'https://ssl.bing.com/webmaster/api.svc/json';
|
|
4
|
+
constructor(apiKey) {
|
|
5
|
+
this.apiKey = apiKey;
|
|
6
|
+
}
|
|
7
|
+
async request(method, params = {}, isPost = false) {
|
|
8
|
+
const url = new URL(`${this.baseUrl}/${method}`);
|
|
9
|
+
url.searchParams.append('apikey', this.apiKey);
|
|
10
|
+
const options = {
|
|
11
|
+
method: isPost ? 'POST' : 'GET',
|
|
12
|
+
headers: {
|
|
13
|
+
'Content-Type': 'application/json'
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
if (isPost) {
|
|
17
|
+
options.body = JSON.stringify(params);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
for (const [key, value] of Object.entries(params)) {
|
|
21
|
+
url.searchParams.append(key, String(value));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
const response = await fetch(url.toString(), options);
|
|
25
|
+
if (!response.ok) {
|
|
26
|
+
const error = await response.text();
|
|
27
|
+
throw new Error(`Bing API error (${method}): ${response.status} ${error}`);
|
|
28
|
+
}
|
|
29
|
+
const data = await response.json();
|
|
30
|
+
if (data && data.hasOwnProperty('d')) {
|
|
31
|
+
return data.d;
|
|
32
|
+
}
|
|
33
|
+
return data;
|
|
34
|
+
}
|
|
35
|
+
async getSiteList() {
|
|
36
|
+
return this.request('GetUserSites');
|
|
37
|
+
}
|
|
38
|
+
async getQueryStats(siteUrl) {
|
|
39
|
+
return this.request('GetQueryStats', { siteUrl }, true);
|
|
40
|
+
}
|
|
41
|
+
async getPageStats(siteUrl) {
|
|
42
|
+
return this.request('GetPageStats', { siteUrl }, true);
|
|
43
|
+
}
|
|
44
|
+
async getPageQueryStats(siteUrl, pageUrl) {
|
|
45
|
+
return this.request('GetPageQueryStats', { siteUrl, pageUrl }, true);
|
|
46
|
+
}
|
|
47
|
+
async submitSitemap(siteUrl, sitemapUrl) {
|
|
48
|
+
await this.request('SubmitSitemap', { siteUrl, sitemapUrl }, true);
|
|
49
|
+
}
|
|
50
|
+
async getSitemaps(siteUrl) {
|
|
51
|
+
return this.request('GetSitemaps', { siteUrl }, true);
|
|
52
|
+
}
|
|
53
|
+
async getKeywordStats(q, country, language) {
|
|
54
|
+
return this.request('GetKeywordStats', { q, country, language }, true);
|
|
55
|
+
}
|
|
56
|
+
async getCrawlIssues(siteUrl) {
|
|
57
|
+
return this.request('GetCrawlIssues', { siteUrl }, true);
|
|
58
|
+
}
|
|
59
|
+
async getUrlSubmissionQuota(siteUrl) {
|
|
60
|
+
return this.request('GetUrlSubmissionQuota', { siteUrl }, true);
|
|
61
|
+
}
|
|
62
|
+
async submitUrl(siteUrl, url) {
|
|
63
|
+
return this.request('SubmitUrl', { siteUrl, url }, true);
|
|
64
|
+
}
|
|
65
|
+
async submitUrlBatch(siteUrl, urlList) {
|
|
66
|
+
return this.request('SubmitUrlBatch', { siteUrl, urlList }, true);
|
|
67
|
+
}
|
|
68
|
+
async getQueryPageStats(siteUrl) {
|
|
69
|
+
return this.request('GetQueryPageStats', { siteUrl }, true);
|
|
70
|
+
}
|
|
71
|
+
async getRankAndTrafficStats(siteUrl) {
|
|
72
|
+
return this.request('GetRankAndTrafficStats', { siteUrl }, true);
|
|
73
|
+
}
|
|
74
|
+
async getCrawlStats(siteUrl) {
|
|
75
|
+
return this.request('GetCrawlStats', { siteUrl }, true);
|
|
76
|
+
}
|
|
77
|
+
async getUrlInfo(siteUrl, url) {
|
|
78
|
+
return this.request('GetUrlInfo', { siteUrl, url }, true);
|
|
79
|
+
}
|
|
80
|
+
async getLinkCounts(siteUrl) {
|
|
81
|
+
return this.request('GetLinkCounts', { siteUrl }, true);
|
|
82
|
+
}
|
|
83
|
+
async getRelatedKeywords(q, country, language) {
|
|
84
|
+
return this.request('GetRelatedKeywords', { q, country, language }, true);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
let cachedBingClient = null;
|
|
88
|
+
export async function getBingClient() {
|
|
89
|
+
if (cachedBingClient)
|
|
90
|
+
return cachedBingClient;
|
|
91
|
+
const apiKey = process.env.BING_API_KEY;
|
|
92
|
+
if (!apiKey) {
|
|
93
|
+
throw new Error('Bing API Key not found. Please set BING_API_KEY environment variable or run setup.');
|
|
94
|
+
}
|
|
95
|
+
cachedBingClient = new BingClient(apiKey);
|
|
96
|
+
return cachedBingClient;
|
|
97
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export const algorithmUpdatesDocs = `
|
|
2
|
+
# Bing Algorithm Updates & Volatility Reference
|
|
3
|
+
|
|
4
|
+
The \`bing_analytics_drop_attribution\` tool correlates traffic drops with major known Bing Algorithm Updates and periods of high ranking volatility. The following updates are currently tracked:
|
|
5
|
+
|
|
6
|
+
## 2025 (Projected)
|
|
7
|
+
|
|
8
|
+
| Date | Update Name | Impact Area |
|
|
9
|
+
|------|-------------|-------------|
|
|
10
|
+
| 2025-01-15 | Projected AI Relevance Update | AI Search / Relevance |
|
|
11
|
+
|
|
12
|
+
## 2024
|
|
13
|
+
|
|
14
|
+
| Date | Update Name | Impact Area |
|
|
15
|
+
|------|-------------|-------------|
|
|
16
|
+
| 2024-07-25 | Bing Generative Search (Beta) | SERP Layout / AI Summaries |
|
|
17
|
+
| 2024-05-29 | May 2024 Ranking Volatility | General Ranking |
|
|
18
|
+
| 2024-03-01 | Bing Deep Search Rollout | Complex Queries / Relevance |
|
|
19
|
+
|
|
20
|
+
## 2023
|
|
21
|
+
|
|
22
|
+
| Date | Update Name | Impact Area |
|
|
23
|
+
|------|-------------|-------------|
|
|
24
|
+
| 2023-05-04 | Bing Chat Open Preview | Conversational Search |
|
|
25
|
+
| 2023-02-07 | New Bing Preview (AI Chat) | AI Integration |
|
|
26
|
+
| 2023-01-18 | Bing AI Integration Update | Core Ranking / AI |
|
|
27
|
+
|
|
28
|
+
## How Attribution Works
|
|
29
|
+
When a traffic drop is detected, the system checks if it occurred within **+/- 2 days** of any of these dates. If it matches, the update is flagged as a potential primary cause of the drop.
|
|
30
|
+
`;
|
|
31
|
+
export default algorithmUpdatesDocs;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bing Webmaster Tools - Dimensions Reference
|
|
3
|
+
*
|
|
4
|
+
* This documentation is exposed as an MCP resource for AI agents.
|
|
5
|
+
*/
|
|
6
|
+
export const dimensionsDocs = `# Bing Webmaster Tools - Dimensions Reference
|
|
7
|
+
|
|
8
|
+
Unlike Google Search Console's single query endpoint, Bing Webmaster Tools API separates data into specific endpoints based on the primary dimension.
|
|
9
|
+
|
|
10
|
+
## Implicit Dimensions via Tools
|
|
11
|
+
|
|
12
|
+
| Tool | Primary Dimension | Secondary Dimensions |
|
|
13
|
+
|------|-------------------|----------------------|
|
|
14
|
+
| \`bing_analytics_query\` | **Query** | Date (implicit in daily options) |
|
|
15
|
+
| \`bing_analytics_page\` | **Page** | Date |
|
|
16
|
+
| \`bing_rank_traffic_stats\` | **Date** | None (Site level agg) |
|
|
17
|
+
| \`bing_keywords_stats\` | **Keyword** | Country, Language, Date |
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
### To Analyze Queries
|
|
22
|
+
Use \`bing_analytics_query\` or \`bing_get_top_queries\`. You cannot "group by page" here.
|
|
23
|
+
|
|
24
|
+
### To Analyze Pages
|
|
25
|
+
Use \`bing_analytics_page\` or \`bing_get_top_pages\`.
|
|
26
|
+
|
|
27
|
+
### To Analyze Date Trends
|
|
28
|
+
Use \`bing_rank_traffic_stats\` or the advanced \`bing_analytics_time_series\` tool.
|
|
29
|
+
|
|
30
|
+
### To Analyze Specific Page's Queries
|
|
31
|
+
Use \`bing_analytics_page_query\`:
|
|
32
|
+
\`\`\`json
|
|
33
|
+
{
|
|
34
|
+
"siteUrl": "https://example.com",
|
|
35
|
+
"pageUrl": "https://example.com/my-page"
|
|
36
|
+
}
|
|
37
|
+
\`\`\`
|
|
38
|
+
|
|
39
|
+
## Advanced Time Series Dimensions
|
|
40
|
+
The \`bing_analytics_time_series\` tool allows analyzing trends with granular data, primarily focused on **Date** as the dimension, but data is derived from the site-level rank and traffic stats.
|
|
41
|
+
`;
|
|
42
|
+
export default dimensionsDocs;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bing Webmaster Tools - Filters Reference
|
|
3
|
+
*
|
|
4
|
+
* This documentation is exposed as an MCP resource for AI agents.
|
|
5
|
+
*/
|
|
6
|
+
export const filtersDocs = `# Bing Webmaster Tools - Filters Reference
|
|
7
|
+
|
|
8
|
+
Filtering in Bing Webmaster Tools API is often done by selecting the specific tool or argument rather than a generic filter object.
|
|
9
|
+
|
|
10
|
+
## Tool-Specific Filtering
|
|
11
|
+
|
|
12
|
+
### Filter by Page
|
|
13
|
+
To get data for a specific page, use \`bing_analytics_page_query\` instead of a generic query tool.
|
|
14
|
+
\`\`\`json
|
|
15
|
+
{
|
|
16
|
+
"tool": "bing_analytics_page_query",
|
|
17
|
+
"siteUrl": "https://example.com",
|
|
18
|
+
"pageUrl": "https://example.com/specific-page"
|
|
19
|
+
}
|
|
20
|
+
\`\`\`
|
|
21
|
+
|
|
22
|
+
### Filter by Keyword/Query
|
|
23
|
+
To looks up a specific keyword's history, use \`bing_keywords_stats\`:
|
|
24
|
+
\`\`\`json
|
|
25
|
+
{
|
|
26
|
+
"tool": "bing_keywords_stats",
|
|
27
|
+
"q": "search term",
|
|
28
|
+
"country": "us",
|
|
29
|
+
"language": "en"
|
|
30
|
+
}
|
|
31
|
+
\`\`\`
|
|
32
|
+
|
|
33
|
+
## Advanced Analytics Filtering
|
|
34
|
+
|
|
35
|
+
The \`bing_analytics_time_series\` tool supports rudimentary client-side filtering on the returned dataset.
|
|
36
|
+
|
|
37
|
+
| Field | Operator | Description |
|
|
38
|
+
|-------|----------|-------------|
|
|
39
|
+
| \`dimension\` | \`equals\`, \`contains\` | limited support (mostly for future expansion) |
|
|
40
|
+
|
|
41
|
+
_Note: The Bing API limits server-side filtering compared to Google. Most specific analysis requires fetching the relevant dataset (Queries or Pages) and processing it._
|
|
42
|
+
`;
|
|
43
|
+
export default filtersDocs;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Documentation barrel export for Bing
|
|
3
|
+
*/
|
|
4
|
+
export { dimensionsDocs } from './dimensions.js';
|
|
5
|
+
export { filtersDocs } from './filters.js';
|
|
6
|
+
export { searchTypesDocs } from './search-types.js';
|
|
7
|
+
export { patternsDocs } from './patterns.js';
|
|
8
|
+
export { algorithmUpdatesDocs } from './algorithm-updates.js';
|
|
9
|
+
export const bingApiDocs = `
|
|
10
|
+
# Bing Webmaster Tools API Documentation
|
|
11
|
+
|
|
12
|
+
The Bing Webmaster Tools API allows you to manage your sites on Bing and get search performance data.
|
|
13
|
+
|
|
14
|
+
## Authentication
|
|
15
|
+
Authentication is handled via an **API Key**.
|
|
16
|
+
You can get your API key from the [Bing Webmaster Tools Settings](https://www.bing.com/webmasters/settings/api).
|
|
17
|
+
|
|
18
|
+
## Tools
|
|
19
|
+
|
|
20
|
+
### \`bing_sites_list\`
|
|
21
|
+
Lists all sites verified in your Bing account.
|
|
22
|
+
|
|
23
|
+
### \`bing_sites_health\`
|
|
24
|
+
Runs a multi-factor health check (performance, sitemaps, crawl issues) on your Bing sites.
|
|
25
|
+
|
|
26
|
+
### \`bing_analytics_query\` / \`bing_get_top_queries\`
|
|
27
|
+
Returns top search queries for a site.
|
|
28
|
+
|
|
29
|
+
### \`bing_analytics_page\` / \`bing_get_top_pages\`
|
|
30
|
+
Returns top performing pages for a site.
|
|
31
|
+
|
|
32
|
+
### \`bing_analytics_page_query\`
|
|
33
|
+
Returns query performance data for a specific page.
|
|
34
|
+
|
|
35
|
+
### \`bing_analytics_query_page\`
|
|
36
|
+
Returns combined query and page performance stats for a site.
|
|
37
|
+
|
|
38
|
+
### \`bing_rank_traffic_stats\`
|
|
39
|
+
Returns historical rank and traffic statistics for a site.
|
|
40
|
+
|
|
41
|
+
### \`bing_opportunity_finder\`
|
|
42
|
+
Identifies "low-hanging fruit" keywords on Bing (positions 5-20 with high potential).
|
|
43
|
+
|
|
44
|
+
### \`bing_seo_recommendations\`
|
|
45
|
+
Provides prioritized SEO insights (cannibalization, low CTR, new ranking opportunities) for Bing.
|
|
46
|
+
|
|
47
|
+
### \`bing_url_info\`
|
|
48
|
+
Get detailed indexing and crawl information for a URL in Bing. Similar to Google's URL Inspection.
|
|
49
|
+
|
|
50
|
+
### \`bing_link_counts\`
|
|
51
|
+
Returns inbound link counts for a site.
|
|
52
|
+
|
|
53
|
+
### \`bing_keywords_stats\`
|
|
54
|
+
Get historical stats for a keyword in Bing.
|
|
55
|
+
|
|
56
|
+
### \`bing_related_keywords\`
|
|
57
|
+
Get related keywords and search volume from Bing.
|
|
58
|
+
|
|
59
|
+
### \`bing_crawl_issues\`
|
|
60
|
+
Lists crawl issues detected by Bing for a site.
|
|
61
|
+
|
|
62
|
+
### \`bing_crawl_stats\`
|
|
63
|
+
Returns crawl statistics (indexed pages, crawled pages, errors) for a site.
|
|
64
|
+
|
|
65
|
+
### \`bing_url_submission_quota\`
|
|
66
|
+
Get your daily URL submission quota and remaining balance.
|
|
67
|
+
|
|
68
|
+
### \`bing_url_submit\`
|
|
69
|
+
Submit a single URL to Bing for faster indexing.
|
|
70
|
+
|
|
71
|
+
### \`bing_url_submit_batch\`
|
|
72
|
+
Submit up to 500 URLs in a single request.
|
|
73
|
+
|
|
74
|
+
### \`bing_sitemaps_list\`
|
|
75
|
+
Lists all sitemaps submitted for a specific site.
|
|
76
|
+
|
|
77
|
+
### \`bing_sitemaps_submit\`
|
|
78
|
+
Submits a new sitemap URL to Bing.
|
|
79
|
+
|
|
80
|
+
### \`bing_analytics_detect_anomalies\`
|
|
81
|
+
Detects sharp traffic drops or spikes in Bing performance data.
|
|
82
|
+
|
|
83
|
+
### \`bing_analytics_compare_periods\`
|
|
84
|
+
Compares Bing performance metrics between two date ranges (clicks, impressions, position).
|
|
85
|
+
|
|
86
|
+
### \`bing_analytics_drop_attribution\`
|
|
87
|
+
Analyzes traffic drops to attribute them to potential causes (device-specific issues, etc.).
|
|
88
|
+
|
|
89
|
+
### \`bing_analytics_time_series\`
|
|
90
|
+
Performs advanced time series analysis with smoothing and trend forecasting for Bing data.
|
|
91
|
+
|
|
92
|
+
`;
|
|
93
|
+
export const indexNowDocs = `
|
|
94
|
+
# IndexNow Documentation
|
|
95
|
+
|
|
96
|
+
IndexNow is a simple way for website owners to instantly inform search engines about recent content changes on their website.
|
|
97
|
+
|
|
98
|
+
## How it works
|
|
99
|
+
1. **Generate a Key**: Create a unique key (UUID) for your host.
|
|
100
|
+
2. **Host the Key**: Serve the key as a text file at the root of your host or a specific location.
|
|
101
|
+
3. **Submit URLs**: Use the \`bing_index_now\` tool to notify search engines of new, updated, or deleted URLs.
|
|
102
|
+
|
|
103
|
+
## Tool: \`bing_index_now\`
|
|
104
|
+
Arguments:
|
|
105
|
+
- \`host\`: The domain (e.g., \`www.example.com\`).
|
|
106
|
+
- \`key\`: Your generated IndexNow key.
|
|
107
|
+
- \`keyLocation\` (optional): The URL where the key is hosted if not at the root.
|
|
108
|
+
- \`urlList\`: An array of URLs that have changed.
|
|
109
|
+
|
|
110
|
+
For more information, visit [IndexNow.org](https://www.indexnow.org/).
|
|
111
|
+
`;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bing Webmaster Tools - Common Patterns & Recipes
|
|
3
|
+
*
|
|
4
|
+
* This documentation is exposed as an MCP resource for AI agents.
|
|
5
|
+
*/
|
|
6
|
+
export const patternsDocs = `# Bing Webmaster Tools - Common Patterns & Recipes
|
|
7
|
+
|
|
8
|
+
This guide shows common use cases and patterns for analyzing Bing Webmaster Tools data.
|
|
9
|
+
|
|
10
|
+
## Quick Reference
|
|
11
|
+
|
|
12
|
+
### Get Site Performance Overview
|
|
13
|
+
Use \`bing_rank_traffic_stats\` for high-level metrics (Clicks, Impressions, Position) over time:
|
|
14
|
+
\`\`\`
|
|
15
|
+
Tool: bing_rank_traffic_stats
|
|
16
|
+
Args: { "siteUrl": "https://example.com" }
|
|
17
|
+
\`\`\`
|
|
18
|
+
|
|
19
|
+
### Submit Content (IndexNow)
|
|
20
|
+
Instantly notify Bing of new content using IndexNow (preferred over sitemaps for speed):
|
|
21
|
+
\`\`\`
|
|
22
|
+
Tool: bing_index_now
|
|
23
|
+
Args: {
|
|
24
|
+
"host": "www.example.com",
|
|
25
|
+
"key": "YOUR_KEY",
|
|
26
|
+
"urlList": ["https://www.example.com/new-page"]
|
|
27
|
+
}
|
|
28
|
+
\`\`\`
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Content Analysis
|
|
33
|
+
|
|
34
|
+
### Top Performing Queries
|
|
35
|
+
\`\`\`json
|
|
36
|
+
{
|
|
37
|
+
"tool": "bing_analytics_query",
|
|
38
|
+
"siteUrl": "https://example.com"
|
|
39
|
+
}
|
|
40
|
+
\`\`\`
|
|
41
|
+
|
|
42
|
+
### Top Performing Pages
|
|
43
|
+
\`\`\`json
|
|
44
|
+
{
|
|
45
|
+
"tool": "bing_analytics_page",
|
|
46
|
+
"siteUrl": "https://example.com"
|
|
47
|
+
}
|
|
48
|
+
\`\`\`
|
|
49
|
+
|
|
50
|
+
### Deep Dive: Queries for a Specific Page
|
|
51
|
+
Find out what a specific page ranks for:
|
|
52
|
+
\`\`\`json
|
|
53
|
+
{
|
|
54
|
+
"tool": "bing_analytics_page_query",
|
|
55
|
+
"siteUrl": "https://example.com",
|
|
56
|
+
"pageUrl": "https://example.com/blog/my-post"
|
|
57
|
+
}
|
|
58
|
+
\`\`\`
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Diagnostics & Health
|
|
63
|
+
|
|
64
|
+
### Traffic Drop Analysis
|
|
65
|
+
If you see a sudden drop in traffic, use attribution to check for algorithm updates:
|
|
66
|
+
\`\`\`json
|
|
67
|
+
{
|
|
68
|
+
"tool": "bing_analytics_drop_attribution",
|
|
69
|
+
"siteUrl": "https://example.com",
|
|
70
|
+
"days": 30
|
|
71
|
+
}
|
|
72
|
+
\`\`\`
|
|
73
|
+
|
|
74
|
+
### Check URL Indexing Status
|
|
75
|
+
Verify if a URL is indexed and see crawl issues:
|
|
76
|
+
\`\`\`json
|
|
77
|
+
{
|
|
78
|
+
"tool": "bing_url_info",
|
|
79
|
+
"siteUrl": "https://example.com",
|
|
80
|
+
"url": "https://example.com/troublesome-page"
|
|
81
|
+
}
|
|
82
|
+
\`\`\`
|
|
83
|
+
|
|
84
|
+
### List Crawl Issues
|
|
85
|
+
\`\`\`json
|
|
86
|
+
{
|
|
87
|
+
"tool": "bing_crawl_issues",
|
|
88
|
+
"siteUrl": "https://example.com"
|
|
89
|
+
}
|
|
90
|
+
\`\`\`
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Advanced Time Series
|
|
95
|
+
|
|
96
|
+
### Forecasting Traffic
|
|
97
|
+
Predict future clicks based on historical trends:
|
|
98
|
+
\`\`\`json
|
|
99
|
+
{
|
|
100
|
+
"tool": "bing_analytics_time_series",
|
|
101
|
+
"siteUrl": "https://example.com",
|
|
102
|
+
"days": 90,
|
|
103
|
+
"forecastDays": 30,
|
|
104
|
+
"granularity": "weekly"
|
|
105
|
+
}
|
|
106
|
+
\`\`\`
|
|
107
|
+
`;
|
|
108
|
+
export default patternsDocs;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bing Webmaster Tools - Search Types Reference
|
|
3
|
+
*
|
|
4
|
+
* This documentation is exposed as an MCP resource for AI agents.
|
|
5
|
+
*/
|
|
6
|
+
export const searchTypesDocs = `# Bing Webmaster Tools - Search Types Reference
|
|
7
|
+
|
|
8
|
+
Bing Webmaster Tools API primarily provides data for **Web** search.
|
|
9
|
+
|
|
10
|
+
## Unified Data
|
|
11
|
+
Unlike Google Search Console which explicitly separates "Web", "Image", "Video", and "News" into distinct search types for every query, Bing's standard performance APIs (\`GetQueryStats\`, \`GetPageStats\`) return unified performance data.
|
|
12
|
+
|
|
13
|
+
## Keyword Research Types
|
|
14
|
+
When using \`bing_keywords_stats\`, you can filter by:
|
|
15
|
+
- **Country**: (e.g., 'us', 'gb', 'in')
|
|
16
|
+
- **Language**: (e.g., 'en-US', 'en-GB')
|
|
17
|
+
|
|
18
|
+
## Future Support
|
|
19
|
+
If Bing APIs expose explicit filtering for Image/Video verticals in the future, this documentation will be updated to reflect those capabilities.
|
|
20
|
+
`;
|
|
21
|
+
export default searchTypesDocs;
|