LLMSkillHub
mirroredCopied from Vladimir-Human/ru-marketplace-mcp under MIT. Vladimir-Human has not claimed this page, and is not affiliated with LLM SkillHub.

vladimir-human / dns-connector

Use this skill when the operator needs DNS-Shop electronics data — search or a product card. Trigger on "днс", "dns-shop", "dns", "ноутбук днс". Always needs the operator's Chrome over CDP (Qrator proof-of-work). Skip for non-DNS tasks.

0
SKILL.md
3.2 KB

DNS-Shop Connector

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 page
  • dns_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__prev
    renders a bare 54 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.