AI Search Operations MCP for Bing Webmaster
Combines Bing Webmaster data, GA4 AI-traffic opportunity matching, technical SEO scanning, AI-search content audits, approval-gated WordPress fix preparation, live verification, Bing URL submission, and IndexNow integration to help marketers improve pages for human readers and AI search.
README
AI Search Operations MCP for Bing Webmaster
An open-source, vendor-neutral MCP server that helps marketers improve pages for human readers and AI search. It combines Bing Webmaster data, GA4 AI-traffic opportunity matching, technical SEO scanning, AI-search content audits, approval-gated WordPress fix preparation, live verification, Bing URL submission, and a separate IndexNow integration.
It uses the standard MCP stdio transport, so the same server can run in Codex, Claude Code, Cursor, VS Code, and other compatible MCP clients. Each user supplies their own credentials.
No API key is stored in this repository.
What marketers can do
- See the queries and pages already receiving Bing impressions and clicks.
- Find pages with high Bing impressions but little or no identifiable AI-referral traffic in an aggregated GA4 export.
- Review rankings, crawl activity, crawl issues, sitemaps, backlinks, keyword research data, URL details, and submission quota.
- Scan one page or up to 20 pages for common SEO/AEO problems.
- Find duplicate H1s, missing image alt text, metadata, canonical, robots, language, HTTP, and JSON-LD problems.
- Audit AI readability, entity coverage, citation readiness, intent coverage, schema fit, internal links, and freshness.
- Audit a site's proposed
llms.txtfile and compare it with important hub URLs. - Find highly similar article bodies across a catalog before search systems choose the wrong page.
- Compare Article/FAQPage schema and
dateModifiedfreshness across translated pages. - Compare heading topics with public competitor pages.
- Preview the answer that can be extracted using only the page's own words.
- Find concise passages that are easier to quote or paraphrase accurately.
- Turn every finding into a clear fix plan and exact before/after diff.
- Prepare corrected WordPress HTML without publishing it automatically.
- Recheck the live page after a fix.
- Submit an approved URL, URL batch, or sitemap to Bing.
- Validate an IndexNow key file and notify IndexNow about added, updated, or deleted URLs.
Example prompts for any MCP client
List the websites connected to my Bing Webmaster account.
Show my top Bing queries and pages.
Using this GA4 CSV, find pages with at least 1,000 Bing impressions and no more than 5 AI-referral sessions.
Scan these 10 URLs and group the AEO problems by priority.
Audit this page for AI readability, citation readiness, missing entities, intent gaps, schema, and freshness.
Compare this article with these three competitors and show only meaningful topic gaps.
Find internal-link opportunities using this list of published pages. Do not invent URLs.
Scan this WordPress article, prepare the safe fixes, show me the changes, update it after I approve, verify the live page, then submit it to Bing.
How the automated workflow works
aeo_audit_pageruns the full technical and AI-search audit.- Your AI client reads the latest post through a separate connected WordPress MCP.
aeo_autofix_pageapplies only exact proposed replacements in memory and returns a before/after diff.- The tool marks the package
approval_required: trueand does not publish. - Your AI client shows the changes and requests approval before a WordPress write.
- After approval, the connected WordPress MCP updates the post.
seo_recheck_pageand the AEO audits verify the public result.bing_submit_urlorbing_submit_url_batchrequests a fresh Bing crawl when you ask for it.
The fixer will not invent image descriptions, internal destination URLs, facts, prices, or competitor claims. The calling AI must supply proposed wording from reviewed source material. It also requires confirmation that the WordPress theme already renders the post title as the page H1 before changing content-body H1s to H2s.
Find high-impression, low-AI-traffic pages
Use aeo_find_ai_traffic_opportunities with either an attached GA4 CSV or aggregated rows from a connected GA4 tool. The MCP pulls Bing's top-page statistics itself and matches the pages by URL.
The simplest GA4 CSV contains these three columns:
Page path + query string,Session source / medium,Sessions
/blog/example/,chatgpt.com / referral,3
/blog/another-page/,google / organic,120
Common GA4 page, source/referrer, and traffic column names are detected automatically. If the export is already filtered to AI referrals, a page column plus a traffic column is enough. Only aggregate page-level data should be supplied—never export user-level or event-level identifiers.
The result lists each opportunity URL, Bing impressions and clicks, Bing positions, identifiable GA4 AI traffic, the reason it was selected, and the recommended next audit. Normal search and referral traffic is ignored. You can add extra AI referral domains if your analytics uses a source that is not in the built-in list.
The raw CSV is not returned or sent to Google. The MCP returns only the aggregate comparison. Bing and GA4 may cover different reporting periods, and some AI visits appear as direct, organic, or unknown traffic, so the output is an opportunity list rather than proof of total AI usage.
Choose only the modules you need
All 46 tools remain enabled by default. Set MCP_MODULES to load a smaller toolset:
| Module | What it provides |
|---|---|
bing |
Bing reporting, Bing submissions, and the Bing + GA4 opportunity finder |
seo |
Live page scanning, rechecking, fix plans, and WordPress-ready HTML preparation |
aeo |
AI readability, citation, entity, intent, schema, freshness, catalog, and multilingual audits |
indexnow |
IndexNow key validation and URL notifications |
Examples:
# Only Bing reporting and submission tools
MCP_MODULES=bing npm start
# Scanner and AEO audits without Bing credentials
MCP_MODULES=seo,aeo npm start
Use all, or leave MCP_MODULES unset, to enable everything. An unknown module name stops startup with a clear error instead of silently hiding tools.
The 46 MCP tools
Bing Webmaster data
bing_list_sitesbing_get_query_statsbing_get_page_statsbing_get_rank_and_traffic_statsbing_get_crawl_statsbing_get_crawl_issuesbing_get_sitemapsbing_get_fetched_url_detailsbing_get_url_traffic_infobing_get_page_query_statsbing_get_url_submission_quotabing_get_link_countsbing_get_url_linksbing_get_keyword_statsbing_get_related_keywordsbing_get_query_page_statsbing_get_query_page_detail_statsbing_get_url_infobing_get_children_url_traffic_info
Live SEO/AEO scanning and fixes
seo_scan_pageseo_scan_pagesseo_recheck_pageaeo_plan_page_fixesaeo_prepare_wordpress_fixes
Catalog and multilingual audits
aeo_llms_txt_audit— inspect the root-level Markdown file, its heading, links, and supplied canonical pagesaeo_internal_duplicate_check— compare 2 to 30 article bodies using transparent text similarityaeo_multilang_schema_parity— compare Article/FAQPage JSON-LD and freshness across translated versions
Bing-to-AI traffic opportunities
aeo_find_ai_traffic_opportunities— combine BingGetPageStatswith an aggregated GA4 CSV or rows to find high-impression pages with low identifiable AI-referral traffic
AI-search operations
aeo_audit_page— run all AI-search audits togetheraeo_ai_readability_audit— direct answers, definitions, headings, structure, and marketing languageaeo_entity_coverage— check a primary entity and supplied related entitiesaeo_citation_readiness— score extractable, structured, supported passagesaeo_intent_coverage— detect six common intent types and missing expected intentsaeo_compare_pages— compare visible heading topics with up to five competitorsaeo_ai_overview_preview— create a page-only extractive answer previewaeo_extract_citable_chunks— find concise standalone definitions and factsaeo_internal_link_opportunities— match content to a supplied inventory of real URLsaeo_schema_recommendations— validate JSON-LD and assess schema fitaeo_freshness_audit— flag dates, prices, limits, relative claims, and screenshots for reviewaeo_autofix_page— prepare an exact diff and require approval; never publish
Bing submissions
bing_submit_urlbing_submit_url_batchbing_submit_sitemap
IndexNow
indexnow_validate_keyindexnow_submit_urlindexnow_submit_urls
IndexNow remains separate from the Bing Webmaster API client. Its tools support added, updated, and deleted workflow labels. The protocol sends the changed URL, not a separate change-type field, and an accepted submission never guarantees crawling or indexing.
Submission tools are marked as write actions. Audits and fix-preparation tools are read-only because they do not change the website.
Official API mapping
The added Bing tools call these documented methods with their official parameters. Read tools return Bing's normalized response. The batch tool adds clearly labelled local validation, quota, success, failure, and skip results; it does not claim that Bing returned per-URL outcomes.
-
aeo_find_ai_traffic_opportunities→GetPageStats(siteUrl)plus aggregate GA4 data supplied by the user. The matcher recognizes GA4 page-path and referrer/source columns described in Google's Analytics dimensions and metrics reference; it does not call the GA4 API. -
bing_get_link_counts→GetLinkCounts(siteUrl, page) -
bing_get_url_links→GetUrlLinks(siteUrl, link, page) -
bing_get_keyword_stats→GetKeywordStats(q, country, language) -
bing_get_related_keywords→GetRelatedKeywords(q, country, language, startDate, endDate) -
bing_get_query_page_stats→GetQueryPageStats(siteUrl, query) -
bing_get_query_page_detail_stats→GetQueryPageDetailStats(siteUrl, query, page) -
bing_get_url_info→GetUrlInfo(siteUrl, url) -
bing_get_children_url_traffic_info→GetChildrenUrlTrafficInfo(siteUrl, url, page) -
bing_submit_url_batch→SubmitUrlBatch(siteUrl, urlList)
IndexNow follows the separate official IndexNow protocol, including same-host key validation and the documented 10,000-URL POST limit.
Honest scoring and limitations
The AI-search scores are transparent HTML and language-pattern heuristics. They are useful editorial signals, not secret access to an LLM or a guarantee that ChatGPT, Copilot, Google, or Bing will cite a page.
- Entity gaps are measured against related entities you supply. Heuristically detected entities are labelled as such.
- Internal-link suggestions come only from URLs you supply. The MCP does not invent destinations.
- The answer preview extracts existing page passages. It does not simulate a proprietary AI answer.
- Competitor gaps compare headings and topics. They are research leads, not instructions to copy text.
- Freshness findings mean “verify this,” not “this is false.”
- Schema suggestions must match visible content and current search-platform rules.
aeo_autofix_pageprepares changes only. A connected WordPress MCP is needed to publish after human approval.llms.txtis a community proposal. Having one does not guarantee discovery, ranking, crawling, or citation by an AI system.- Near-duplicate similarity is a review signal, not proof that a search engine will deduplicate pages or a command to delete one.
- Multilingual parity compares only the URLs supplied. Different locales may legitimately need different visible content or schema.
- The AI-traffic opportunity tool does not connect to GA4 or require a Google key. It processes the aggregate CSV or rows supplied to the local MCP.
- GA4 referral data is incomplete because some AI visits appear as direct, organic, or unknown traffic.
- Bing says
GetPageStatsis updated weekly. Its period may not exactly match the date range of a GA4 export.
Important Bing limitation
Bing's public Webmaster API does not expose the complete URL Inspection report shown in Bing Webmaster Tools. Dashboard warnings such as multiple H1 headings and missing image alt attributes are not returned by GetCrawlIssues.
The scanner therefore fetches and checks the public HTML independently. It does not claim to reproduce Bing's private dashboard logic, execute JavaScript, or access private/local network addresses.
Install
You need Node.js 20 or newer and any MCP client that supports local stdio servers. A Bing Webmaster API key is needed only for the bing module; the webpage scanner and AEO audits work without it.
git clone https://github.com/TechDivar/bing-webmaster-aeo-mcp.git
cd bing-webmaster-aeo-mcp
npm install
npm run setup-key
The setup hides the key while you type and stores it outside the repository with owner-only permissions:
| Platform | Default private folder |
|---|---|
| macOS | ~/Library/Application Support/bing-webmaster-aeo-mcp/secrets/ |
| Linux | ~/.config/bing-webmaster-aeo-mcp/secrets/ |
| Windows | %APPDATA%\bing-webmaster-aeo-mcp\secrets\ |
Existing macOS users do not need to move a key previously saved under the Codex secrets folder; v3 keeps that location as a read-only compatibility fallback.
You can also supply credentials through your MCP client's secret settings or environment:
BING_WEBMASTER_API_KEY=
BING_WEBMASTER_API_KEY_FILE=/absolute/path/to/bing-key
INDEXNOW_KEY=
INDEXNOW_KEY_FILE=/absolute/path/to/indexnow-key
INDEXNOW_KEY_LOCATION=https://example.com/indexnow-key.txt
MCP_MODULES=bing,seo,aeo,indexnow
Prefer the setup scripts or private key files. Never commit a populated .env or client configuration containing a key. BING_WEBMASTER_MCP_CONFIG_DIR can move the private configuration folder when needed.
Optional IndexNow setup
Create an IndexNow key, save it locally, and host a UTF-8 text file named <key>.txt at the root of the exact site host. The file must contain only the matching key.
npm run setup-indexnow-key
The key is stored in the same platform-specific private folder shown above. The default public key-file location is https://your-host/<key>.txt. If you intentionally host it elsewhere on the same host, set INDEXNOW_KEY_LOCATION before starting the MCP server. A custom location limits submissions to URLs under that file's directory, as required by IndexNow.
Connect it to an MCP client
Use an absolute path to src/server.mjs. For Codex:
From the repository folder, run:
codex mcp add bing-webmaster -- node "$PWD/src/server.mjs"
Restart Codex, then ask it to list the Bing sites to confirm the connection.
See Client setup examples for Claude Code, Cursor, VS Code, generic MCP hosts, module selection, and safe credential options.
WordPress is intentionally not built into this server. Connect a separate WordPress MCP if you want an approved fix package to be published. This keeps website-writing credentials and write access separate from scanning and Bing reporting.
Development
npm install
npm test
npm start
Security
Never paste an API key into a prompt, issue, commit, or screenshot. See SECURITY.md for the security model and vulnerability-reporting guidance.
Contributing
Marketers, SEO specialists, content teams, and developers are welcome. See CONTRIBUTING.md.
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.