MCP 服务器

Iskat — Russian-language web search for agents

io.iskat/webdex
电商与零售 搜索与研究 不可用 MCP 2025-11-25

此 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.
输入模式
{'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.
幂等
输入模式
{'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.
只读
输入模式
{'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.
只读
输入模式
{'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.
只读
输入模式
{'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.
只读
输入模式
{'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.
只读
输入模式
{'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.
只读
输入模式
{'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.
只读
输入模式
{'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.
只读 可访问外部资源
输入模式
{'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.
只读
输入模式
{'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.
输入模式
{'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.
只读
输入模式
{'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.
幂等
输入模式
{'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}
已添加
index_stats
2026年9月17日 12:53
已添加
list_sites
2026年9月17日 12:53
已添加
delete_watch
2026年9月17日 12:53
已添加
list_watches
2026年9月17日 12:53
已添加
check_watch
2026年9月17日 12:53
已添加
watch_query
2026年9月17日 12:53
已添加
source_profile
2026年9月17日 12:53
已添加
find_passages
2026年9月17日 12:53
已添加
search_batch
2026年9月17日 12:53
已添加
find_similar
2026年9月17日 12:53
已添加
fetch_pages
2026年9月17日 12:53
已添加
fetch_page
2026年9月17日 12:53
已添加
search_products
2026年9月17日 12:53
已添加
search
2026年9月17日 12:53