rozetka-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@rozetka-mcpfind Deye SE-F16-C on Rozetka under 80000 UAH"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
rozetka-mcp
Browser-free MCP server for Rozetka.ua.
It uses Rozetka's public-facing JSON backends directly. There is no Playwright, Chromium, Bright Data, browser profile, cookie jar, GUI automation or search-engine dependency.
Status: alpha / reverse-engineered integration. Rozetka does not publish these buyer/catalog endpoints as a supported public API. Endpoint shapes and anti-bot policy can change.
What is reliable
The core path uses endpoints that are live-tested from GitHub Actions:
search.rozetka.com.ua— product search, product ids, filters, category suggestionsproduct-api.rozetka.com.ua— product description and characteristics
Some richer Rozetka hosts such as xl-catalog-api.rozetka.com.ua, common-api.rozetka.com.ua, and the storefront itself can return a Cloudflare managed challenge from datacenter IPs. Rich catalog hydration is therefore best-effort only and never required for the core tools to return safely.
Related MCP server: dns-customer-mcp
MCP tools
rozetka_search_products— search products, filters/sort, optional best-effort rich hydrationrozetka_get_product— product id/URL lookup plus description and characteristics by defaultrozetka_get_products— resolve up to 60 product ids; rich hydration when available, safe id fallback otherwiserozetka_list_filters— live filter metadata for a queryrozetka_list_categories— category suggestions for a query from the search APIrozetka_resolve_url— product/category URL → id, offlinerozetka_saved_search_listrozetka_saved_search_createrozetka_saved_search_runrozetka_saved_search_delete
Install from npm
After the first npm release, no clone/build step is needed.
npx
npx -y rozetka-mcpGlobal install
npm install -g rozetka-mcp
rozetka-mcpMCP configuration
{
"mcpServers": {
"rozetka": {
"command": "npx",
"args": ["-y", "rozetka-mcp"]
}
}
}Install from source
Requirements: Node.js 20+.
git clone https://github.com/sdziupin/rozetka-mcp.git
cd rozetka-mcp
npm install
npm run check
npm test
npm run build
npm startDevelopment:
npm run dev
npm run smoke
npm run pack:checkSource checkout MCP config:
{
"mcpServers": {
"rozetka": {
"command": "node",
"args": ["/absolute/path/to/rozetka-mcp/dist/index.js"]
}
}
}Search example
{
"query": "Deye SE-F16-C",
"min_price": 40000,
"max_price": 80000,
"seller": "rozetka",
"sort": "price_asc",
"limit": 20
}Use rozetka_list_filters first for category-specific attributes, then pass the exact Rozetka filter keys/values through filters.
Some high-level queries can be converted by Rozetka into a category redirect instead of a product list. In that case the tool returns navigate_to rather than pretending it found products.
Configuration
ROZETKA_LANGUAGE=ua
ROZETKA_COUNTRY=UA
ROZETKA_FRONT_TYPE=xl
ROZETKA_HTTP_TIMEOUT_MS=15000
ROZETKA_HTTP_RETRIES=2Advanced endpoint overrides are available in .env.example.
CI
.github/workflows/ci.yml validates:
TypeScript typecheck
unit tests
production build
npm package dry-run
built CLI entrypoint
Docker image build
.github/workflows/live-smoke.yml validates the real Rozetka core API path on pushes that affect runtime behavior, on manual dispatch, and weekly.
The live smoke intentionally tests only the public search/product endpoints that this package promises as its reliable core. Cloudflare-protected optional hydration is fail-soft and is not treated as a release blocker.
Publishing to npm
Publishing is handled by .github/workflows/publish.yml.
1. Create an npm token
Create an npm access token with permission to publish rozetka-mcp.
2. Add the GitHub Actions secret
In the GitHub repository:
Settings
→ Secrets and variables
→ Actions
→ New repository secretCreate:
Name: NPM_TOKEN
Value: <your npm publish token>The workflow maps this secret to NODE_AUTH_TOKEN. The token is never stored in the repository.
3. Release
Update package.json version, for example:
npm version patch --no-git-tag-versionCommit and push the version change, then create a GitHub Release with a tag matching the version exactly:
package.json: 0.1.0
release tag: v0.1.0On a published GitHub Release the workflow:
installs dependencies
typechecks
runs unit tests
builds
validates the npm tarball
runs the live Rozetka smoke test
verifies
vX.Y.Zmatchespackage.jsonpublishes with
npm publish --access public --provenance
The workflow can also be started manually. Manual runs default to validation-only; set the publish input to true to publish the current package version.
Buyer account actions
Authenticated buyer features are intentionally not implemented:
wishlist mutation
cart mutation
order history
checkout/payment
messages
They should only be added after a stable HTTP flow is independently verified. This project will not emulate them with Playwright/Chromium.
Operational model
browser-free HTTP only
no credentials required for marketplace tools
no checkout/payment automation
retries only for network errors, HTTP 429 and 5xx
maximum batch size: 60 product ids
Cloudflare-protected enrichment fails soft
description/characteristics use the independently live-tested product API
no claim that reverse-engineered endpoints are an official Rozetka API
References
The implementation was cross-checked against community Rozetka integrations including 2BAD/rozetka, ALERTua/rozetka_api, and joshua-light/rozetka-mcp, then implemented as a small TypeScript MCP-native client.
License
MIT
Available Tools
10 toolsrozetka_get_productA
Resolve one Rozetka product by numeric id or product URL. Description and characteristics are fetched by default from product-api; blocked optional catalog hydration does not fail the lookup.
| Name | Required | Description | Default |
|---|---|---|---|
| id_or_url | Yes | ||
| include_description | No | ||
| include_characteristics | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that description and characteristics are fetched by default and that a blocked optional catalog hydration does not fail the lookup — a non-obvious degradation guarantee. However, it omits auth/permission requirements, rate limits, and any hint of return shape, which are material for a tool with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly packed sentences with no filler; the core resolution action and input modes lead, and the fallback behavior trails as supporting detail. Every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter, no-annotation, no-output-schema tool, the definition covers the primary action, the default hydration, and resilience to partial failure. It still leaves the two optional flags' full semantics and the response contents unaddressed, so an agent would have to probe to call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains id_or_url (id or URL) and that description/characteristics come back 'by default', which maps to the two boolean toggles, but it never states what suppressing them does or the accepted URL format. Partial compensation for a real coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Resolve') and singular resource ('one Rozetka product') and names both accepted input forms (numeric id or product URL). This cleanly separates it from the plural sibling rozetka_get_products and from rozetka_resolve_url, without needing to open the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies retrieval context through the id-or-URL input and the default hydration behavior, but it never states when to choose this tool over rozetka_get_products or rozetka_resolve_url, nor any prerequisites or when-not-to-use conditions. Usage is inferable but not guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rozetka_get_productsB
Resolve up to 60 Rozetka product ids. Rich catalog hydration is attempted when available and falls back to public search/id records when blocked.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries the full burden, and it does disclose genuinely useful behavior: rich catalog hydration is best-effort and degrades to public search/id records when blocked. That is real value beyond schema, but it omits what happens to unresolvable ids, error/partial-failure behavior, and whether the operation is read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with zero filler; the count constraint and the fallback behavior are both front-loaded and immediately actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema and no annotations, the description covers the batch cap and the hydration/fallback path, but leaves return shape, partial-failure handling, and safety profile unstated. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and there is one parameter, so the description must compensate. It restates the 1-60 count ('up to 60 product ids'), which is already encoded in maxItems/minItems, and does not clarify that ids may be integers or non-empty strings as the schema's anyOf allows. Minimal added meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Resolve') and resource ('Rozetka product ids') plus the batch cap, which distinguishes it from the singular sibling rozetka_get_product. However 'resolve' is slightly ambiguous about what the resolution produces (raw ids vs hydrated records), so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this batch tool versus rozetka_get_product for a single id or rozetka_search_products for discovery. The batch nature is only implied by 'up to 60 product ids' and nothing is said about prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rozetka_list_categoriesB
Return category suggestions from Rozetka's search API for a text query. Full fat-menu enumeration is intentionally not used because common-api may be Cloudflare-protected.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It does disclose genuinely useful behavior: results are suggestions derived from a search API, not a full category tree, and the common-api path is Cloudflare-protected. It omits return shape, ordering, and whether suggestions map to canonical category IDs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core purpose front-loaded and the rationale second. No filler, though the second sentence is implementation trivia that an agent may not need for invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with no output schema, the description covers what comes back at a high level but not its structure or the meaning/caps of 'limit'. Adequate but leaves real gaps an agent must guess at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for two parameters. The description only implies that 'query' is free text; it says nothing about 'limit' (default 100, max 500) or the constraints on query length, so it fails to compensate for the documentation gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource ('Return category suggestions ... for a text query') and even clarifies the underlying mechanism (search API rather than fat-menu), which is unusual for a tool named list_categories. It does not distinguish itself from any named sibling such as rozetka_list_filters or rozetka_search_products, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains why the tool works this way (fat-menu enumeration avoided due to Cloudflare), but gives no guidance on when to call this versus siblings like rozetka_search_products or rozetka_list_filters, and no prerequisites or exclusions from an agent's decision perspective.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rozetka_list_filtersA
Return Rozetka's live filter metadata/options for a search query. Use this before passing category-specific keys in rozetka_search_products.filters.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| category_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It adds the useful behavioral cue that the data is 'live' metadata, but discloses nothing about permissions, rate limits, or what the returned metadata looks like. Adequate but with clear gaps for a zero-annotation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences. Purpose is front-loaded and the usage instruction follows with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should say more about what 'filter metadata/options' contains and how category_id affects results. The core call path is clear, but key details for correct invocation are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only hints at the query parameter ('for a search query') and says nothing about the optional category_id, its meaning, or how it narrows results. Roughly half the parameters remain unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: return live filter metadata/options for a search query. It is clearly distinguishable in intent from rozetka_search_products or rozetka_list_categories, though it doesn't explicitly contrast itself with those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit sequencing guidance ('Use this before passing category-specific keys in rozetka_search_products.filters') and names the exact sibling whose parameter it feeds. An agent knows precisely when to call this and why.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rozetka_resolve_urlA
Resolve a Rozetka product URL (/p/) or category URL (/c/) without a network request.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It usefully discloses that the operation is network-free, implying local/read-only and fast behavior, but does not describe error handling, malformed-URL behavior, or the return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence that states the verb, accepted URL forms, and the key no-network constraint. There is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool complexity is low, but with no annotations and no output schema, the description should explain what resolving yields, such as an ID, type, or object. It adequately covers accepted inputs and local behavior, but leaves return value and failure behavior for the agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the single 'url' parameter is undocumented in the schema. The description compensates by naming accepted path patterns (/p<ID>/ and /c<ID>/) for product and category URLs, adding meaningful semantics beyond a bare string, though it lacks full-URL examples and invalid-input details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Resolve') and resources ('product URL' or 'category URL') with path patterns. It implies local parsing via 'without a network request', which distinguishes it from network-fetching siblings, but it does not name alternatives or state the resolved output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: use when you have a Rozetka product or category URL and want to resolve it locally, and 'without a network request' signals preferring this over fetching tools when only parsing is needed. No explicit when-not-use guidance or named alternatives are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rozetka_saved_search_createC
Save a structured Rozetka search locally for repeat execution.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| search | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full behavioral burden. 'Save locally' usefully signals client-side persistence rather than server state, but it omits whether an existing name is overwritten, whether a handle/id is returned for rozetka_saved_search_run, and any validation or storage-limit behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight sentence with the verb and purpose front-loaded and no filler. It is lean, though the brevity is part of why other dimensions are thin.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A mutation tool with no annotations and no output schema, wrapping a nested search object with 9 sub-fields. The description says nothing about what is returned, how the saved search is later referenced by run/delete/list, or how it interacts with name collisions, leaving an agent under-informed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Top-level schema description coverage is 0%: neither 'name' (uniqueness, overwrite semantics) nor the 'search' object is explained in the description beyond the word 'structured'. With low coverage the description should compensate, and it does not, even though the nested schema partially self-documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (save) and resource (a structured Rozetka search) plus the intent (repeat execution), which separates it from rozetka_search_products (one-off search) and rozetka_saved_search_run (execute a saved one). It stops short of naming those siblings explicitly, so an agent still has to infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'For repeat execution' implies the condition for using it over a direct search, but there is no explicit when-to-use statement, no mention of the companion tools (run/list/delete), and no note on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rozetka_saved_search_deleteC
Delete a locally saved Rozetka search.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It discloses only that the saved search is 'local', which usefully implies no remote/server-side effect, but says nothing about irreversibility, error behavior for an unknown id, or whether other saved searches are affected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, and the action is front-loaded. It is efficient, though arguably too terse for the gaps it leaves.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A destructive-looking operation with no annotations, no output schema, and an undocumented id parameter leaves key information missing: where the id comes from, whether deletion is permanent, and what happens on failure. The description is inadequate for a delete tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description never mentions the single required 'id' parameter, so it does not tell the agent what the id identifies or where to obtain it (e.g., from rozetka_saved_search_list). The schema supplies only type and minLength constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Delete') and resource ('locally saved Rozetka search'), which is unambiguous against siblings like rozetka_saved_search_create/run/list. It does not explicitly contrast itself with those siblings, but the action and target are clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus alternatives, nor on prerequisites such as obtaining the id from rozetka_saved_search_list before deleting. The word 'locally' faintly scopes the operation but no explicit when/when-not is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rozetka_saved_search_listB
List locally saved Rozetka searches.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that these searches are stored 'locally' (implying a local store rather than a remote call), which is real behavioral context. However, it says nothing about read-only semantics, permissions, or failure modes when no saved searches exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no waste. It is appropriately sized for a zero-parameter list tool, though it is close to the minimum needed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-param list tool with no output schema and no annotations, the description is minimally adequate but omits any hint of what is returned or what the local store contains. An agent has enough to invoke it but not to reason about results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there are no parameter semantics to document; the baseline for a no-parameter tool applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('locally saved Rozetka searches'), so an agent can distinguish it from rozetka_saved_search_create, _delete, and _run. It does not explicitly name siblings, but the resource is precise enough that differentiation is easy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this versus the sibling saved-search tools or rozetka_search_products. Usage is only implied by the name and the word 'saved'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rozetka_saved_search_runC
Run a locally saved Rozetka search.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does not state that this is a read-only lookup, whether the saved search criteria are re-executed against live data, or what the invocation returns, leaving the agent to guess at side effects and output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence that wastes nothing, but it is terse to the point of under-specification rather than genuinely efficient structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and an undocumented required parameter, the description is too thin. It should at minimum explain the id's provenance and what a successful run returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single parameter 'id' is undocumented. The phrase 'locally saved' hints that id refers to a stored search, but it never says where the id comes from (presumably rozetka_saved_search_list) or what format it takes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (Run) and resource (a locally saved Rozetka search), which is enough to place it against siblings like rozetka_saved_search_create/delete/list. It does not, however, spell out what 'running' produces (a product result set vs. re-persisting the query).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of the alternative tools. An agent is left to infer that this is the execution counterpart to saved_search_create/list and that plain rozetka_search_products exists for ad-hoc queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rozetka_search_productsB
Search Rozetka.ua through its public-facing JSON search backend. No browser automation. Rich hydration is best-effort and never required.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| sort | No | relevance | |
| limit | No | ||
| query | Yes | Product search query. | |
| seller | No | Rozetka seller filter, e.g. 'rozetka', when supported by the backend. | |
| filters | No | Exact Rozetka query/filter parameters. Discover valid keys/values with rozetka_list_filters first. | |
| hydrate | No | Try rich catalog hydration when available; automatically falls back to public search results if Rozetka blocks the catalog host. | |
| max_price | No | Client-side maximum price filter after Rozetka search/hydration. | |
| min_price | No | Client-side minimum price filter after Rozetka search/hydration. | |
| category_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose useful traits: no browser automation, best-effort hydration, and an automatic fallback. However it omits rate limits, whether the endpoint can fail/be blocked in other ways, and any auth requirements, so it is only partially transparent for a network-scraping tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded sentences that contain no filler. It is efficient, though the final sentence about hydration is fairly thin and the whole thing borders on under-specification for a 10-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-param, nested-object, no-output-schema, no-annotation tool, the description covers mechanism and fallback but leaves pagination semantics, filter discovery ordering, and failure modes unaddressed. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%, above the midpoint, so baseline is roughly 3. The description adds only a note that hydration is best-effort (reinforcing the hydrate param), and says nothing about page, sort, limit, seller, or the filter-discovery workflow beyond what the schema already encodes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Search Rozetka.ua') and identifies the mechanism (public-facing JSON search backend) plus a negative constraint ('No browser automation'). It does not, however, differentiate itself from siblings like rozetka_get_products or rozetka_get_product, so the agent must infer that this is the query-driven search path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no named alternatives. The agent is not told when to pick this over rozetka_get_products, nor that rozetka_list_filters must run first to populate the filters object — that hint only lives in the schema, not the description.
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.
10 tool updates
v0.1.0- First observed
rozetka_get_product - First observed
rozetka_get_products - First observed
rozetka_list_categories - First observed
rozetka_list_filters - First observed
rozetka_resolve_url - First observed
rozetka_saved_search_create - First observed
rozetka_saved_search_delete - First observed
rozetka_saved_search_list - First observed
rozetka_saved_search_run - First observed
rozetka_search_products
TDQS
Scored across 10 tools
Most tools target distinct resources or actions, but get_product vs get_products and get_product vs resolve_url for URL inputs create mild overlap. Descriptions generally clarify boundaries, so misselection risk is low but not zero.
All names use snake_case with a rozetka_ prefix, which is good. However, product tools follow verb_noun (get_product, search_products, list_filters) while saved-search tools follow noun_verb (saved_search_list, saved_search_create, saved_search_delete, saved_search_run), creating a clear mixed convention.
10 tools are well-scoped for a product search/catalog and saved-search wrapper. The set covers core retrieval, search support, URL resolution, and saved-search lifecycle without excessive or trivial tools.
The surface covers search, single/batch product fetch, filters, categories, URL resolution, and saved-search create/list/run/delete. Minor gaps remain: no update/rename for saved searches and no dedicated category-browse operation beyond search.
Maintenance
Related MCP Connectors
Search ~8.5M products from 2,500+ Central European e-shops. Semantic, keyword, GTIN lookup.
Walmart search, product pages and customer reviews on walmart.com and walmart.ca, as JSON.
Amazon keyword search, product details, seller profiles and seller catalogues, as structured JSON.
The public product catalogue and collections of any Shopify storefront, as structured JSON.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables querying and comparing prices, availability, ratings, reviews, and seller details from major Russian and Chinese marketplaces (Wildberries, Ozon, Yandex Market, and others) without requiring API keys, via a unified MCP interface.425MIT
- AlicenseAqualityBmaintenanceEnables querying DNS Shop product data via MCP: search, product details, reviews, specifications, variants, categories, brand catalogs, availability by city, and store listings.1218MIT
- AlicenseAqualityCmaintenanceEnables read-only search and retrieval of the public Reknihy.cz book catalog, including filtering, sorting, ISBN lookup, category browsing, and access to product details such as price, availability, and images.4ISC
- AlicenseAqualityAmaintenanceEnables MCP clients to search Walmart products by keyword or category, retrieve product details including the buy box and other sellers, and page through customer reviews with filters, all as structured JSON without a Walmart developer account.334 npm137 PyPI10MIT