Reads DNS-Shop inside the operator's Chrome over CDP. Qrator's JavaScript proof-of-work answers every dynamic page with HTTP 401 + a challenge script — no header trick clears it, but a real Chrome executes it natively. The connector renders the page and reads the DOM.
When to use
- Search DNS electronics catalog by text
- One product's price, old price, availability
Tools available
dns_search(query)— tiles from the rendered search pagedns_card(product_url)— one card. The URL carries/product/<id>/, where the id is a 16-hex string:/product/b7a1667f9b19ed20/. A bare id also works.
Not an MCP tool: dns_selfcheck() is a tri-state canary. It is CLI-only —
marketplace-mcp doctor runs every connector's canary at once.
A green selfcheck does NOT mean the data is right
This connector is why that sentence appears throughout this repo. In July 2026
the product-id regex was fixed, search began returning 24 links, and
dns_selfcheck went green — while every item still came back with
title: null and price: null. The transport was fine; the parser understood
nothing.
dns_selfcheck answers one question: did the page load and did the extractor
return a shape. If a number has to be trusted, open the product page in the same
Chrome and read it.
The price on a DNS tile is not the smallest number on it
Three traps, all confirmed against the live grid on 2026-07-28:
- An instalment sits next to the price. A tile showing
58 999 ₽also showsот 5 751 ₽/ мес.. Anything that takes the minimum reports the monthly payment — a number that validates, looks plausible and is wrong. The extractor reads the named price node and skips instalment and bonus nodes. - The strikethrough price carries no currency glyph —
.product-buy__prevrenders a bare54 999, so a filter keyed on₽never sees it. - The first product anchor in a tile is the image link, which has no text.
Tiles are selected by the exact BEM block
.catalog-product, never by walking up from an anchor.
price_rub is None when no price could be read — never 0, never a guess. If
a whole page comes back unpriced the response carries a no_prices_on_page
warning: that is drift to investigate, not "free".
Gotchas
- The first navigation pays the proof-of-work and is slow; later reads on the same session are fast.
- Bursts get throttled by Qrator and degrade to
transport_down. That is rate-limiting of the browser, not a parser fault — pace the calls. - From a datacenter address the site answers 401, so there is nothing to verify there. This connector is only meaningful from the operator's own machine.
DSH activation
In DeepSeek Harness, the default profile exposes only compare_prices and
compare_sources through the cheap compare mount. Per-marketplace tools and
marketplace_sources require RU_MARKETPLACE_MCP_FULL=1 and a profile restart;
do not call them in the default mode.