Skip to main content
Glama
vladthecto

hermes-marketplace-tools

by vladthecto

hermes-marketplace-tools

Тулы поиска/сравнения товаров на WildberriesOzon — в планах) для агента Hermes. Подключаются как MCP-сервер. Сравнение и рекомендации делает сам LLM — тулы только отдают нормализованные данные.

Статус: Wildberries и Ozon — готовы оба (search/card/reviews на каждом). Один запрос marketplace="all" ищет на обоих. См. SPEC.md.

Тулы

Тул

Что делает

marketplace_search

поиск товаров → нормализованная выдача (цена, рейтинг, отзывы, ссылка, превью)

get_product_card

полная карточка: характеристики, описание, URL картинок

get_reviews

отзывы (сортировка по полезности/свежести)

Related MCP server: ProductLens-MCP

Установка

git clone <repo> hermes-marketplace-tools
cd hermes-marketplace-tools
uv venv && uv pip install -e .
uv run python -m camoufox fetch   # бинарь Firefox для Ozon (~300 МБ, разово)

Ozon ходит через headless-браузер (camoufox). WB работает по HTTP и браузера не требует. playwright запинен на 1.50.0 — новее ломает протокол с firefox-сборкой camoufox.

Конфигурация

Прокси (SOCKS5, RU-IP) задаётся переменной окружения PROXY_URL. Не коммить креды.

export PROXY_URL="socks5h://USER:PASS@pool.proxy.market:10000"

Подключение к Hermes

В ~/.hermes/config.yaml:

mcp_servers:
  marketplace:
    command: "/path/to/hermes-marketplace-tools/.venv/bin/python"
    args: ["-m", "mcp_server.server"]
    env:
      PROXY_URL: "socks5h://USER:PASS@pool.proxy.market:10000"

После правки конфига перезапусти Hermes — MCP-серверы загружаются на старте. Тулы появятся как mcp_marketplace_marketplace_search и т.д.

Локальный прогон (без Hermes)

PROXY_URL="socks5h://..." .venv/bin/python -m mcp_server.server   # запустит MCP по stdio

Для проверки логики ядра — см. marketplace_core (можно импортировать MarketplaceService напрямую; так же его будет использовать будущий Telegram-бот).

Заметки по WB (важно при поломках)

  • Весь трафик идёт через прокси (RU-IP); цены приходят в копейках.

  • card.wb.ru/v4 отдаёт 403 на TLS-профиль Chrome — клиент использует impersonate="safari".

  • URL картинок собираются по схеме basket-{NN}.wbbasket.ru/...; номер NN подбирается self-healing и кэшируется в ~/.hermes/marketplace_cache.sqlite.

  • Эндпоинты WB неофициальные и иногда меняют версии — см. SPEC.md (Приложение A).

Available Tools

3 tools
get_product_cardC

Полная карточка: характеристики, описание, URL изображений.

ParametersJSON Schema
NameRequiredDescriptionDefault
id_or_urlYes
marketplaceYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided. The description only lists what the card includes, with no mention of permissions, side effects, rate limits, or response format. Minimal behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single short sentence; concise but lacks necessary details. Could be expanded without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, no annotations, and undocumented parameters, the description fails to provide sufficient context for correct usage. Missing return format, parameter constraints, and behavioral notes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% description coverage. The description does not clarify the parameters: 'id_or_url' could be ambiguous (ID or URL?), and 'marketplace' values are unspecified. No parameter guidance beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a full product card with characteristics, description, and image URLs. It uses specific verb-resource phrasing and distinguishes from sibling tools (get_reviews for reviews, marketplace_search for search).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: use when needing full product details. However, no explicit guidance on when not to use or alternatives beyond sibling tool names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_reviewsC

Отзывы о товаре.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNouseful
limitNo
id_or_urlYes
marketplaceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It only states the tool fetches product reviews, omitting details like pagination (limit parameter), sorting behavior (sort parameter), error handling, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (three words), which is concise but too sparse. It lacks critical details that would make it helpful, falling short of earning its place as the sole explanatory text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 4 parameters (2 required), a sort enum, a default limit, and an output schema, the description is insufficient. It does not explain parameter usage, output structure, or behavior, making it incomplete for effective agent invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It provides no information about the four parameters (sort, limit, id_or_url, marketplace), such as what values are valid or how they affect results.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Product reviews' clearly indicates the resource (reviews) and implies the verb 'get' from the tool name. It distinguishes from siblings like get_product_card (product details) and marketplace_search (searching). However, it does not explicitly differentiate usage scenarios.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., get_product_card for product info, marketplace_search for discovery). No context about prerequisites or limitations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv0.0.2
    • First observedget_product_card
    • First observedget_reviews
    • First observedmarketplace_search

TDQS

B3.2/5.0

Scored across 3 tools

Disambiguation5/5

Each tool targets a distinct function: product details (get_product_card), reviews (get_reviews), and search (marketplace_search). There is no overlap or ambiguity.

Naming Consistency4/5

Two tools follow a 'get_' pattern, but 'marketplace_search' deviates slightly by being noun_verb. The inconsistency is minor and readability remains high.

Tool Count4/5

Three tools is a reasonable number for a focused marketplace-browsing server. The scope is narrow but well-defined; no tool feels superfluous.

Completeness3/5

The set covers search, product card retrieval, and reviews, but lacks mutation operations (e.g., add to cart, compare) and entity listing (e.g., categories). Gaps exist but core browsing workflows are covered.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

  • Pay-per-use tool marketplace for AI agents. Search, price-check, and call APIs via MCP.

  • Your agent needs marketplace data — what a product costs on Amazon and Google Shopping, who the sellers are, what reviewers actually complain about. **What you can ask for** • "What is this ASIN's price history, rating and seller list?" • "Who else sells this product, and at what price?" • "Pull the reviews for this product and group the complaints." • "What comes up on Google Shopping for this query in the UK?" • "Compare these products across both marketplaces." **How to use it** Point any MCP client at https://mcp.aisa.one/seo-merchant/mcp and sign in with OAuth — there is no key to create or paste. 22 tools: Amazon products, ASIN detail and sellers; Google Shopping products, product info, sellers and reviews; live and queued forms, with raw HTML where you need it. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Price the product here, then ask the same agent what the brand's site traffic or ad spend looks like — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/seo/mcp for all of it at once — rankings, keywords, backlinks, site health and AI-answer visibility across DataForSEO, Semrush and Ahrefs.

  • Real-time Amazon, WIPO & PACER data for AI agents — 19 tools via the MCP protocol.

  • Shopping MCP for AI agents: search, compare, Amazon buy links. Auto-register.

Related MCP Servers