Servidor MCP

Iskat — Russian-language web search for agents

io.iskat/webdex

Qué hace este MCP

Searches a Russian-language indexed web corpus, extracts passages and pages, monitors queries, and finds product offers and prices.

check_watch
What is new for a tracked query
Return pages matching a watched query that were indexed since the last check, then advance the cursor. Call with no id to check all of your watches at once.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'id': {'type': 'integer', 'description': 'Watch id; omit to check all.'}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 30, 'minimum': 1}}, 'additionalProperties': False}
delete_watch
Stop tracking a query
Remove a watch. Pass its id (from list_watches) or the exact query text. Watches accumulated with no way to remove them; this closes that.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'id': {'type': 'integer', 'description': 'Watch id from list_watches.', 'exclusiveMinimum': 0}, 'query': {'type': 'string', 'maxLength': 500, 'description': 'Exact watched query, as an alternative to id.'}}, 'additionalProperties': False}
fetch_page
Read an indexed page
Return the full extracted text of a page already in the index. This serves stored content and does not hit the live site, so it is fast and cannot be blocked. Use it after search to read a result.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'URL of an indexed page.'}, 'maxChars': {'type': 'integer', 'default': 20000, 'maximum': 100000, 'minimum': 200, 'description': 'Truncate the body to this many characters.'}}, 'additionalProperties': False}
fetch_pages
Read several indexed pages at once
Like fetch_page but for up to 20 URLs in one call — the bulk-read counterpart to search_batch, so reading a page of results is one round trip instead of ten. Each page comes back with its cleaned text from the index; URLs not in the index are marked, not fatal.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['urls'], 'properties': {'urls': {'type': 'array', 'items': {'type': 'string', 'format': 'uri'}, 'maxItems': 20, 'minItems': 1, 'description': 'URLs of indexed pages.'}, 'maxChars': {'type': 'integer', 'default': 8000, 'maximum': 50000, 'minimum': 200, 'description': 'Truncate each body to this many characters.'}}, 'additionalProperties': False}
find_passages
Get quotable passages, not just links
Return the specific passages that answer a question, each with the URL and title it came from. Use this when you intend to cite or summarise rather than browse: it skips the step of fetching pages and hunting for the relevant paragraph, and the attribution is exact.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 8, 'maximum': 20, 'minimum': 1, 'description': 'Number of passages.'}, 'query': {'type': 'string', 'maxLength': 500, 'minLength': 1}, 'category': {'type': 'string'}}, 'additionalProperties': False}
find_similar
Find pages similar to a page
Given an indexed URL, return other indexed pages with similar content, compared by meaning rather than shared keywords.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'URL of an indexed page.'}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 30, 'minimum': 1}}, 'additionalProperties': False}
index_stats
Index statistics
Size and freshness of the corpus: sites, pages, passages, languages.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
list_sites
List indexed sites
Show which sites the index covers, with page counts. Use this to understand coverage before concluding that something is missing.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 50, 'maximum': 200, 'minimum': 1}, 'search': {'type': 'string', 'description': 'Filter by substring of the host.'}, 'status': {'enum': ['active', 'pending', 'paused', 'rejected', 'blocked', 'all'], 'type': 'string', 'default': 'active'}}, 'additionalProperties': False}
list_watches
List tracked queries
Show the queries you are watching and when each was last checked.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
search
Search the web index
Search the Webdex index of crawled websites. Combines keyword (BM25) and semantic (vector) retrieval. Supports "quoted phrases" for exact matches and -term to exclude a term. Works across languages: a query in one language can retrieve pages written in another.
Solo lectura Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'lang': {'type': 'string', 'maxLength': 2, 'minLength': 2, 'description': 'Restrict to a two-letter language code, e.g. "ru".'}, 'mode': {'enum': ['hybrid', 'keyword', 'semantic'], 'type': 'string', 'default': 'hybrid', 'description': 'hybrid = both arms fused (best general choice); keyword = exact terms only, for names, codes and error strings; semantic = meaning-based, for vague or descriptive questions.'}, 'site': {'type': 'string', 'description': 'Restrict to one host, e.g. "example.com".'}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of results.'}, 'query': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': 'The search query.'}, 'expand': {'type': 'boolean', 'default': True, 'description': 'Widen the query with synonyms and acronym expansions (грм → газораспределительный механизм, НДФЛ → налог на доходы). On by default; set false for an exact-terms search. The terms actually added come back in expandedWith.'}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 200, 'minimum': 0, 'description': 'Skip this many results — for a second page.'}, 'category': {'type': 'string', 'description': 'Restrict to a task category, e.g. "news", "legal", "forum-it". See list_sites.'}, 'sinceDays': {'type': 'integer', 'maximum': 3650, 'minimum': 1, 'description': 'Only pages published within this many days. Use for anything time-sensitive.'}}, 'additionalProperties': False}
search_batch
Run several searches at once
Execute up to 10 queries in one call. Answering a real question usually takes several related searches, and doing them one at a time spends a round trip on each; this runs them together and returns the results grouped by query.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['queries'], 'properties': {'lang': {'type': 'string', 'maxLength': 2, 'minLength': 2}, 'limit': {'type': 'integer', 'default': 5, 'maximum': 20, 'minimum': 1, 'description': 'Results per query.'}, 'queries': {'type': 'array', 'items': {'type': 'string', 'maxLength': 500, 'minLength': 1}, 'maxItems': 10, 'minItems': 1}, 'category': {'type': 'string'}}, 'additionalProperties': False}
search_products
Find products with prices
Search shop catalogues by name and specification, filter by price and availability, and sort by price. Use this rather than `search` whenever the question is what something costs or where to buy it: `search` returns pages that mention a product, this returns the offer itself — price, stock, specifications and a link straight to the product page. Specifications are searchable, so a query like "ноутбук 16 гб 512 ссд" or "холодильник samsung no frost" matches on capacity and features, not just the model name. Coverage is whatever has been crawled: an exact model, colour and size that no indexed shop stocks returns nothing rather than the wrong colour — an empty result means not indexed, not nonexistent.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'shop': {'type': 'string', 'description': 'Restrict to one shop by host, e.g. citilink.ru.'}, 'sort': {'enum': ['relevance', 'price_asc', 'price_desc', 'updated'], 'type': 'string', 'default': 'relevance'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'What to find, in words a shopper would use.'}, 'vendor': {'type': 'string', 'description': 'Manufacturer, exact match.'}, 'in_stock': {'type': 'boolean', 'default': False, 'description': 'Only offers the shop states are in stock. Off by default: many shops never say.'}, 'max_price': {'type': 'number', 'minimum': 0, 'description': 'Upper bound.'}, 'min_price': {'type': 'number', 'minimum': 0, 'description': "Lower bound, in the shop's currency."}, 'best_per_product': {'type': 'boolean', 'default': True, 'description': 'Collapse the same product across shops to its cheapest offer.'}}, 'additionalProperties': False}
source_profile
What kind of source is this
Describe a site in the index: what type of source it is (official, media, reference, forum, shop), how much of it we hold, how trusted it is by the link graph, and how fresh the copy is. Use this before relying on a result. A ministry's own page and a forum post repeating it are both 'a URL', and the difference decides how much weight the claim deserves.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['host'], 'properties': {'host': {'type': 'string', 'description': 'Domain, e.g. cbr.ru'}}, 'additionalProperties': False}
watch_query
Track a query for new results
Save a query and later ask what has appeared since you last checked. Pull-based: nothing is pushed to you, you call check_watch when you want to know — which fits an agent that runs on its own schedule. Use for monitoring: a topic, a competitor, a regulation, a product.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'lang': {'type': 'string', 'maxLength': 2, 'minLength': 2}, 'label': {'type': 'string', 'maxLength': 100}, 'query': {'type': 'string', 'maxLength': 500, 'minLength': 1}, 'category': {'type': 'string'}}, 'additionalProperties': False}
Añadido
index_stats
17 de September de 2026 a las 12:53
Añadido
list_sites
17 de September de 2026 a las 12:53
Añadido
delete_watch
17 de September de 2026 a las 12:53
Añadido
list_watches
17 de September de 2026 a las 12:53
Añadido
check_watch
17 de September de 2026 a las 12:53
Añadido
watch_query
17 de September de 2026 a las 12:53
Añadido
source_profile
17 de September de 2026 a las 12:53
Añadido
find_passages
17 de September de 2026 a las 12:53
Añadido
search_batch
17 de September de 2026 a las 12:53
Añadido
find_similar
17 de September de 2026 a las 12:53
Añadido
fetch_pages
17 de September de 2026 a las 12:53
Añadido
fetch_page
17 de September de 2026 a las 12:53
Añadido
search_products
17 de September de 2026 a las 12:53
Añadido
search
17 de September de 2026 a las 12:53