MCP Documentation

The Model Context Protocol (MCP) allows AI assistants like Claude, GPT, and Cursor to interact directly with your Better Search Console data. Your assistant can list websites, check indexation status, analyze prompts, manage sitemaps, and much more — all through a standardized tool-calling interface.

Endpoint

The MCP server is available at:

https://<your-host>/_mcp

Authentication

Three methods are supported (in priority order):

MethodExample
X-API-TOKEN headerX-API-TOKEN: your_token_here
Authorization: Bearer headerAuthorization: Bearer your_token_here
?token= query parameter/_mcp?token=your_token_here

Find your API token in Settings. It is a 64-character hex string.

OAuth Flow

For clients that support OAuth, the MCP endpoint also accepts standard OAuth 2.0 Bearer tokens obtained via the Google OAuth flow. The access token returned after the user authorizes is stored on the user record and can be used as a Bearer token.

Setup Instructions

Claude.ai (Web)

{
  "mcpServers": {
    "better-search-console": {
      "url": "https://<your-host>/_mcp?token=<YOUR_API_TOKEN>"
    }
  }
}

Claude Desktop

{
  "mcpServers": {
    "better-search-console": {
      "url": "https://<your-host>/_mcp",
      "headers": {
        "X-API-TOKEN": "<YOUR_API_TOKEN>"
      }
    }
  }
}

Cursor

{
  "mcpServers": {
    "better-search-console": {
      "url": "https://<your-host>/_mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_API_TOKEN>"
      }
    }
  }
}

Rate Limits

TierRequests/minRequests/day
Free1050
Starter100200
Pro200500
MasterUnlimitedUnlimited

Tool Reference (48 tools)

list-websites

List all websites owned by the authenticated user.

No parameters required.

get-website

Get detailed information about a specific website.

Parameters:

  • website_id
update-website

Update website settings (name, description, category, auto flags).

Parameters:

  • website_id
  • name
  • description
  • category
  • auto_indexing
  • auto_sitemap_refresh
  • auto_update_status
list-urls

List URLs for a website with optional filters and pagination.

Parameters:

  • website_id
  • coverage_state
  • url_contains
  • indexing_state
  • page
  • limit
delete-url

Delete a single URL from a website.

Parameters:

  • url_id
delete-urls-bulk

Delete multiple URLs from a website in bulk.

Parameters:

  • website_id
  • urls
get-url-stats

Get URL statistics grouped by coverage state.

Parameters:

  • website_id
get-indexation-queue-status

Get the current indexation queue status for a website.

Parameters:

  • website_id
list-sitemaps

List all sitemaps for a website.

Parameters:

  • website_id
add-sitemap

Add a sitemap URL to a website (validates domain and reachability).

Parameters:

  • website_id
  • sitemap_url
process-sitemap

Fetch and parse a sitemap, importing discovered URLs into the database.

Parameters:

  • sitemap_id
process-all-sitemaps

Process all sitemaps for a website.

Parameters:

  • website_id
delete-sitemap

Delete a sitemap and optionally its associated URLs.

Parameters:

  • sitemap_id
queue-google

Queue a URL for Google indexation.

Parameters:

  • url
queue-bing

Queue a URL for Bing indexation.

Parameters:

  • url
queue-bulk

Queue multiple URLs for Google and/or Bing indexation.

Parameters:

  • website_id
  • urls
  • google
  • bing
check-indexation

Queue a URL for indexation status check.

Parameters:

  • url
check-indexation-bulk

Queue multiple URLs for indexation status check.

Parameters:

  • website_id
  • urls
disable-indexation-bulk

Disable indexation for multiple URLs (sets mustBeIndexed to false).

Parameters:

  • website_id
  • urls
reenable-indexation-bulk

Re-enable indexation for multiple URLs (sets mustBeIndexed to true).

Parameters:

  • website_id
  • urls
update-coverage-state

Manually update the coverage state of a URL.

Parameters:

  • url
  • state
get-search-analytics

Get Search Console analytics data with flexible dimensions.

Parameters:

  • website_id
  • start_date
  • end_date
  • dimensions
  • row_limit
get-top-queries

Get top search queries for a website.

Parameters:

  • website_id
  • start_date
  • end_date
  • limit
get-top-pages

Get top pages by search performance.

Parameters:

  • website_id
  • start_date
  • end_date
  • limit
get-device-breakdown

Get search performance breakdown by device type.

Parameters:

  • website_id
  • start_date
  • end_date
get-country-breakdown

Get search performance breakdown by country.

Parameters:

  • website_id
  • start_date
  • end_date
  • limit
compare-periods

Compare search analytics between two time periods with deltas.

Parameters:

  • website_id
  • period1_start
  • period1_end
  • period2_start
  • period2_end
  • dimensions
list-prompt-analyses

List all prompt analyses for a website.

Parameters:

  • website_id
create-prompt-analysis

Create a new prompt analysis entry.

Parameters:

  • website_id
  • prompt
  • models
  • targeted_keywords
update-keywords

Update targeted keywords for a prompt analysis.

Parameters:

  • analysis_id
  • targeted_keywords
get-prompt-analysis-results

Get detailed results and keyword statistics for a prompt analysis.

Parameters:

  • analysis_id
create-dashboard

Create a custom dashboard (max 3 per website).

Parameters:

  • website_id
  • name
  • is_default
update-dashboard

Update a custom dashboard name or default status.

Parameters:

  • dashboard_id
  • name
  • is_default
delete-dashboard

Delete a custom dashboard and its widgets.

Parameters:

  • dashboard_id
save-dashboard-widgets

Replace all widgets on a dashboard.

Parameters:

  • dashboard_id
  • widgets
list-saved-filters

List saved URL filters for a website.

Parameters:

  • website_id
create-saved-filter

Create a saved URL filter.

Parameters:

  • website_id
  • name
  • search
  • sitemap
  • indexation
delete-saved-filter

Delete a saved filter.

Parameters:

  • filter_id
generate-report

Generate a PDF report for a website (requires pro/master subscription).

Parameters:

  • website_id
  • start_date
  • end_date
get-report-branding

Get report branding settings for a website.

Parameters:

  • website_id
update-report-branding

Update report branding settings (company name, colors, footer).

Parameters:

  • website_id
  • company_name
  • primary_color
  • accent_color
  • footer_text
analyze-meta-tags

Fetch a URL and extract SEO meta tags (title, description, OG, robots, h1s).

Parameters:

  • url
analyze-keyword-density

Analyze keyword density in a text.

Parameters:

  • text
  • keywords
check-url-structure

Check URL structure for SEO issues and return a score.

Parameters:

  • url
analyze-readability

Analyze text readability using Flesch Reading Ease and Flesch-Kincaid grade.

Parameters:

  • text
generate-sitemap

Crawl a website and generate a sitemap XML file.

Parameters:

  • website_url
  • max_urls
generate-robots

Generate a robots.txt from a configuration of user agents and sitemaps.

Parameters:

  • user_agents
  • sitemaps
get-profile

Get the authenticated user profile and subscription info.

No parameters required.

Usage Examples

List your websites:

Tool: list-websites
Arguments: {}

Check indexation for a URL:

Tool: check-url-indexation
Arguments: { "website_id": 1, "url": "https://example.com/page" }

Submit URLs for indexing:

Tool: submit-urls-for-indexing
Arguments: { "website_id": 1, "url_ids": [10, 11, 12] }

Troubleshooting

IssueSolution
401 UnauthorizedCheck your API token is correct and included in the request.
429 Too Many RequestsYou have exceeded your rate limit. Wait or upgrade your plan.
Tool not foundVerify the tool name matches the reference above exactly.
Connection refusedEnsure the host URL is correct and accessible from your network.
Invalid parametersCheck required parameters match the schema. IDs must be numbers.