Skip to main content
Glama
neuratechcompany-ops

Kettu Marketplace Intelligence

Ozon Self-check

ozon_selfcheck
Read-onlyIdempotent

Detects Ozon structural drift by checking live widget shapes against critical expectations, flagging vanished widgets before parser breakage. Tri-state verdicts separate transport issues from drift.

Instructions

Structural drift canary for Ozon (tri-state: success / drift_detected / inconclusive). Fetches live search/card/reviews + a non-default reviews sort and compares the widget-prefix SHAPE against the critical set, plus a parse smoke. Detects "a widget we depend on vanished" BEFORE it silently breaks a parser.

Tri-state (audit 2026-06-01): a Cloudflare 403 / CDP-down / non-200 / non-JSON body is inconclusive (transport — Ozon's tier-1 curl_cffi is often blocked), NEVER drift. Only a reached-200 JSON body missing a critical widget or failing the parse smoke is drift. The reviews_sort subcheck exercises the sort-param path (score_asc) that ozon_reviews pagination depends on.

Return Format

OzonSelfcheckResponse: {status, healthy, connector, checks, server_version, server_started_at, process_id} — tri-state per subcheck (healthy/drift/inconclusive). Inconclusive and drift_detected are NOT errors; they are valid canary verdicts returned as a normal response.

Error Format

Raises ToolError (TransportDownError) ONLY on an unexpected internal bug that prevents the canary from producing any verdict. Transport/block/parse failures of individual sub-checks map to inconclusive entries, not errors.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
checksNoPer-subcheck results.
statusNoOverall verdict: success, drift_detected, or inconclusive.
healthyNoWhether all checks are healthy.
connectorNoConnector name.
process_idNoOS process id.
tool_countNoNumber of MCP tools registered on the server.
config_loadedNoWhether settings loaded successfully from env/defaults.
server_versionNoConnector server version.
server_started_atNoServer start timestamp (UTC ISO-8601).

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observedv1.2.2

TDQS

A4.6/5.0
Behavior5/5

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

Even with readOnlyHint, idempotentHint, and openWorldHint annotations present, the description adds substantial behavioral detail: exact tri-state semantics, what counts as inconclusive vs drift, handling of Cloudflare 403 / CDP-down / non-200 / non-JSON, and the error contract. It also clarifies that inconclusive and drift_detected are valid normal responses, not errors.

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

Conciseness4/5

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

The description is longer than average but every section earns its place: purpose, tri-state rules, return format, and error semantics are all behaviorally relevant. The main purpose is front-loaded and the structured headings make the detailed tri-state and error contracts easy to scan.

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

Completeness5/5

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

For a zero-parameter self-check tool with an output schema and read-only/idempotent annotations, the description covers everything an agent needs: what it checks, what each verdict means, how transport failures are classified, and when an error is actually raised. No critical gap remains.

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

Parameters4/5

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

The tool has zero parameters and schema coverage is 100%, so there is no parameter meaning to add. The description incidentally clarifies that the tool fetches live data and runs internal subchecks, which is useful context beyond the empty input 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 identifies the tool as a structural drift canary for Ozon with a tri-state outcome, naming the specific resources checked (live search, card, reviews, non-default reviews sort). It distinguishes itself from sibling review/search tools by emphasizing the canary's role in detecting vanished widgets before parsers break.

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

Usage Guidelines4/5

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

The description explains that this tool is a pre-emptive drift check rather than a data-fetching tool, and even notes that the reviews_sort subcheck exercises the path on which ozon_reviews pagination depends. It doesn't explicitly list alternative tools to use instead, but the purpose and positioning against siblings are clear enough.

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/neuratechcompany-ops/kettu-marketplace-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server