mcpField
G
GSC & Bing Webmaster MCP — No API Keys for Google

GSC & Bing Webmaster MCP — No API Keys for Google

Local
github.com/codermillatSearch0Updated 36w ago

About GSC & Bing Webmaster MCP — No API Keys for Google

gsc-bing-mcp is an MCP server for SEO professionals and site owners to query Google Search Console and Bing Webmaster Tools. It reads Google session cookies from a supported browser, while Bing access uses an API key.

Key features

  1. 01Google search performance and query data
  2. 02Index coverage and sitemap status
  3. 03Bing crawl, page, and keyword statistics
  4. 04Submit URLs to Bing for indexing
  5. 05Read Google session cookies from browser

Use cases

  1. 01Review clicks, impressions, and search positions
  2. 02Identify indexing and sitemap issues
  3. 03Inspect Bing crawl errors and URL status
  4. 04Submit one or more pages to Bing

MCP support

Exposes 23 tools to MCP clients for Google Search Console and Bing Webmaster Tools. Google access uses browser session cookies; Bing tools require a Bing API key.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"gsc-bing": {
"command": "uvx",
"args": [
"gsc-bing-mcp"
],
"env": {
"BING_API_KEY": "<BING_API_KEY>"
}
}
}
}
Run commanduvx gsc-bing-mcp
Environment variables to set
BING_API_KEYSecret

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypigsc-bing-mcp

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

gsc-bing-mcp

An MCP (Model Context Protocol) server that gives AI agents (Claude, Cline) direct access to your Google Search Console and Bing Webmaster Tools search performance data.

Zero API keys for Google — uses your existing Chrome browser session.
30-second setup for Bing — just copy one free key from your dashboard.

v0.2.1 — 23 tools total (11 GSC + 11 Bing + 1 utility)


✨ Features

Google Search Console Tools (11)
ToolDescription
gsc_list_sitesList all verified GSC properties
gsc_performance_trendDaily clicks, impressions, CTR, position trend
gsc_top_queriesTop search queries by clicks
gsc_top_pagesTop landing pages by clicks
gsc_search_analyticsAnalytics grouped by query, page, country, or device
gsc_site_summaryCoverage & indexing summary
gsc_list_sitemapsSubmitted sitemaps with status and error counts
gsc_insightsSearch Console notifications and callouts
gsc_all_queriesAll queries from performance page HTML (bypasses pagination)
gsc_index_coverageDetailed index coverage statistics
gsc_query_pagesQuery-to-page correlation data
Bing Webmaster Tools (11)
ToolDescription
bing_list_sitesList all Bing Webmaster properties
bing_search_analyticsDaily impressions, clicks, and position
bing_keyword_statsTop keywords by clicks
bing_crawl_statsCrawl statistics, errors, and blocked URLs
bing_url_infoCrawl date, HTTP status, and indexing info for a URL
bing_page_statsTop pages with impressions and clicks
bing_submit_urlSubmit a single URL to Bing for indexing
bing_submit_url_batchSubmit multiple URLs to Bing in one batch
bing_crawl_issuesCrawl errors and issues Bing encountered
bing_url_submission_quotaRemaining daily URL submission quota
bing_link_countsInbound link counts discovered by Bing
Utility (1)
ToolDescription
refresh_google_sessionForce-refresh cached Chrome cookies

🔐 How Authentication Works

Google Search Console — Zero Setup

This server reads your Chrome browser's cookies directly from disk — the same way tools like yt-dlp and ytmusicapi work.

  1. Chrome stores session cookies after you log in to Google
  2. This server reads those cookies using rookiepy (a Rust-based library, ultra lightweight)
  3. Computes a SAPISIDHASH authorization header (SHA1(timestamp + SAPISID + origin))
  4. Makes requests to GSC's internal API — the exact same endpoints your browser uses

Requirements: Just be logged in to Google in Chrome. That's it. Chrome doesn't need to be running.

Multi-Browser Support

The server auto-detects browsers in priority order: Chrome → Brave → Edge

Override with environment variables:

BROWSER=brave           # force a specific browser
CHROME_PROFILE=/path    # override the profile directory path
Bing Webmaster Tools — Free API Key

Bing provides a free, never-expiring API key from your account:

  1. Go to bing.com/webmasters
  2. Click Settings → API Access
  3. Click Generate API Key
  4. Copy the key and paste it into your MCP config (see setup below)

🚀 Installation & Setup

Prerequisites
  • Chrome (or Brave/Edge) browser with Google account logged in
  • Python 3.11+ or uv (recommended — no Python management needed)

Option A: Install with uvx (Recommended — Zero Python Setup)

Step 1: Install uv (one-time, ~10 seconds)

# macOS / Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows (PowerShell):
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

Step 2: Get your Bing API key (2 minutes)

  1. Go to bing.com/webmasters → Settings → API Access
  2. Click Generate API Key and copy it

Step 3: Add to your MCP config (30 seconds)

For Cline (VS Code), open your MCP settings and add:

{
  "mcpServers": {
    "gsc-bing-mcp": {
      "command": "uvx",
      "args": ["gsc-bing-mcp"],
      "env": {
        "BING_API_KEY": "paste-your-bing-key-here"
      }
    }
  }
}

For Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "gsc-bing-mcp": {
      "command": "uvx",
      "args": ["gsc-bing-mcp"],
      "env": {
        "BING_API_KEY": "paste-your-bing-key-here"
      }
    }
  }
}

Step 4: Done! Restart Cline/Claude Desktop and start asking questions.


Option B: Install with pip
pip install gsc-bing-mcp

Then in your MCP config:

{
  "mcpServers": {
    "gsc-bing-mcp": {
      "command": "gsc-bing-mcp",
      "env": {
        "BING_API_KEY": "paste-your-bing-key-here"
      }
    }
  }
}

Option C: Run from source (developers)
git clone https://github.com/codermillat/gsc-bing-mcp
cd gsc-bing-mcp
pip install -e .

MCP config:

{
  "mcpServers": {
    "gsc-bing-mcp": {
      "command": "python",
      "args": ["-m", "gsc_bing_mcp.server"],
      "env": {
        "BING_API_KEY": "paste-your-bing-key-here"
      }
    }
  }
}

Optional Environment Variables
VariableDescription
BING_API_KEYYour Bing Webmaster API key (required for Bing tools)
BROWSERForce browser: chrome, brave, or edge
CHROME_PROFILEOverride Chrome profile directory path

💬 Example Questions You Can Ask

"What are my top 10 search queries in GSC for the last 30 days?"
"Show me the daily click trend for my site this month"
"Which pages are getting the most impressions on Google?"
"What's my average position for 'python tutorial' in Search Console?"
"List all my verified sites in Google Search Console"
"Give me all search queries for my site — not just the top 25"
"Show index coverage issues — how many pages are excluded?"
"Are there any sitemap errors on my site?"
"What are my top Bing keywords this month?"
"Show me Bing crawl errors for my site"
"Submit https://example.com/new-post to Bing for indexing"
"How many inbound links has Bing found for my site?"
"Compare my GSC vs Bing clicks for site:example.com"
"Which queries are sending traffic to which pages on my site?"

🛠️ Tool Reference

Google Search Console Tools
gsc_list_sites

List all verified properties in your GSC account, including property type (Domain vs URL prefix).

  • No parameters required

gsc_performance_trend

Daily performance trend data (clicks, impressions, CTR, position). Most reliable GSC tool — returns clean, structured daily data.

  • site_url — e.g., "https://example.com/" or "sc-domain:example.com"
  • search_type — "WEB" (default), "IMAGE", "VIDEO", "NEWS"
  • start_date (optional) — "YYYY-MM-DD" (default: ~17 days ago)
  • end_date (optional) — "YYYY-MM-DD" (default: ~3 days ago, due to GSC lag)

gsc_top_queries

Top queries by clicks. Set limit=0 to return all available queries.

  • site_url — your site
  • limit — number of queries (default: 25, use 0 for all)
  • search_type — "WEB" (default), "IMAGE", "VIDEO", "NEWS"
  • start_date, end_date (optional) — date range

gsc_top_pages

Top pages by clicks. Set limit=0 to return all pages.

  • Same parameters as gsc_top_queries

gsc_search_analytics

Search analytics grouped by a single dimension.

  • site_url — your site
  • dimension — "query" (default), "page", "country", or "device"
  • search_type — "WEB" (default), "IMAGE", "VIDEO", "NEWS"
  • start_date, end_date (optional) — date range

gsc_site_summary

Coverage and indexing summary for a GSC property (indexed pages, errors, warnings, excluded URLs).

  • site_url — your site

gsc_list_sitemaps

List all submitted sitemaps with status, submitted count, indexed count, and error counts.

  • site_url — your site

gsc_insights

Search Console insights and notifications (branded query trends, filter alerts, callouts).

  • site_url — your site

gsc_all_queries

Extract ALL search queries from GSC by scraping the performance page HTML. Bypasses the RPC pagination limitation — can return significantly more queries than gsc_top_queries.

  • site_url — your site
  • search_type — "WEB" (default), "IMAGE", "VIDEO", "NEWS"

gsc_index_coverage

Detailed index coverage statistics (indexed pages, errors, warnings, excluded URLs by category).

  • site_url — your site

gsc_query_pages

Query-to-page correlations — shows which pages rank for which queries, with clicks, impressions, CTR, and position.

  • site_url — your site
  • search_type — "WEB" (default), "IMAGE", "VIDEO", "NEWS"
  • limit — max rows (default: 50, use 0 for all)

Bing Webmaster Tools
bing_list_sites

List all sites/properties in your Bing Webmaster account.

  • No parameters required

bing_search_analytics

Daily search performance from Bing (impressions, clicks, average click position).

  • site_url — site URL as it appears in Bing Webmaster Tools
  • start_date — "YYYY-MM-DD"
  • end_date — "YYYY-MM-DD"
  • limit — max rows (default: 100)

bing_keyword_stats

Top keywords driving traffic from Bing, sorted by clicks.

  • site_url, start_date, end_date, limit

bing_crawl_stats

Crawl statistics including errors, blocked URLs, DNS/connection issues.

  • site_url

bing_url_info

Detailed information about a specific URL (crawl date, HTTP status, indexed status).

  • site_url — the site in Bing Webmaster Tools
  • page_url — the specific URL to inspect

bing_page_stats

Top pages with impressions, clicks, and average click position.

  • site_url
  • limit — max pages (default: 100)

bing_submit_url

Submit a single URL to Bing for indexing. Check quota first with bing_url_submission_quota.

  • site_url
  • url — the page URL to submit

bing_submit_url_batch

Submit multiple URLs to Bing in a single batch request.

  • site_url
  • urls — comma-separated list of URLs

bing_crawl_issues

Crawl issues and errors Bing encountered (HTTP errors, DNS, robots.txt blocks, etc.).

  • site_url

bing_url_submission_quota

Check your remaining daily URL submission quota.

  • site_url

bing_link_counts

Inbound link counts discovered by Bing for your site.

  • site_url

Utility
refresh_google_session

Force-refresh the cached Chrome cookies. Use if you recently re-logged in to Google and tools are failing.

  • No parameters required

⚠️ Troubleshooting

"Google session cookies not found"
  • Make sure you're logged in to Google in Chrome
  • Open Chrome, go to google.com, sign in if needed
  • Call refresh_google_session, then retry
"Chrome's cookie database is locked"
  • Chrome may be writing to the DB. Wait a few seconds and retry.
  • On macOS, this sometimes happens right after Chrome opens or closes.
"Permission denied reading Chrome cookies" (macOS)
  • Grant Full Disk Access to your terminal or IDE:
    • System Settings → Privacy & Security → Full Disk Access → Add Terminal / VS Code
"BING_API_KEY environment variable is not set"
  • Add "BING_API_KEY" to the env section of your MCP config
  • Restart Cline/Claude Desktop after updating the config
GSC data shows "No data found"
  • GSC has a ~2–3 day data lag — use end_date at least 3 days in the past
  • Verify site_url matches exactly as shown in GSC (including trailing slash)
Using Brave or Edge instead of Chrome?
  • Set BROWSER=brave or BROWSER=edge in the env section of your MCP config

📦 Dependencies

PackagePurposeSize
mcpMCP protocol server (FastMCP)~5MB
rookiepyChrome/Brave/Edge cookie reader (Rust-based)~2MB
httpxAsync HTTP client~3MB

Total: ~10MB installed, ~15MB RAM at runtime

No Playwright. No Chrome binary. No browser automation.


🔒 Privacy & Security

  • All data stays local — this server runs on your machine and makes API calls directly from your computer
  • No data sent to any third party — your cookies and search data never leave your machine
  • Cookies read-only — this server only reads cookies, never modifies them
  • No logging of sensitive data — cookie values are never logged

📡 How to Publish Updates (Developers)

# Edit version in pyproject.toml and gsc_bing_mcp/__init__.py, then:
pip install build twine
python -m build
twine upload dist/*

Users will automatically get the update next time uvx runs.


📝 License

MIT — free for personal and commercial use.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.