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 / marketplace

Use this skill when the operator wants the full marketplace mount, routing metadata, or client setup. Trigger on "один MCP", "все источники", "marketplace_sources", "настроить marketplace", or "full marketplace". Route price questions such as "где дешевле" and "compare prices" to compare-prices; skip single-source tasks.

0
SKILL.md
4.4 KB

Unified Marketplace Server

One server mounting every installed connector as a namespaced toolset:
wb_*, ozon_*, yandex_*, detmir_*, avito_*, taobao_*, megamarket_*,
lamoda_*, dns_*, citilink_*, aliexpress_*, cian_*, mpstats_* plus
compare_prices / compare_sources and its own marketplace_sources. Tool
names keep their prefixes, so habits and configs carry over — but the operator
wires a single marketplace entry instead of fourteen. The server exposes 40
tools: 39 mounted plus marketplace_sources. mpstats_* is the optional paid
source: without MPSTATS_MP_AUTH its tools answer auth_missing while
everything else is unaffected.

When to use

  • "Where is X cheapest" — compare_prices fans out across all searchable sources
  • Client setup: one config entry, not fourteen
  • Health overview: the CLI's doctor runs every selfcheck at once
  • A source came back empty and you can't tell installed-but-quiet from never-loaded
    → marketplace_sources

Tools

  • marketplace_sources() — no arguments; returns `{mounted, skipped,
    mountedcount, skippedcount, capabilities, server_version}.capabilities` is
    static routing metadata per source: access tier, CDP/login requirements, currency,
    text-search support, and whether the connector is mounted. skipped maps a source name to the
    import error that dropped it, usually a missing dependency. Connectors are imported
    defensively, so a missing dep removes a marketplace instead of killing the server —
    but from the client an absent source looks identical to one that found nothing.
    Call this to tell the two apart: a name in skipped was never queried at all.

Operator CLI

  • marketplace-mcp install [client] — print the exact mcpServers JSON to paste.
    From a source checkout it prints the real filesystem path of that checkout, so
    there's no /path/to/ru-marketplace-mcp placeholder to hand-edit; installed as a
    wheel, it prints the console-script paths on PATH instead. client must be one of
    claude, claude-code, cursor — an unknown name is rejected, not answered with
    a Claude block.

  • marketplace-mcp doctor [--status-file path] — per-source health plus a CDP
    session probe, with an optional machine-readable JSON snapshot for monitoring. Exit
    codes are meaningful for cron and CI: 0 everything healthy, 1 a parser drifted
    (the alarm — someone has to look), 2 nothing drifted but at least one source
    couldn't be judged (blocked, no CDP, wrong region). "Couldn't check anything" is a
    2, never a 0.

Gotchas

  • Recovery-aware clients should read source_outcomes.requires_user_action
    before scheduling retries. Keep answered sources visible, show the affected
    marketplace and challenge_type, and retry that source after the browser
    interaction completes. A challenge is not an empty product search. See the
    compare-prices skill for the retry contract. handoff_expires_at confirms that
    the source retained its tab; repeat the same operation in the same MCP session
    after browser action and before that expiry. See docs/CDP_SETUP.md for opt-in
    configuration and supported sources.

  • A source whose optional deps are missing is simply absent from the set —
    marketplace_sources says which and why.

  • Set MARKETPLACE_SOURCES on the unified server to mount only a comma-separated
    subset (wildberries,ozon,compare); unset or blank keeps every source. The
    aliases wb, ym/yandex, detmir, and ali work too. Unknown names fail
    at startup instead of silently producing a partial server, and deselected
    sources are reported with a deselected reason.

  • compare_prices ranks on everyday ruble prices; Taobao (CNY) is reported in
    price_native but never ranked against rubles.

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.