Dokumentasi MCP

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

Server MCP tersedia di:

https://api.better-search-console.com/_mcp

Autentikasi

Tiga metode didukung (dalam urutan prioritas):

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

Temukan token API Anda di Pengaturan. Token berupa string hex 64 karakter.

Alur OAuth

Untuk klien yang mendukung OAuth, endpoint MCP juga menerima token Bearer OAuth 2.0 standar yang diperoleh melalui alur Google OAuth. Token akses yang dikembalikan setelah pengguna mengotorisasi disimpan di catatan pengguna dan dapat digunakan sebagai token Bearer.

Instruksi Pengaturan

Claude.ai (Web)

{
  "mcpServers": {
    "better-search-console": {
      "url": "https://api.better-search-console.com/_mcp?token=<YOUR_API_TOKEN>"
    }
  }
}

Claude Desktop

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

Cursor

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

Batas Laju

TingkatPermintaan/menitPermintaan/hari
Free1050
Starter100200
Pro200500
MasterUnlimitedUnlimited

Tool Reference (50 tools)

list-websites

List all websites owned by the authenticated user.

Tidak ada parameter yang diperlukan.

get-website

Get detailed information about a specific website.

Parameter:

  • website_id
update-website

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

Parameter:

  • 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.

Parameter:

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

Delete a single URL from a website.

Parameter:

  • url_id
delete-urls-bulk

Delete multiple URLs from a website in bulk.

Parameter:

  • website_id
  • urls
get-url-stats

Get URL statistics grouped by coverage state.

Parameter:

  • website_id
get-indexation-queue-status

Get the current indexation queue status for a website.

Parameter:

  • website_id
list-sitemaps

List all sitemaps for a website.

Parameter:

  • website_id
add-sitemap

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

Parameter:

  • website_id
  • sitemap_url
process-sitemap

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

Parameter:

  • sitemap_id
process-all-sitemaps

Process all sitemaps for a website.

Parameter:

  • website_id
delete-sitemap

Delete a sitemap and optionally its associated URLs.

Parameter:

  • sitemap_id
queue-google

Queue a URL for Google indexation.

Parameter:

  • url
queue-bing

Queue a URL for Bing indexation.

Parameter:

  • url
queue-bulk

Queue multiple URLs for Google and/or Bing indexation.

Parameter:

  • website_id
  • urls
  • google
  • bing
refresh-bing-crawl-info

Ask Bing what its crawler knows about a website's URLs (discovery date, last crawl, document size) and store it. This is not the same as bing_status, which reports whether a URL appears in Bing search results. Paced at about one URL per second and skips readings taken in the last week.

Parameter:

  • website_id
  • limit
check-indexation

Queue a URL for indexation status check.

Parameter:

  • url
check-indexation-bulk

Queue multiple URLs for indexation status check.

Parameter:

  • website_id
  • urls
disable-indexation-bulk

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

Parameter:

  • website_id
  • urls
reenable-indexation-bulk

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

Parameter:

  • website_id
  • urls
update-coverage-state

Manually update the coverage state of a URL.

Parameter:

  • url
  • state
plan-indexation

Rank URLs by how much a Google indexation request would help, and report which ones cannot be helped and why. Read-only: it spends no quota and queues nothing. Use it to decide what to submit before calling queue-google or queue-bulk.

Parameter:

  • website_id
  • budget
get-search-analytics

Get Search Console analytics data with flexible dimensions.

Parameter:

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

Get top search queries for a website.

Parameter:

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

Get top pages by search performance.

Parameter:

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

Get search performance breakdown by device type.

Parameter:

  • website_id
  • start_date
  • end_date
get-country-breakdown

Get search performance breakdown by country.

Parameter:

  • website_id
  • start_date
  • end_date
  • limit
compare-periods

Compare search analytics between two time periods with deltas.

Parameter:

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

List all prompt analyses for a website.

Parameter:

  • website_id
create-prompt-analysis

Create a new prompt analysis entry.

Parameter:

  • website_id
  • prompt
  • models
  • targeted_keywords
update-keywords

Update targeted keywords for a prompt analysis.

Parameter:

  • analysis_id
  • targeted_keywords
get-prompt-analysis-results

Get detailed results and keyword statistics for a prompt analysis.

Parameter:

  • analysis_id
create-dashboard

Create a custom dashboard (max 3 per website).

Parameter:

  • website_id
  • name
  • is_default
update-dashboard

Update a custom dashboard name or default status.

Parameter:

  • dashboard_id
  • name
  • is_default
delete-dashboard

Delete a custom dashboard and its widgets.

Parameter:

  • dashboard_id
save-dashboard-widgets

Replace all widgets on a dashboard.

Parameter:

  • dashboard_id
  • widgets
list-saved-filters

List saved URL filters for a website.

Parameter:

  • website_id
create-saved-filter

Create a saved URL filter.

Parameter:

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

Delete a saved filter.

Parameter:

  • filter_id
generate-report

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

Parameter:

  • website_id
  • start_date
  • end_date
get-report-branding

Get report branding settings for a website.

Parameter:

  • website_id
update-report-branding

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

Parameter:

  • 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).

Parameter:

  • url
analyze-keyword-density

Analyze keyword density in a text.

Parameter:

  • text
  • keywords
check-url-structure

Check URL structure for SEO issues and return a score.

Parameter:

  • url
analyze-readability

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

Parameter:

  • text
generate-sitemap

Crawl a website and generate a sitemap XML file.

Parameter:

  • website_url
  • max_urls
generate-robots

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

Parameter:

  • user_agents
  • sitemaps
get-profile

Get the authenticated user profile and subscription info.

Tidak ada parameter yang diperlukan.

Contoh Penggunaan

Daftarkan situs web Anda:

Tool: list-websites
Arguments: {}

Periksa indeksasi untuk URL:

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

Kirim URL untuk indeksasi:

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

Pemecahan Masalah

MasalahSolusi
401 UnauthorizedPeriksa token API Anda sudah benar dan disertakan dalam permintaan.
429 Too Many RequestsAnda telah melampaui batas laju. Tunggu atau tingkatkan paket Anda.
Alat tidak ditemukanPastikan nama alat cocok persis dengan referensi di atas.
Koneksi ditolakPastikan URL host sudah benar dan dapat diakses dari jaringan Anda.
Parameter tidak validPeriksa parameter wajib sesuai skema. ID harus berupa angka.