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
- Generate an IndexNow key (any UUID works)
- Place a text file with the key at
https://yoursite.com/{key}.txt - Set the
INDEXNOW_KEYenvironment 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
- Project Management → — Configure per-project indexing settings
- Advanced Usage → — Automate the full publish-and-index pipeline