Indexing & SEO Tools

After publishing content, getting it indexed by search engines quickly is critical. The BPAI MCP Server includes two powerful indexing mechanisms: the Broadcaster Network for instant discovery signals and IndexNow for protocol-level indexing requests.


The Indexing Problem

New content can take days or weeks to be crawled and indexed by search engines. The traditional workflow (publish → wait → hope Google finds it) loses critical freshness signals. The BPAI indexing tools short-circuit this delay.


broadcast_urls

Submit URLs to multiple search engine discovery endpoints simultaneously. The Broadcaster sends ping-style requests to Google, Bing, Yandex, and other aggregators to announce new content.

Parameters

Parameter Type Required Default Description
urls string[] Array of URLs to broadcast
indexnow_key string env INDEXNOW_KEY IndexNow API key
indexnow_host string api.indexnow.org Search engine to submit to
enable_ping boolean true Send pings to Google and Bing

What Gets Pinged

The Broadcaster sends discovery signals to:

Endpoint Type Purpose
Google Ping HTTP GET www.google.com/ping?sitemap=
Google Indexing HTTP GET www.google.com/webmasters/tools/ping?sitemap=
Bing Webmaster HTTP GET www.bing.com/ping?sitemap=
Yandex Webmaster HTTP GET webmaster.yandex.com/ping?sitemap=
IndexNow (Bing) HTTP POST Protocol-level submission
IndexNow (Yandex) HTTP POST Protocol-level submission
IndexNow (Seznam) HTTP POST Protocol-level submission
PubSubHubbub HTTP POST Real-time feed notification

Example Usage

Broadcast specific URLs:

Broadcast these URLs to search engines:
- https://myblog.com/best-crm-software/
- https://myblog.com/crm-implementation-guide/
- https://myblog.com/free-crm-tools/

Response

{
  "status": "success",
  "urls_submitted": 3,
  "results": {
    "google_ping": { "status": "ok", "response_code": 200 },
    "google_indexing": { "status": "ok", "response_code": 200 },
    "bing_ping": { "status": "ok", "response_code": 200 },
    "yandex_ping": { "status": "ok", "response_code": 200 },
    "indexnow_bing": { "status": "ok", "response_code": 200 },
    "indexnow_yandex": { "status": "ok", "response_code": 200 },
    "pubsubhubbub": { "status": "ok", "response_code": 204 }
  },
  "timestamp": "2026-02-18T01:30:00Z"
}

indexnow_submit

Submit URLs directly via the IndexNow protocol. IndexNow provides faster indexing than standard ping methods by using a verified key that proves site ownership.

Parameters

Parameter Type Required Default Description
urls string[] URLs to submit to IndexNow
key string env INDEXNOW_KEY Your IndexNow API key
search_engine enum api.indexnow.org api.indexnow.org, www.bing.com, search.seznam.cz, yandex.com

The host is automatically detected from the first URL in the array.

IndexNow Setup

  1. Generate an IndexNow key (any UUID works)
  2. Place a text file with the key at https://yoursite.com/{key}.txt
  3. Set the INDEXNOW_KEY environment variable in your MCP client config

Example

Submit these URLs to IndexNow:
- https://myblog.com/best-crm-software/
- https://myblog.com/crm-guide/

Response

{
  "status": "accepted",
  "code": 200,
  "urls_count": 2,
  "search_engine": "api.indexnow.org"
}

fetch_sitemap

Fetch and parse a site's XML sitemap to extract URLs. Used for internal linking and for building URL lists to broadcast.

Parameters

Parameter Type Required Default Description
sitemap_url string URL of the XML sitemap
include_patterns string[] All URL patterns to include
exclude_patterns string[] None URL patterns to exclude
max_urls number All Maximum URLs to return

Example

Fetch all blog post URLs from https://myblog.com/post-sitemap.xml
Exclude any URLs containing /tag/ or /category/

Response

{
  "status": "success",
  "sitemap_url": "https://myblog.com/post-sitemap.xml",
  "total_urls": 347,
  "filtered_urls": 312,
  "urls": [
    "https://myblog.com/best-crm-software/",
    "https://myblog.com/crm-implementation-guide/",
    "..."
  ],
  "last_modified": "2026-02-17T18:00:00Z"
}

Sitemap Index Support

If the URL points to a sitemap index (containing multiple sub-sitemaps), the tool automatically follows and parses all child sitemaps:

Fetch all URLs from https://myblog.com/sitemap_index.xml
Only include URLs containing /blog/

Full-Stack SEO Pipeline

The MCP tools chain together into a complete publish-and-index pipeline:

Step 1: Generate 50 articles
    generate_batch(keywords, model="gpt-5.2", research=true)

Step 2: Publish all to WordPress
    publish_batch(batch_id, status="publish", delay=3)

Step 3: Broadcast to search engines
    broadcast_urls(batch_id)

Step 4: Submit to IndexNow
    indexnow_submit(urls, host="myblog.com")

This entire pipeline can be triggered from a single conversational flow:

Generate 50 articles from my keyword CSV, publish them all to WordPress, 
then broadcast and submit to IndexNow

Indexing Expectations

Method Speed Coverage
Broadcaster ping Minutes to hours Google, Bing, Yandex discover the URLs
IndexNow Minutes to hours Bing, Yandex, Seznam index faster
Google Ping Hours to days Google crawls on its own schedule
Natural crawling Days to weeks Depends on domain authority

Combining Broadcaster + IndexNow gives the fastest path to indexing. Google remains on its own schedule (no official instant indexing API for standard sites), but pinging speeds up crawl discovery.


Next Steps