Xmlriver
FreeNot checkedMCP server for XMLRiver enabling Google and Yandex SERP parsing, Yandex Wordstat keyword frequency, indexing checks, and account operations.
About
MCP server for XMLRiver enabling Google and Yandex SERP parsing, Yandex Wordstat keyword frequency, indexing checks, and account operations.
README
xmlriver-mcp
MCP server for XMLRiver — Google/Yandex SERP parsing and Yandex Wordstat keyword frequency data via XML API.
mcp-name: io.github.artgas1/xmlriver-mcp
Add to Cursor Add to VS Code Add to Claude Desktop
PyPI Downloads License: MIT Python 3.10+
What it does
Gives Claude / Cursor / Windsurf direct access to:
- Google SERP parsing (organic, ads, FAQ, knowledge graph, AI Overview) for any country / region / device
- Yandex SERP parsing (Russian-speaking markets — primary use case)
- Yandex Wordstat keyword frequency, history, similar queries (Yandex's keyword volume tool)
- Indexing check — is this URL in Google/Yandex index?
- Account ops — balance, tariff, cost per 1k requests
First MCP for XMLRiver — fills a gap for Russian SEO research and Yandex-aware analysis. Pay-as-you-go (~25 ₽ / 1000 requests on Basic tariff).
Demo
Claude queries wordstat_query and parses real frequency data from Yandex. Same flow works for google_search, yandex_search, indexing checks, and account ops.
Quickstart
uvx xmlriver-mcp
Configuration
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"xmlriver": {
"command": "uvx",
"args": ["xmlriver-mcp"],
"env": {
"XMLRIVER_USER": "<your_numeric_user_id>",
"XMLRIVER_KEY": "<your_40_char_hex_key>"
}
}
}
}
Claude Code
Add to project .mcp.json:
{
"mcpServers": {
"xmlriver": {
"command": "uvx",
"args": ["xmlriver-mcp"],
"env": {
"XMLRIVER_USER": "<your_numeric_user_id>",
"XMLRIVER_KEY": "<your_40_char_hex_key>"
}
}
}
}
Cursor
Edit ~/.cursor/mcp.json (global) or .cursor/mcp.json (project):
{
"mcpServers": {
"xmlriver": {
"command": "uvx",
"args": ["xmlriver-mcp"],
"env": {
"XMLRIVER_USER": "<your_numeric_user_id>",
"XMLRIVER_KEY": "<your_40_char_hex_key>"
}
}
}
}
Tools
| Tool | What it does |
|---|---|
google_search |
Parse Google SERP for a query — country, language, device, page, date filter, extra blocks (ads, FAQ, knowledge graph, AI Overview) |
yandex_search |
Parse Yandex SERP — region, language, device, page, date filter, extra blocks |
yandex_search_api_v2 |
Yandex Search API v2 (official) via XMLRiver — cleaner structured output |
wordstat_query |
Yandex Wordstat keyword frequency, device breakdown, history, similar queries |
check_url_indexed |
Check if URL is indexed in Google or Yandex |
get_balance |
Current XMLRiver balance in rubles |
get_tariff |
Current XMLRiver tariff name (Basic / Pro / Mega / Giga) |
get_tariff_expire |
Tariff expiration date (for prepay tariffs) |
get_cost |
Cost per 1000 requests for a given engine (google / yandex / yaxml / wordstat) |
All tools are read-only (annotated with readOnlyHint: true). No destructive operations.
Authentication
- Register at https://xmlriver.com
- Top up balance (minimum ~100 ₽ to start)
- Get your
user(numeric ID) andkey(40-char hex) from the dashboard - Set
XMLRIVER_USERandXMLRIVER_KEYenv vars in your MCP client config
Security note: XMLRiver API is HTTP-only (not HTTPS). The key is rotatable from the dashboard if compromised.
Pricing context
| Tariff | Setup | Google / Yandex / Wordstat | Yandex Search API v2 |
|---|---|---|---|
| Basic | Pay-as-you-go | 25 ₽ / 1k | 25 ₽ / 1k |
| Pro | 5000 ₽/mo | 20 ₽ / 1k | 24 ₽ / 1k |
| Mega | 15000 ₽/mo | 15 ₽ / 1k | 23 ₽ / 1k |
| Giga | 50000 ₽/mo | 12 ₽ / 1k | 22 ₽ / 1k |
Use get_balance and get_cost to monitor spend before bulk operations.
Common use cases
- SEO position tracking —
yandex_search(query="...", region=213)for own/competitor ranking - Keyword research —
wordstat_query(query="купить iphone", history_period="monthly")for demand validation + seasonality - Featured snippet hunting —
google_search(additional_blocks="faqsnippet,knowledge_graph,zeroposition")to see what owns the answer box - Indexation monitoring —
check_url_indexed(url="https://your-site.com/new-page")after publishing - Cross-region comparison — same query, different
region/countryfor Yandex/Google to see geographic variance
Local development
git clone https://github.com/artgas1/xmlriver-mcp
cd xmlriver-mcp
uv sync --all-extras
# Run unit tests (no API key needed)
uv run pytest tests/unit -v
# Run integration tests (requires XMLRIVER_USER / XMLRIVER_KEY)
XMLRIVER_USER=... XMLRIVER_KEY=... uv run pytest tests/integration -v -m integration
# MCP Inspector — interactive
XMLRIVER_USER=... XMLRIVER_KEY=... npx @modelcontextprotocol/inspector uv run python -m xmlriver_mcp.server
# MCP Inspector — CLI smoke test (list tools)
npx @modelcontextprotocol/inspector --cli "uv run python -m xmlriver_mcp.server" --method tools/list
Architecture
- Stack: Python 3.10+ / FastMCP / httpx / tenacity / pydantic
- Transport: stdio (default)
- No external SDK dependency — direct REST via httpx + custom XML parser
- Retry strategy: 3 attempts with exponential backoff on network errors (not on HTTP 4xx)
- Logging: stderr only (stdio protocol requires stdout for JSON-RPC)
License
Contributing
PRs welcome. Open an issue first for substantial changes.
Acknowledgements
- XMLRiver — for the underlying API
- Anthropic MCP — for the protocol
Install Xmlriver in Claude Desktop, Claude Code & Cursor
unyly install xmlriver-mcpInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add xmlriver-mcp -- uvx xmlriver-mcpFAQ
Is Xmlriver MCP free?
Yes, Xmlriver MCP is free — one-click install via Unyly at no cost.
Does Xmlriver need an API key?
No, Xmlriver runs without API keys or environment variables.
Is Xmlriver hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install Xmlriver in Claude Desktop, Claude Code or Cursor?
Open Xmlriver on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Xmlriver with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
