packages/dsh-skill-explorer
zhu1090093659/dsh-web技能中心:按来源分级浏览已加载的全部 skill,启用/禁用模型调用、创建新技能、删除进可恢复回收站。
面向十一家电商平台的技能与可选 MCP 行:跨 Wildberries、Detsky Mir、Yandex Market 比价,以及各平台(含 Ozon、Avito、AliExpress)的搜索、商品卡与评论。安装后 14 个技能立即可用;两行 MCP 默认关闭,需将 RU_MARKETPLACE_MCP_DIR 指向本地克隆,该克隆需要 Python 3.12+ 与 uv。
Read-only MCP servers for Russian marketplaces: prices, stock, ratings, reviews and cross-marketplace price comparison. This bundle ships 15 Agent Skills plus three mutually exclusive MCP server rows that are off by default.
An MCP row that is always mounted is paid on every request, because the harness registers the schema of every tool in the session context. Measured over the stdio MCP wire with scripts/mcp_wire.py:
Mode · Cost while mounted · Model-facing tools Skills only (default) · 15 skill catalog entries; no MCP schemas · 0 compare-mcp (recommended) · ~1.8k tokens per request · 4 decision-mcp (shortlist inspection) · ~2.1k tokens per request · 5 marketplace-mcp (full) · ~16.3k tokens per request · 40
The 11 *_selfcheck tools that previously inflated the full server to 45 tools are now CLI-only (marketplace-mcp doctor); only model-facing tools are published over MCP.
dsh)uvuv run --directory )
web is the profile dsh ships with a UI; usewhichever profile you actually run — a bare profile that dsh auto-creates on first use carries no app and cannot be launched):
dsh plugin --profile web add github:Vladimir-Human/ru-marketplace-mcp#path:/dshThe 15 skills appear immediately. No MCP server starts yet.
git clone https://github.com/Vladimir-Human/ru-marketplace-mcp.git
cd ru-marketplace-mcp
uv sync --frozenprofile. On Windows PowerShell:
$env:RU_MARKETPLACE_MCP_DIR = "C:\path\to\ru-marketplace-mcp"On POSIX shells:
export RU_MARKETPLACE_MCP_DIR=/path/to/ru-marketplace-mcpWith only RU_MARKETPLACE_MCP_DIR set, the recommended compare mode activates: compare_prices, compare_sources, compare_verify_offer, and compare_browser_snapshot (under the client's rumarket namespace).
Set RU_MARKETPLACE_MCP_DECISION=1 to add decision_inspect without mounting every source tool. If both decision and full flags are set, full wins. Only one MCP row is active: full, otherwise decision, otherwise compare.
With CHROME_CHALLENGE_HANDOFF_S=120, supported DOM challenges can retain their owned browser tab. A client/model that accepts MCP images can call compare_browser_snapshot(handoff_id) using the handle in the error or comparison outcome. It receives a bounded JPEG viewport and capture metadata directly; no separate OCR model or service is invoked. The handle only works in the same MCP session and does not extend expiry. Text-only clients should skip this tool.
Set one more variable before starting dsh:
$env:RU_MARKETPLACE_MCP_FULL = "1" # PowerShellexport RU_MARKETPLACE_MCP_FULL=1 # POSIX shellThe enabled row then changes from compare-mcp (4 tools) to marketplace-mcp (40 tools). All three rows share serverName: rumarket, and their disabled conditions are mutually exclusive, so exactly one server instance runs at a time.
Remove the bundle from the profile and restart it:
dsh plugin --profile web remove ru-marketplace-mcp-dshNo MCP process survives profile restart without RU_MARKETPLACE_MCP_DIR.
Since v1.8.0 every release tag builds a stdio image and proves it with a real MCP session over docker run --rm -i before publishing to the MCP Registry: initialize, tools/list and a marketplace_sources call. Use the published GHCR image instead of a local clone:
- id: ru-marketplace-docker
name: '@deepseek-ai/dsh-mcp-client'
disabled: false
config:
serverName: rumarket
transport: stdio
command: docker
args:
- run
- --rm
- -i
- ghcr.io/vladimir-human/ru-marketplace-mcp:2.5.3
failOnStartupError: falseThe image defaults to the unified server. Its tool set matches that release tag; unreleased tools in this source checkout are not present in older images.
Main repository: