> ## Documentation Index
> Fetch the complete documentation index at: https://docs.crakseo.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> For SEO data and indexing, start with /seo-mcp/overview.md and /seo-mcp/connect.md, then read the focused server reference.
> The documentation search MCP at https://docs.crakseo.com/mcp searches documentation only. Product tools use https://crakseo.com/mcp/<server>.
> Check tool availability and API credit balance before paid calls. Request owner approval for paid indexing. Never invent prices, indexing guarantees or directory approval.

# Google Search Console MCP + Bing Webmaster Tools

> Free Google Search Console MCP + Bing Webmaster Tools: queries, URL inspection, sitemaps.

Free access to your own Google Search Console and Bing Webmaster Tools data: clicks, impressions, queries and pages, URL inspection, sitemap listing and submission, and Bing query, page and traffic stats, crawl issues and URL submission quota.

| | |
| - | - |
| Endpoint | `https://crakseo.com/mcp/search-console` |
| Intended registry name | `com.crakseo/search-console` |
| Transport | Streamable HTTP |
| Sign-in | OAuth, or an API key as a bearer token |
| Scopes | `console:read`, `console:write` |
| Billing | Free |

## When to use

Use for your own verified sites: reporting, finding queries to improve, checking why a page isn't indexed and submitting sitemaps.

## Connect

```bash Claude Code theme={null}
claude mcp add --transport http crakseo-search-console https://crakseo.com/mcp/search-console
```

Use `crakseo-search-console` as the server name and `https://crakseo.com/mcp/search-console` as the URL. Run `/mcp` in Claude Code to authenticate. For OAuth, scoped API keys and a free test, follow [Connect and test](https://docs.crakseo.com/seo-mcp/connect.md).

Other clients: [ChatGPT](https://docs.crakseo.com/quickstarts/chatgpt.md), [Cursor](https://docs.crakseo.com/quickstarts/cursor.md), [Codex](https://docs.crakseo.com/quickstarts/codex.md), [VS Code](https://docs.crakseo.com/quickstarts/vscode.md), [Cline](https://docs.crakseo.com/quickstarts/cline.md), [Gemini CLI](https://docs.crakseo.com/quickstarts/gemini-cli.md), [Grok](https://docs.crakseo.com/quickstarts/grok.md) and [Muse](https://docs.crakseo.com/quickstarts/muse.md).

A remote connection does not require a marketplace listing. Registry names are distribution identifiers, not a claim of directory approval.

## Verify without spending

```text theme={null}
Use CrakSEO list_search_console_properties to show my connected properties. If the account is not connected, show me the connection link. Do not submit URLs or change sitemaps.
```

## Tools

| Tool | What it does | Price per call |
| - | - | - |
| `list_search_console_properties` | List Search Console and Bing sites | Free |
| `get_search_console_performance` | Google Search Console performance | Free |
| `inspect_url_in_google` | Inspect a URL in Google Search Console | Free |
| `list_sitemaps` | List Search Console sitemaps | Free |
| `submit_sitemap` | Submit a sitemap to Google and Bing | Free |
| `get_bing_webmaster_stats` | Bing Webmaster Tools stats | Free |
| `get_bing_crawl_issues` | Bing crawl issues | Free |
| `get_bing_url_submission_quota` | Bing URL submission quota | Free |

> [!NOTE]
>
> Tool names, titles and parameters on this page match the server's `tools/list` response, which stays authoritative. Example values are placeholders, not real measurements. Prices marked TBD are set at launch on [API credits](https://docs.crakseo.com/pricing/api-credits.md).

### `list_search_console_properties`

**List Search Console and Bing sites.** List Search Console properties connected to this account and the sites in Bing Webmaster Tools, with links to connect either one. Use the returned property names in the other tools.

* Price per call: Free
* Annotations: read-only, idempotent

| Parameter | Type | Required | Description |
| - | - | - | - |

```json Request theme={null}
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_search_console_properties",
    "arguments": {}
  }
}
```

```json structuredContent theme={null}
{
  "google": [
    {
      "property": "sc-domain:example.com",
      "project": "Example"
    }
  ],
  "bing": {
    "connected": true,
    "sites": [
      {
        "url": "https://example.com/",
        "verified": true
      }
    ]
  },
  "connect": {
    "google": "https://crakseo.com/app/connections/google",
    "bing": "https://crakseo.com/app/connections/bing"
  }
}
```

### `get_search_console_performance`

**Google Search Console performance.** Google Search Console performance: clicks, impressions, CTR and average position by query, page or date for a date range, with optional query or page filters. Data lags about two days. Free.

* Price per call: Free
* Annotations: read-only, idempotent
* Limits: Uses your own Search Console data through Google's API and its quotas.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `property` | `string` | No | Search Console property exactly as listed by list\_search\_console\_properties, for example sc-domain:example.com or [https://example.com/](https://example.com/). Optional when the account has one property. |
| `startDate` | `string` | No | First day, YYYY-MM-DD. Default 28 days before endDate. |
| `endDate` | `string` | No | Last day, YYYY-MM-DD. Default two days ago. |
| `dimensions` | `("query" \| "page" \| "date")[]` | No | How to group rows: query, page and/or date. Default `["query"]`. |
| `queryContains` | `string` | No | Only rows whose query contains this text. |
| `pageContains` | `string` | No | Only rows whose page URL contains this text. |
| `rowLimit` | `integer` | No | Most rows to return, 1 to 1000. Default `100`. |

```json Request theme={null}
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_search_console_performance",
    "arguments": {
      "property": "sc-domain:example.com",
      "startDate": "2026-09-24",
      "endDate": "2026-10-21",
      "dimensions": [
        "query"
      ],
      "rowLimit": 1
    }
  }
}
```

```json structuredContent theme={null}
{
  "property": "sc-domain:example.com",
  "startDate": "2026-09-24",
  "endDate": "2026-10-21",
  "totals": {
    "clicks": 0,
    "impressions": 0
  },
  "rows": [
    {
      "keys": {
        "query": "example query"
      },
      "clicks": 0,
      "impressions": 0,
      "ctr": 0,
      "position": 0
    }
  ]
}
```

### `inspect_url_in_google`

**Inspect a URL in Google Search Console.** Inspect URL in Google: Search Console's URL inspection for one page: whether it is indexed, coverage state, robots.txt and fetch status, and last crawl time. Google allows 2,000 inspections a day per property. Free.

* Price per call: Free
* Annotations: read-only, idempotent
* Limits: Google allows 2,000 inspections per day and 600 per minute per property.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `url` | `string` | Yes | Page URL inside a connected Search Console property. |

```json Request theme={null}
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "inspect_url_in_google",
    "arguments": {
      "url": "https://example.com/new-post/"
    }
  }
}
```

```json structuredContent theme={null}
{
  "url": "https://example.com/new-post/",
  "property": "sc-domain:example.com",
  "indexed": false,
  "verdict": "NEUTRAL",
  "coverageState": "Discovered - currently not indexed",
  "indexingState": "INDEXING_ALLOWED",
  "robotsTxtState": "ALLOWED",
  "pageFetchState": null,
  "lastCrawlTime": null
}
```

### `list_sitemaps`

**List Search Console sitemaps.** List sitemaps submitted to Google Search Console for a property, with last submitted and downloaded times, pending state, warnings, errors and submitted URL counts. Free.

* Price per call: Free
* Annotations: read-only, idempotent

| Parameter | Type | Required | Description |
| - | - | - | - |
| `property` | `string` | No | Search Console property exactly as listed by list\_search\_console\_properties, for example sc-domain:example.com or [https://example.com/](https://example.com/). Optional when the account has one property. |

```json Request theme={null}
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_sitemaps",
    "arguments": {
      "property": "sc-domain:example.com"
    }
  }
}
```

```json structuredContent theme={null}
{
  "property": "sc-domain:example.com",
  "sitemaps": [
    {
      "path": "https://example.com/sitemap.xml",
      "lastSubmitted": "2026-10-01T00:00:00Z",
      "lastDownloaded": "2026-10-20T00:00:00Z",
      "isPending": false,
      "warnings": 0,
      "errors": 0,
      "submittedUrls": 0
    }
  ]
}
```

### `submit_sitemap`

**Submit a sitemap to Google and Bing.** Submit sitemap to Google Search Console and Bing Webmaster Tools so both engines recrawl your pages. Resubmitting the same sitemap is safe. Free.

* Price per call: Free
* Annotations: writes, idempotent

| Parameter | Type | Required | Description |
| - | - | - | - |
| `sitemapUrl` | `string` | Yes | Absolute URL of the XML sitemap or sitemap index. |
| `engines` | `("google" \| "bing")[]` | No | Where to submit: google (Search Console), bing (Bing Webmaster Tools) or both. Default `["google","bing"]`. |
| `bingSiteUrl` | `string` | No | Bing site URL when it differs from the sitemap's origin plus a trailing slash. |

```json Request theme={null}
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "submit_sitemap",
    "arguments": {
      "sitemapUrl": "https://example.com/sitemap.xml"
    }
  }
}
```

```json structuredContent theme={null}
{
  "sitemapUrl": "https://example.com/sitemap.xml",
  "results": [
    {
      "engine": "google",
      "ok": true,
      "detail": "Submitted to sc-domain:example.com."
    },
    {
      "engine": "bing",
      "ok": true,
      "detail": "Submitted to https://example.com/."
    }
  ]
}
```

### `get_bing_webmaster_stats`

**Bing Webmaster Tools stats.** Bing Webmaster stats: Bing search queries, pages, or daily traffic for a site, with impressions, clicks and average positions. Bing also powers DuckDuckGo results. Free.

* Price per call: Free
* Annotations: read-only, idempotent
* Limits: Uses your own Bing Webmaster Tools data and its quotas.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `siteUrl` | `string` | Yes | Site URL exactly as registered in Bing Webmaster Tools, for example [https://example.com/](https://example.com/). |
| `report` | `"queries" \| "pages" \| "traffic"` | No | queries (per search query), pages (per page) or traffic (per day). Default `queries`. |
| `limit` | `integer` | No | Most rows to return, 1 to 500. Default `100`. |

```json Request theme={null}
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_bing_webmaster_stats",
    "arguments": {
      "siteUrl": "https://example.com/",
      "report": "queries",
      "limit": 1
    }
  }
}
```

```json structuredContent theme={null}
{
  "siteUrl": "https://example.com/",
  "report": "queries",
  "rows": [
    {
      "query": "example query",
      "date": "2026-10-20",
      "impressions": 0,
      "clicks": 0,
      "avgImpressionPosition": 0,
      "avgClickPosition": null
    }
  ]
}
```

### `get_bing_crawl_issues`

**Bing crawl issues.** Bing crawl issues: URLs Bing could not crawl properly for a site, with the issue type, HTTP code and inbound link count. Free.

* Price per call: Free
* Annotations: read-only, idempotent

| Parameter | Type | Required | Description |
| - | - | - | - |
| `siteUrl` | `string` | Yes | Site URL exactly as registered in Bing Webmaster Tools, for example [https://example.com/](https://example.com/). |
| `limit` | `integer` | No | Most rows to return, 1 to 500. Default `100`. |

```json Request theme={null}
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_bing_crawl_issues",
    "arguments": {
      "siteUrl": "https://example.com/",
      "limit": 1
    }
  }
}
```

```json structuredContent theme={null}
{
  "siteUrl": "https://example.com/",
  "issues": [
    {
      "url": "https://example.com/old-page",
      "issues": 0,
      "httpCode": 404,
      "inLinks": 0
    }
  ]
}
```

### `get_bing_url_submission_quota`

**Bing URL submission quota.** Bing URL submission quota: how many URLs this site can still submit to Bing today and this month through Bing Webmaster Tools. Free.

* Price per call: Free
* Annotations: read-only, idempotent

| Parameter | Type | Required | Description |
| - | - | - | - |
| `siteUrl` | `string` | Yes | Site URL exactly as registered in Bing Webmaster Tools, for example [https://example.com/](https://example.com/). |

```json Request theme={null}
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_bing_url_submission_quota",
    "arguments": {
      "siteUrl": "https://example.com/"
    }
  }
}
```

```json structuredContent theme={null}
{
  "siteUrl": "https://example.com/",
  "daily": 0,
  "monthly": 0
}
```

## Errors

| Code | Meaning | What to do |
| - | - | - |
| `insufficient_credits` | The API credits wallet can't cover the call's maximum price. | Add credits at [https://crakseo.com/app/indexing/credits](https://crakseo.com/app/indexing/credits), then retry the same call. The failed call isn't charged. |
| `forbidden` | The connection doesn't have the scope this tool needs, for example `seo-data:read` or `console:write`. | Reconnect and grant the scope named in the message, or use an API key that has it. |
| `not_connected` | Google Search Console or Bing Webmaster Tools isn't connected, or no connected property covers the URL. | Open the connect link in the message and sign in with the account that owns the property. |
| `invalid_input` | A parameter is missing or out of range. | Read the message, which names the field, fix the argument and retry. |
| `confirmation_required` | A paid indexing submission doesn't have the account owner's approval for this exact quote. | `submit_indexing_urls` returns `status: "needs_confirmation"` with a `confirmationUrl`. Send the owner there to approve, then retry with the same `quoteId` and `idempotencyKey`. The agent can't approve spend. |
| `wallet_frozen` | API credit spending is suspended on this account after a refund or dispute. | Contact [support@crakseo.com](mailto:support@crakseo.com). |
| `budget_exceeded` | The account's daily API credit spending limit, or the service's daily data budget, is used up. | Retry tomorrow. |
| `disabled` | SEO data calls aren't switched on for this deployment yet. | Use the free Search Console and URL indexing tools meanwhile. `get_api_credit_balance` reports `dataCallsEnabled`. |
| `supplier_unavailable` | The data supplier couldn't be reached or is rate limiting. | Retry later. Failed data calls are free. |
| `supplier_unknown` | The data supplier didn't answer in time or sent an unreadable response. | Retry later. Failed data calls are free. |
| `supplier_error` | The data supplier refused the request or returned no data. | Check the arguments (for example the location name) and retry. Failed data calls are free. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.