Skip to main content
Glama
cyber-kani

indexnow-mcp

by cyber-kani
README.md
# indexnow-mcp

**Submit URLs to search engines instantly from any AI agent.**

An [MCP](https://modelcontextprotocol.io) server for the [IndexNow](https://www.indexnow.org) protocol. Connect it to Claude Code, Claude Desktop, Cursor or any MCP-aware client, and your AI agent can push new or updated URLs to **Bing, Yandex, Seznam and Naver** the moment content changes — no waiting for a recrawl, no dashboard clicking.

Ship a blog post, ask your agent to submit it, get crawled within minutes.

## Why

- Search engines take days or weeks to recrawl small sites. IndexNow flips that: you tell them.
- Agents already publish and edit content. Indexing should be part of the same automated loop.
- Zero dependencies beyond the MCP SDK. No accounts, no API keys from search engines — IndexNow is free and open.

## Tools

| Tool | What it does |
|---|---|
| `generate_key()` | Creates a fresh 32-char IndexNow key + setup instructions |
| `verify_key(host, key)` | Confirms your key file is reachable at `https://host/<key>.txt` |
| `submit_urls(host, key, urls)` | Submits up to 10,000 URLs to all IndexNow engines in one call |
| `submit_sitemap(host, key, sitemap_url)` | Fetches a sitemap.xml and submits every URL in it |

## Quick start

```bash
pip install mcp
git clone https://github.com/cyber-kani/indexnow-mcp
```

**Claude Code:**
```bash
claude mcp add indexnow -- python3 /path/to/indexnow-mcp/server.py
```

**Claude Desktop / Cursor** (`mcpServers` config):
```json
{
  "mcpServers": {
    "indexnow": {
      "command": "python3",
      "args": ["/path/to/indexnow-mcp/server.py"]
    }
  }
}
```

Then just talk to your agent:

> *"Generate an IndexNow key for example.com"* → host the key file it gives you
>
> *"Submit https://example.com/blog/new-post to search engines"*
>
> *"Submit everything in https://example.com/sitemap.xml"*

## One-time site setup

1. `generate_key()` → you get e.g. `8d7e...bf5c`
2. Put a file at `https://your-site.com/8d7e...bf5c.txt` containing exactly that key
3. `verify_key("your-site.com", "8d7e...bf5c")` → `ok: true`
4. Submit away. The key stays valid forever.

## FAQ

**Does Google support IndexNow?** No — Google uses its own systems. IndexNow covers Bing, Yandex, Seznam and Naver, and Bing shares the signal with partners. For Google, keep your sitemap fresh in Search Console.

**Rate limits?** IndexNow accepts up to 10,000 URLs per request. Submit when content actually changes; spamming unchanged URLs can get a key ignored.

**Is this safe to expose to an agent?** The server can only *announce* URLs on hosts where you control the key file. It cannot modify your site or submit URLs for domains you don't own.

## License

MIT

---

Built by [Cloudcoder](https://cloudcoder.dev) — a software development company in Sri Lanka specializing in [MCP servers and AI agents](https://cloudcoder.dev/services/mcp-ai-agents). Read our plain-language explainer: [What is MCP?](https://cloudcoder.dev/blog/model-context-protocol-explained)