xmlriver-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| XMLRIVER_KEY | Yes | Your 40-character hex API key from XMLRiver dashboard | |
| XMLRIVER_USER | Yes | Your numeric user ID from XMLRiver dashboard |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_balanceA | Get current XMLRiver account balance in rubles (₽). Use this to check funds before bulk operations or to monitor spending. Returns:
Dict with Examples: get_balance() → {"balance_rub": 1234.56} |
| get_tariffA | Get current XMLRiver tariff name. Tariffs:
Returns:
Dict with |
| get_tariff_expireA | Get expiration date for prepay tariff (Pro/Mega/Giga). Returns 'never' or date for Basic tariff (no expiry). Returns:
Dict with |
| get_costA | Get cost per 1000 requests for a given engine, in rubles (₽). Use this to estimate spend for a planned bulk operation. Cost depends on
current tariff — see Returns:
Dict with Examples: get_cost(engine="google") → {"engine": "google", "cost_per_1k_rub": 25.0} |
| google_searchA | Parse Google search results page (SERP) for a given query and locale. Use this for: SEO research (own/competitor ranking), keyword discovery, SERP feature analysis (featured snippets, knowledge graph, FAQ), competitive intel. Do NOT use for: live page content fetching (use a dedicated scraper for that),
Google Ads keyword planner data (use Yandex Wordstat via Returns:
Dict with:
- Examples: google_search(query="python tutorial", country=2008, language="ru") → {"results": [...10 organic results...], "total_found": 12300, "page": 1} |
| check_url_indexedA | Check if a URL is indexed in Google or Yandex. Internally uses Use this for: SEO audits, indexation monitoring, "did Google find my new page?". Returns:
Dict with:
- |
| wordstat_queryA | Get Yandex Wordstat frequency for a keyword phrase. Use this for: keyword research, demand validation, seasonality analysis, long-tail discovery. Russian/Yandex-speaking markets — this is Yandex's equivalent of Google Keyword Planner. Do NOT use for: Google volume (Wordstat is Yandex-only — for Google use Google Keyword Planner or third-party tools). Returns:
Dict with:
- Examples: wordstat_query(query="купить iphone") → {"total_shows": 187234, "similar_queries": [...]} |
| yandex_searchA | Parse Yandex search results page (SERP) for a given query and region. Use this for: Russian SEO research (own/competitor ranking in Yandex), regional keyword analysis, SERP feature analysis (FAQ, knowledge graph), competitive intel for Russian-speaking markets. Do NOT use for: keyword frequency data — use Returns:
Dict with Examples: yandex_search(query="купить iphone", region=213) → top 10 organic for Moscow |
| yandex_search_api_v2A | Query Yandex Search API v2 (official) via XMLRiver proxy. Use this when you need: cleaner structured output, no SERP-feature parsing overhead,
documented Yandex Search API semantics. Slightly more expensive than Do NOT use for: SERP features (knowledge graph, FAQ, related questions) — those
are not in the official API. Use Returns:
Parsed search results dict similar to |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Each tool has a clearly distinct purpose: URL indexation check, account management (balance, cost, tariff, tariff expiry), Google SERP parsing, Yandex Wordstat, Yandex SERP parsing, and Yandex Search API. There is no overlap or ambiguity.
Tool names follow a consistent verb_noun pattern (e.g., get_balance, check_url_indexed, google_search). All are snake_case with clear verbs, making the action predictable. The naming is uniform across the set.
With 9 tools, the scope is well-calibrated: 4 tools cover account and cost management, and 5 cover search engine data access (Google, Yandex, indexation, keyword research). This is a complete yet focused surface for an SEO/SERP analysis tool.
The tool set covers all core operations expected from an XMLRiver client: account info (balance, tariff, cost, expiry), Google and Yandex search, URL indexation checking, and keyword frequency via Wordstat. There are no obvious gaps for the stated purpose of SEO and search data retrieval.