ozon-mcp
Provides integration with Ozon Seller & Performance APIs, enabling AI agents to access 466 API methods, execute calls with safety guards, perform automatic pagination, and run 13 ready-to-use analytical workflows for seller scenarios.
ozon-mcp
MCP server for the Ozon Seller & Performance APIs. Connect any AI agent to your Ozon cabinet in minutes.
ozon-mcp is a knowledge-rich MCP server that turns the entire Ozon seller toolkit into 15 high-leverage tools. AI agents (Claude, Cursor, Cline, Continue, Goose, Zed, …) can search the API in Russian or English, drill into any of 466 methods with a fully-resolved JSON Schema, and execute calls with built-in safety guards. Subscription- aware, automatic pagination over all 4 cursor styles, retry/back-off on 429s, and 13 ready-to-use analytical workflows.
Key facts: 466 indexed methods (420 Seller + 46 Performance), 55 sections, 5 subscription tiers modelled, 38 paginated endpoints auto-walked, 43 destructive methods double-gated, 13 curated workflows for typical seller scenarios.
Quick start
Prerequisites
Python 3.12 or 3.13
uvpackage manager — install withcurl -LsSf https://astral.sh/uv/install.sh | shOzon Seller API credentials (Client-Id + Api-Key) — get them at https://seller.ozon.ru/app/settings/api-keys
Installation
git clone https://github.com/PCDCK/ozon-mcp.git
cd ozon-mcp
uv syncVerify it works
uv run ozon-mcp --helpYou should see the FastMCP usage line. The server speaks the MCP stdio protocol — point any compatible client at it (instructions below).
Related MCP server: wildberries-mcp
Connecting to your AI agent
ozon-mcp uses the standard MCP stdio transport. Every example below exposes the same 15 tools — pick whichever client you already use.
Claude Desktop
Edit:
~/Library/Application Support/Claude/claude_desktop_config.json
(macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows).
{
"mcpServers": {
"ozon": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/ozon-mcp",
"run", "ozon-mcp"],
"env": {
"OZON_CLIENT_ID": "your-seller-client-id",
"OZON_API_KEY": "your-seller-api-key",
"OZON_PERFORMANCE_CLIENT_ID": "your-perf-client-id",
"OZON_PERFORMANCE_CLIENT_SECRET": "your-perf-secret"
}
}
}
}Claude Code (CLI)
cd /path/to/ozon-mcp
claude mcp add ozon -- uv run ozon-mcpOr add to ~/.claude/mcp.json with the same shape as the Claude
Desktop config above.
Cursor
Settings → MCP → Add new MCP Server, or edit ~/.cursor/mcp.json:
{
"mcpServers": {
"ozon": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/ozon-mcp",
"run", "ozon-mcp"]
}
}
}Windsurf
Edit ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"ozon": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/ozon-mcp",
"run", "ozon-mcp"]
}
}
}Cline (VS Code extension)
Cline → Settings → MCP Servers → Add:
{
"ozon": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/ozon-mcp",
"run", "ozon-mcp"]
}
}Continue.dev
Edit ~/.continue/config.json:
{
"experimental": {
"modelContextProtocolServers": [
{
"transport": {
"type": "stdio",
"command": "uv",
"args": ["--directory", "/absolute/path/to/ozon-mcp",
"run", "ozon-mcp"]
}
}
]
}
}Goose, Zed, or any other MCP client
Any client that speaks MCP stdio will work. Generic config:
command: uv
args: ["--directory", "/absolute/path/to/ozon-mcp", "run", "ozon-mcp"]
transport: stdio
env:
OZON_CLIENT_ID: ...
OZON_API_KEY: ...Browse the official MCP client list at https://modelcontextprotocol.io/clients.
Usage examples
All examples below show realistic responses copied from
tests/fixtures/responses/ — anonymized
identifiers (99000001, TEST-SKU-001) but real shape.
Example 1 — Get all your products
You: Use
ozon_fetch_allwithoperation_id="ProductAPI_GetProductList"to get all my products.
The agent calls:
{
"operation_id": "ProductAPI_GetProductList",
"params": {"filter": {"visibility": "ALL"}},
"max_items": 10000
}Server walks the last_id cursor automatically and returns:
{
"ok": true,
"items": [
{"product_id": 99000001, "offer_id": "TEST-SKU-001", "archived": false},
{"product_id": 99000002, "offer_id": "TEST-SKU-002", "archived": false},
{"product_id": 99000003, "offer_id": "TEST-SKU-003", "archived": true}
],
"total_fetched": 3,
"truncated": false,
"pages_fetched": 1
}Example 2 — Find products at risk of going out of stock
You: Run the
oos_risk_analysisworkflow for my cabinet.
Agent first inspects the workflow:
ozon_get_workflow({"name": "oos_risk_analysis"})→ tells the agent to call AnalyticsAPI_StocksTurnover (rate-limited
to 1 req/min — the server's per-endpoint queue handles that for you)
and how to interpret turnover_grade. The call returns:
{
"items": [
{"sku": 99000001, "current_stock": 12, "ads": 1.5,
"idc": 8.0, "turnover_grade": "DEFICIT",
"turnover_grade_cluster": "DEFICIT_GROWING"},
{"sku": 99000002, "current_stock": 25, "ads": 0.8,
"idc": 31.25, "turnover_grade": "OPTIMAL",
"turnover_grade_cluster": "OPTIMAL_FALLING"},
{"sku": 99000003, "current_stock": 0, "ads": 0.0,
"idc": 0.0, "turnover_grade": "NO_SALES",
"turnover_grade_cluster": "NO_SALES"}
]
}The workflow's interpret field tells the agent to flag SKUs where
idc < 14 or turnover_grade ∈ {DEFICIT, NO_SALES} and surface them
sorted by idc asc.
Example 3 — Full cabinet health check
You: Check the health of my Ozon cabinet using the
cabinet_health_checkworkflow.
The workflow tells the agent to read three endpoints in parallel —
RatingAPI_RatingSummaryV1, SellerAPI_SellerInfo,
AverageDeliveryTimeSummary. The first call returns:
{
"groups": [
{
"group_name": "Выполнение заказов",
"items": [
{"rating": "rating_on_time", "name": "Процент заказов вовремя",
"current_value": 97.5, "status": "OK", "value_type": "PERCENT"},
{"rating": "rating_review_avg_score", "name": "Средняя оценка",
"current_value": 4.7, "status": "OK", "value_type": "RATING"}
]
},
{
"group_name": "Качество сервиса",
"items": [
{"rating": "rating_price_index", "name": "Индекс цен",
"current_value": 1.01, "status": "OK", "value_type": "INDEX"}
]
}
],
"premium_scores": [
{"rating": "rating_on_time", "value": 97.5,
"penalty_score_per_day": 0, "scope": "premium_plus"}
]
}Example 4 — Analyze product pricing
You: Which of my products have a red price index?
Agent runs the pricing_analysis workflow and inspects the
price_indexes.color_index field on every item:
{
"product_id": 99000001, "offer_id": "TEST-SKU-001",
"price": {"price": "399.0000", "marketing_seller_price": "399.0000",
"min_price": "299.0000"},
"price_indexes": {
"color_index": "WITHOUT_INDEX",
"ozon_index_data": {"minimal_price": "395.0000",
"price_index_value": 1.01}
},
"commissions": {"sales_percent_fbo": 0.13, "sales_percent_fbs": 0.13}
}The workflow's common_mistakes list reminds the agent to compare
against marketing_seller_price (the actual buyer-facing price), not
just the base price.
Example 5 — Content audit
You: Find products with low content rating and tell me what to improve.
Agent runs content_audit, gets per-SKU ratings + the list of
attributes that would lift the score:
{
"products": [
{
"sku": 99000001, "rating": 85,
"groups": [
{"key": "media", "rating": 100},
{"key": "characteristics", "rating": 75,
"improve_attributes": [
{"id": 4191, "name": "Цвет"},
{"id": 8292, "name": "Материал"}
],
"improve_at_least": 4}
]
}
]
}The workflow tells the agent that a +10 lift to rating measurably
improves search ranking — so filling in those two attributes is worth
~4 points.
Available tools (15)
Tool | What it does |
| Execute any Ozon API method with safety + subscription guards |
| Auto-paginate — get every page, not just the first |
| Full docs for a method: schema, examples, rate limit, quirks |
| BM25 search across 466 methods (Russian or English, with stemming) |
| Browse the API by section |
| All methods inside one section |
| List ready-made analytical workflows (filterable by category) |
| Full step-by-step plan for one workflow |
| Methods that work well together (auto-extracted graph) |
| Curated request/response examples for a method |
| Per-method, per-section, or all |
| Read your current cabinet's subscription tier |
| What you unlock on a given tier |
| Check that bundled API specs are still fresh |
| Look up any Ozon error code |
Ready-made workflows (13)
Workflows are curated step-by-step recipes. Use
ozon_get_workflow("name") to fetch the full plan, including
interpret, when_to_use, common_mistakes, and the recommended
DB schema for sync-style workflows.
Workflow | Category | What it solves |
| analytics | Find products about to go out of stock |
| health | Check all seller-rating metrics in one shot |
| content | Find low-content-rating cards + actionable attributes |
| pricing | Find products with non-competitive pricing |
| warehouse | Per-warehouse stock breakdown for FBO |
| catalog | Full product catalog snapshot |
| orders | Incremental FBO order sync |
| orders | Incremental FBS / rFBS order sync |
| finance | Finance transactions for unit economics |
| analytics | Daily revenue / orders time series |
| advertising | Performance API ads catalog |
| warehouse | FBS warehouse stocks |
| returns | rFBS returns sync |
API coverage
API | Methods | Sections |
Ozon Seller API | 420 | 49 |
Ozon Performance API | 46 | 6 |
Total | 466 | 55 |
Subscription tiers modelled (low → high):
LITE → STANDARD → PREMIUM → PREMIUM_PLUS → PREMIUM_PRO.
Key features
Subscription-aware
The server knows which methods are gated on Premium tiers and refuses the call before it leaves your machine — saves your API quota:
{
"error": "subscription_gate",
"error_type": "subscription_gate",
"code": 7,
"message": "Endpoint requires PREMIUM_PRO, cabinet has PREMIUM_PLUS",
"operation_id": "ProductPricesDetails",
"required_tier": "PREMIUM_PRO",
"cabinet_tier": "PREMIUM_PLUS",
"retryable": false,
"http_call_skipped": true
}Rate-limit management
Auto-retry with exponential back-off on 429.
Honours
Retry-After(both delta-seconds and RFC 7231 HTTP-date).Per-endpoint semaphore for slow methods (e.g.
/v1/analytics/turnover/stocksis hard-limited to 1 req/min on the Ozon side — the server queues parallel calls automatically).
Auto-pagination
ozon_fetch_all handles all four pagination patterns Ozon uses:
offset/limit, cursor, last_id, page_number. It also detects
the rare case where the server returns the same cursor twice in a
row and breaks the loop instead of spinning forever.
ozon_fetch_all(
operation_id="ProductAPI_GetProductList",
params={"filter": {"visibility": "ALL"}},
max_items=10_000,
)
# → {"items": [...all products...], "total_fetched": 847,
# "truncated": false, "pages_fetched": 1}Unified error envelope
Every tool that can fail returns the same shape — easy to branch on in any agent or downstream code:
{
"error": "rate_limit_exceeded",
"error_type": "rate_limit | subscription_gate | not_found | invalid_params | server_error | timeout | auth | forbidden | conflict | ...",
"message": "Human-readable explanation",
"code": 429,
"operation_id": "AnalyticsAPI_StocksTurnover",
"endpoint": "/v1/analytics/turnover/stocks",
"retryable": true,
"retry_after_seconds": 60
}Safety classification baked into the catalog
Every method carries a safety field — read, write, or
destructive. Write requires confirm_write=True; destructive
requires both confirm_write=True AND
i_understand_this_modifies_data=True. Heuristics from the schema
extractor are reinforced by 43 curated safety_warning entries in
quirks.yaml so the agent always sees a clear reminder before
mutating anything.
Keeping the API specs up to date
Ozon refreshes their swagger periodically. To sync:
cd parser/ # the parser repo / drop-zone
python parse_swagger.py # downloads + sanitises both APIs
cp seller_swagger.json ../src/ozon_mcp/data/
cp perf_swagger.json ../src/ozon_mcp/data/
cp swagger_meta.json ../src/ozon_mcp/data/Run ozon_get_swagger_meta to confirm the bundled snapshot is fresh
(the CI also fails the build when the snapshot is older than 14
days).
Development
git clone https://github.com/PCDCK/ozon-mcp.git
cd ozon-mcp
uv sync --extra dev
# Tests (≈25s, 274 currently)
uv run pytest tests/ --ignore=tests/live
# Code quality
uv run ruff check src tests
uv run mypy src/ozon_mcp
# Coverage
uv run pytest tests/ --ignore=tests/live --cov=src/ozon_mcp \
--cov-report=term-missingSee CONTRIBUTING.md for how to add knowledge (workflows, examples, quirks, subscription overrides).
License
Available Tools
15 toolsozon_call_methodA
Execute a real call against the Ozon API.
SAFETY MODEL — read methods just work; write/destructive methods
require explicit confirmation flags. Each method's safety class is
visible in ozon_describe_method (safety field).
safety="read": no flag needed
safety="write": requires confirm_write=True
safety="destructive": requires BOTH confirm_write=True AND i_understand_this_modifies_data=True
SUBSCRIPTION GATE — when the method requires a higher tariff than the current cabinet tier, the call is refused locally and no HTTP request is sent. Saves quota on calls that would 403 anyway.
RATE LIMITS — 429 responses are retried up to MAX_RETRIES times honouring Retry-After. Slow endpoints (e.g. /v1/analytics/turnover/ stocks at 1 req/min) are serialised via a per-process semaphore.
On any failure returns a structured OzonError envelope —
agents should inspect error_type and decide.
Args: operation_id: e.g. "FinanceAPI_FinanceTransactionListV3" params: request body matching the method's request_schema confirm_write: required when method.safety == "write" or "destructive" i_understand_this_modifies_data: extra confirmation for destructive cabinet_tier: override the cached cabinet tier (e.g. "PREMIUM_PLUS")
| Name | Required | Description | Default |
|---|---|---|---|
| params | No | ||
| cabinet_tier | No | ||
| operation_id | Yes | ||
| confirm_write | No | ||
| i_understand_this_modifies_data | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It fully discloses the safety model, subscription gate, rate limit handling (retries with Retry-After, semaphore for slow endpoints), and error envelope. This goes well beyond what structured fields would provide.
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 well-structured with clear section headers (SAFETY MODEL, SUBSCRIPTION GATE, RATE LIMITS). It is appropriately sized—each sentence adds value, no fluff. It is front-loaded with the core purpose.
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?
Given the tool's complexity (5 parameters, safety flags, subscription, rate limits), the description covers all behavioral aspects comprehensively. It explains what happens on failure (structured OzonError). Since there is an output schema, return value details are not needed. Complete for an execution 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%, so description must compensate. It explains confirm_write and i_understand_this_modifies_data in the context of safety classes, cabinet_tier as an override, operation_id with an example, and params as the request body. This adds critical meaning beyond the schema's type/default info.
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 clearly states it executes real calls against the Ozon API, using a specific verb ('Execute') and resource ('Ozon API'). It distinguishes itself from sibling tools like ozon_describe_method (which describes methods) by focusing on execution.
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 provides explicit guidance on when to use safety flags (confirm_write, i_understand_this_modifies_data) based on the method's safety class, and mentions subscription gate and rate limits. However, it does not explicitly state when not to use the tool or suggest alternatives, though the context implies that for description or listing, other siblings should be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_describe_methodA
Get a complete description of one Ozon API method.
Returns the method's metadata plus fully-resolved JSON Schema for request and responses. All $ref pointers are inlined; oneOf/anyOf/allOf combinators are preserved verbatim. When knowledge layer is loaded, also includes rate_limit, quirks, examples, and related methods — everything an agent needs to call the method correctly.
Provide either operation_id (preferred) OR path (+ optional http_method).
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| http_method | No | ||
| operation_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses that $ref pointers are inlined, combinators preserved, and when knowledge layer is loaded adds rate_limit, quirks, examples, related methods. Effectively communicates behavior and output characteristics.
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?
Seven sentences, front-loaded with purpose. Every sentence adds value, no redundancy. Clear structure with parameter guidance and output details.
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?
Given existence of output schema, description does not need to detail return values but still mentions key content. Covers input, output, and conditional behavior (knowledge layer). Complete for tool discovery and correct invocation.
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 has 0% description coverage, so description compensates by explaining preferred parameter (operation_id), alternative (path + optional http_method), and that at least one should be provided. Adds meaning beyond schema structure.
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?
Clearly states 'Get a complete description of one Ozon API method' with specific details about return content (metadata, resolved JSON Schema, etc.). Distinct from sibling tools like ozon_call_method and ozon_search_methods.
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?
Provides explicit guidance on parameter selection: 'Provide either operation_id (preferred) OR path (+ optional http_method).' Lacks explicit 'when not to use' or comparison with alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_fetch_allA
Fetch all pages of a paginated Ozon endpoint.
Walks the endpoint's pagination pattern (offset/page/last_id/cursor/
page_token — see knowledge/pagination_patterns.yaml) until the
endpoint reports the last page or max_items is reached. Per-page
rate limits are still enforced via the same machinery as
ozon_call_method.
Args: operation_id: same as ozon_call_method, must support pagination params: request body WITHOUT offset/limit/last_id/cursor — the paginator owns those fields max_items: safety cap, range [1, MAX_FETCH_ALL_ITEMS] cabinet_tier: override the cached cabinet tier
Returns:
{"items": [...], "total_fetched": N, "truncated": bool, "pages_fetched": int} on success or a structured OzonError
on failure.
| Name | Required | Description | Default |
|---|---|---|---|
| params | No | ||
| max_items | No | ||
| cabinet_tier | No | ||
| operation_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It details pagination walking, rate limit enforcement, safety cap, and return format. The reference to an external knowledge file adds context, though the agent may need to resolve it.
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 well-organized with clear sections (Args, Returns) and essential details. It is slightly dense in the first paragraph but overall efficient and front-loaded with the main purpose.
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?
Given the tool's complexity (pagination handling) and the presence of an output schema, the description covers argument semantics, return structure, and safety mechanisms. It could include a simple example but is otherwise complete.
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 add meaning. It thoroughly explains each parameter: operation_id (same as call method), params (without pagination fields), max_items (range), and cabinet_tier (override). This is far beyond the bare 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?
The description clearly states the tool fetches all pages of a paginated Ozon endpoint, using a specific verb and resource. It distinguishes from sibling tools like ozon_call_method by explicit mention of pagination walking.
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 when to use this tool (for paginated endpoints) and provides constraints like max_items and ownership of pagination fields. It mentions rate limits but lacks explicit when-not-to-use guidance or alternatives beyond the implied comparison to ozon_call_method.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_get_error_catalogA
Look up Ozon API errors and their solutions.
Without arguments returns all known errors. With code (e.g. "429" or "InvalidArgument") filters by code. With operation_id returns errors specific to that method plus all generic ones.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | ||
| operation_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral transparency. It explains the tool is read-only (lookup) and describes filtering behavior. It does not mention any side effects, rate limits, or authentication needs, but for a pure lookup tool, this is adequate. A 5 would require explicit statement of non-destructiveness or safety.
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 concise (three sentences) and front-loaded with the purpose. Each sentence adds essential information without fluff. The structure is clear: purpose first, then argument modes. No wasted words.
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?
Given the presence of an output schema (not shown but indicated), the description does not need to detail return values. It covers the main functionality and argument usage. It could mention behavior for invalid codes or empty results, but overall it is sufficiently complete for a lookup 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 description coverage is 0%, so the description must compensate. It thoroughly explains both parameters: 'code' filters by error code (with examples like '429'), and 'operation_id' returns errors specific to that method plus generic ones. This adds significant meaning beyond the schema's type definitions.
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 clearly states the tool's purpose: to look up Ozon API errors and their solutions. It distinguishes itself from sibling tools (e.g., ozon_describe_method, ozon_get_rate_limits) by focusing on error catalog lookup. The verb 'look up' is specific, and the resource is clearly the error catalog.
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 provides explicit guidance on when to use each argument combination: without arguments returns all errors, with code filters by code, with operation_id returns method-specific plus generic errors. However, it does not explicitly mention when not to use this tool or suggest alternative tools (e.g., ozon_describe_method might also show errors), which would elevate it to a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_get_examplesA
Get hand-crafted request examples for one method.
Examples are real, validated payloads matching the method's request schema — copy them as starting points for your own calls.
| Name | Required | Description | Default |
|---|---|---|---|
| operation_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It states the examples are real, validated, and hand-crafted, but does not explicitly mention that the operation is read-only or discuss side effects, authorization, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main action, and every word adds value without redundancy.
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?
Given the tool has one parameter and an output schema (as per context signals), the description adequately covers the tool's purpose and the nature of the output. Minor gap: no mention of error handling for invalid operation_id.
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 only parameter, operation_id, is not explained in the description (e.g., its format or how to obtain it). Schema description coverage is 0%, and the description fails to compensate.
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 clearly states the tool retrieves hand-crafted request examples for one method, using a specific verb and resource, and is distinct from sibling tools like ozon_call_method or ozon_describe_method.
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 usage (copy examples as starting points) but does not explicitly state when to use this tool versus alternatives, nor does it mention when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_get_rate_limitsA
Look up rate limits for a method, section, or the whole API.
Without arguments returns all known limits. With operation_id, returns the most specific limit (per-method overrides per-section overrides global).
NOTE: Many limits in v0.2 are conservative guesses (source: 'guess'). Verify against real Ozon responses before relying on them in production.
| Name | Required | Description | Default |
|---|---|---|---|
| section | No | ||
| operation_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description discloses that many limits are conservative guesses (source: 'guess') and advises verification in production. It also explains the override hierarchy. This provides important behavioral context beyond the basic function.
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 concise with five sentences that efficiently convey purpose, default behavior, argument-specific behavior, and a critical caveat. No extraneous 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?
Given the tool's low complexity (2 optional parameters, output schema exists), the description adequately covers the key aspects: default behavior, override logic, and data quality warning. It does not mention potential errors or rate limit format, but the output schema likely covers return values.
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%, so the description must add parameter meaning. It explains that without arguments returns all limits, and with operation_id returns specific limits, implying operation_id's role. However, it does not explicitly describe the 'section' parameter, leaving its purpose somewhat ambiguous.
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 clearly states the tool's purpose: 'Look up rate limits for a method, section, or the whole API.' The verb 'look up' and resource 'rate limits' are specific, and the tool is distinct from siblings like ozon_call_method or ozon_describe_method.
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 behavior without arguments (returns all limits) and with operation_id (returns most specific limit via override hierarchy). It also includes a caution about conservative guesses and advising verification in production, guiding appropriate use. However, it does not explicitly mention when to use section vs operation_id or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_get_sectionA
List all methods inside a section (by section name or tag).
Args: query: section name or tag, e.g. "FinanceAPI", "Финансовые отчёты", "ProductAPI"
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden for behavioral disclosure. It does not disclose behavioral traits beyond the basic function, such as read-only nature, authentication requirements, pagination, or potential side effects. This is a significant gap for a tool that likely performs a read operation.
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 extremely concise: two sentences with an example list under 'Args'. Every sentence adds value, and the most critical information (verb, resource, input) is front-loaded. No extraneous text.
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?
The tool is simple (one parameter, no nested objects) and has an output schema, so the description doesn't need to detail return values. However, it lacks usage guidance and behavioral transparency, which slightly reduces completeness. For its complexity, it is mostly adequate.
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 description explains the single parameter 'query' as 'section name or tag', providing concrete examples like 'FinanceAPI', 'Финансовые отчёты', 'ProductAPI'. This adds significant meaning beyond the input schema, which only has a type 'string' with no description, compensating for the 0% schema description coverage.
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 clearly states the tool's action: 'List all methods inside a section (by section name or tag).' It specifies the verb 'List', the resource 'methods inside a section', and the input mode 'by section name or tag', which distinguishes it from sibling tools like ozon_list_sections that list sections, and ozon_search_methods that search across all methods.
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 that the tool is used when you have a section name or tag to retrieve its methods, but it does not provide explicit guidance on when to use this tool versus alternatives (e.g., ozon_search_methods, ozon_describe_method). It lacks 'when-to-use', 'when-not-to-use', or referral to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_get_subscription_statusA
Get the current account's subscription tier from /v1/seller/info.
Returns the subscription type, the is_premium flag, plus the list
of all Ozon API methods that might require this exact tier.
Result is cached per server process; pass refresh=True to
bypass the cache. Errors are NEVER cached.
Available only when seller credentials are configured.
| Name | Required | Description | Default |
|---|---|---|---|
| refresh | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses caching (per process, refreshable, errors never cached) and credential requirement. No annotations exist so description carries burden. Lacks mention of idempotency or rate limits, but acceptable for a read-only 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?
Four concise sentences, front-loaded with main purpose, no redundant words. Each sentence adds distinct 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?
Tool is simple (1 param, no required ones) and has output schema. Description covers purpose, input, caching, prerequisite, and output content. Complete for reliable agent usage.
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?
With 0% schema coverage, description explains the sole parameter 'refresh': 'pass refresh=True to bypass cache'. Adds practical meaning beyond schema's default.
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?
Clearly states the verb 'get' and resource 'subscription tier' from a specific endpoint. Specifies return values (type, is_premium flag, list of methods). Distinguishes from sibling tools like ozon_list_methods_for_subscription.
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?
Provides context: prerequisite (seller credentials), caching behavior, and refresh bypass. Does not explicitly exclude scenarios or compare with alternatives, but sufficient for most cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_get_swagger_metaA
Return metadata about the bundled Ozon swagger snapshots.
Tells the caller which spec version we are shipping, how many methods it contains, when the snapshot was refreshed, and the SHA-256 of the file. Useful for:
agents that need to decide whether to re-check docs online;
operators validating that a refresh actually landed;
bug reports — include this in the issue so reproduction is exact.
Returns {"error": "missing"} when the package was built without
swagger_meta.json (pre-v0.6 snapshot).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the output (metadata or an error if missing) and implies no side effects. It does not explicitly mention idempotency or rate limits, but for a metadata retrieval tool this is sufficient.
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 concise and front-loaded with the core purpose, followed by bullet-pointed use cases. Every sentence adds value without redundancy.
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?
Given zero parameters and a simple output, the description fully covers the tool's behavior, including the error condition. The existence of an output schema further reduces the need to describe return values in detail.
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 has no parameters, and the schema coverage is trivially 100%. The description adds no parameter info since none exist. According to the rule, 0 parameters earns a baseline of 4.
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 clearly states the tool returns metadata about bundled Ozon swagger snapshots, specifying what it returns (spec version, method count, timestamp, SHA-256) and the error case. It distinguishes itself from sibling tools that handle method calls, descriptions, etc.
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 provides explicit use cases: for agents checking docs, operators validating refreshes, and bug reports. It gives clear context but does not include when-not-to-use or direct alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_get_workflowA
Get the full step-by-step plan for one workflow.
Returns ordered steps with operation_ids, pagination/batching/concurrency
guidance, recommended DB schema, and known gotchas. Analytical
workflows additionally carry interpret (how to read the data),
when_to_use (situations the workflow fits) and common_mistakes.
Args: name: workflow name from ozon_list_workflows, e.g. "sync_orders_fbs" or "oos_risk_analysis"
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description discloses return structure: ordered steps, operation_ids, pagination/batching/concurrency guidance, DB schema, gotchas, and for analytical workflows additional fields. Does not mention authentication or rate limits, but conveys key behavioral aspects for a read-only 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?
Well-structured: opening statement, bullet-like list of return content, and Args section. Approximately 60 words, front-loaded, no redundant sentences.
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?
Given the existence of an output schema (not shown), the description covers return values sufficiently: ordered steps, guidance, DB schema, gotchas, and additional fields for analytical workflows. No apparent 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?
Single parameter 'name' has 0% schema description coverage. Description adds meaning with 'workflow name from ozon_list_workflows' and examples. This guides the agent on valid values, compensating for lack of schema descriptions.
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?
Clearly states 'Get the full step-by-step plan for one workflow.' Specifies the resource (workflow) and action (get). Differentiates from siblings like ozon_list_workflows and others that handle different resources.
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?
Provides an Args section with example workflow names, implying use after listing. Mentions analytical workflows have extra fields. Lacks explicit when-not or alternative tool references, but context from siblings and examples guides usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_list_methods_for_subscriptionA
List all Ozon methods that mention a specific subscription tier.
Useful when an agent wants to know "what extra capabilities do I unlock by upgrading to Premium Plus?" or "which methods will fail without Premium?". Tiers are auto-extracted from method documentation, so this is a hint, not a contract — the actual hard 403 set may differ.
Args: tier: one of UNSPECIFIED, PREMIUM_LITE, PREMIUM, PREMIUM_PLUS, PREMIUM_PRO
| Name | Required | Description | Default |
|---|---|---|---|
| tier | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 discloses that the tier filter is auto-extracted and may not match actual 403 sets, which adds transparency. However, it does not mention read-only nature, authentication needs, or rate limits, though these are partially implied by the tool name.
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 concise with two short paragraphs, front-loading the purpose. The docstring-style argument list is clear. Minor redundancy in the example use cases but overall efficient.
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?
Given the presence of an output schema and the simplicity of the tool (single parameter), the description is complete. It covers purpose, usage scenario, parameter constraints, and a caveat about accuracy. No further details are needed.
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 explain the parameter. It lists the five possible values for 'tier', which adds meaning beyond the schema's type definition. It could further explain what each tier represents, but the list is sufficient.
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 clearly states 'List all Ozon methods that mention a specific subscription tier,' providing a specific verb and resource. It distinguishes from siblings like ozon_get_subscription_status and ozon_search_methods by filtering by tier.
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 includes explicit use cases ('want to know what extra capabilities do I unlock by upgrading?') and notes the limitation that it's a hint, not a contract. It lacks explicit when-not-to-use or alternatives, but the guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_list_sectionsA
List all Ozon API sections (Seller + Performance) with method counts.
Use this first to orient yourself in the API. Returns sections grouped by api ('seller' or 'performance'), each with the human-readable section name, the underlying tag, and the number of methods inside.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. It describes output structure and grouping, but lacks details on rate limits, pagination, or any potential side effects. Adequate for a simple read-only list.
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 concise sentences: purpose, usage hint, return format. Front-loaded, no wasted words, well-structured.
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?
Given no parameters and presence of output schema, description fully explains the tool's function and return details. Could mention how to use output with other tools, but not necessary.
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?
No parameters exist; baseline 4 applies. Description compensates by detailing the output structure beyond the empty 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?
Clearly states 'List all Ozon API sections (Seller + Performance) with method counts,' specifying the resource and action. Distinguishes from siblings like ozon_get_section.
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?
Explicitly says 'Use this first to orient yourself in the API,' providing clear context for when to use it. Does not explicitly exclude alternatives but implies initial orientation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_list_workflowsA
List all curated workflows, optionally filtered by category.
Workflows are step-by-step recipes for chaining Ozon API methods into
real data pipelines or analytical reports. Use ozon_get_workflow
to fetch the full plan for a specific workflow.
Args:
category: optional filter — one of "catalog", "orders",
"analytics", "health", "pricing", "content", "advertising",
"warehouse", "returns", "finance". When provided, only
workflows in that category are returned. categories in
the response always lists every value present in the catalogue.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output 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 explains the tool lists workflows, optionally filtered, and clarifies that categories in response always lists all values present. It's a read operation and no destructive actions are implied, but it doesn't mention auth or rate limits, which is acceptable for this context.
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 well-structured with a main sentence, a context paragraph about workflows, and an Args section. It is concise with about 80 words, though slightly verbose but still efficient.
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?
Given there is an output schema, the description does not need to explain return values. It adequately covers purpose, usage, parameter semantics, and relationship to sibling tools, making it complete for a lightweight list 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?
The description goes significantly beyond the input schema by explaining the 'category' filter, listing all valid values (catalog, orders, analytics, etc.), and noting that response categories always list every value present. This adds essential meaning that the schema lacks.
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 clearly states the tool lists curated workflows, optionally filtered by category. It distinguishes itself from the sibling tool ozon_get_workflow, which fetches a full plan for a specific workflow.
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?
It explicitly tells when to use this tool vs alternative: 'Use ozon_get_workflow to fetch the full plan for a specific workflow.' This provides clear guidance on selecting the right tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_search_methodsA
Full-text search across all Ozon API methods.
Searches over operation_id, path, summary, description, section, and tag using BM25 ranking with field boosting (summary x4, path/op_id x3, description x1). Supports Russian and English queries with stemming.
Args: query: free-text query, e.g. "list of postings" or "финансовые транзакции" section: optional filter — match by section name or tag (case-insensitive substring) api: optional filter — "seller" or "performance" safety: optional filter — "read", "write", or "destructive" limit: max results to return (default 10)
| Name | Required | Description | Default |
|---|---|---|---|
| api | No | ||
| limit | No | ||
| query | Yes | ||
| safety | No | ||
| section | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the search algorithm and language support, which is useful. However, with no annotations provided, it fails to explicitly state that this is a read-only operation with no side effects. It also does not describe the output format or pagination behavior, which are important for agent decision-making.
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 well-structured with a concise first paragraph stating purpose and search details, followed by a bullet list for parameters. It is front-loaded with the most important information. Slightly verbose in the first paragraph (algorithm details could be condensed), but overall effective.
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?
Given the tool's complexity (5 parameters, 1 required) and the presence of an output schema, the description covers purpose, search algorithm, and parameter details. It could be enhanced by clarifying the output structure (e.g., returns ranked list of methods with scores), but the output schema likely fills this gap. The description is sufficiently complete for an agent to use the tool correctly.
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 fully compensates. It provides clear explanations with examples for each parameter: query (free-text with examples), section (case-insensitive substring match), api (allowed values 'seller'/'performance'), safety (allowed values 'read'/'write'/'destructive'), and limit (default 10). This adds significant meaning beyond the schema's bare names and types.
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 clearly states 'Full-text search across all Ozon API methods', specifies the fields searched (operation_id, path, summary, description, section, tag), and details the ranking algorithm (BM25 with field boosting) and language support (Russian/English stemming). This distinguishes it from sibling tools that describe single methods or list sections.
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 usage for finding API methods via free-text queries, but it does not explicitly state when to use this tool versus alternatives like ozon_describe_method or ozon_list_sections. No guidance on when not to use it or prerequisites is provided.
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. Dates show when Glama detected each change.
15 tool updates
v0.6.0- First observed
ozon_call_method - First observed
ozon_describe_method - First observed
ozon_fetch_all - First observed
ozon_get_error_catalog - First observed
ozon_get_examples - First observed
ozon_get_rate_limits - First observed
ozon_get_related_methods - First observed
ozon_get_section - First observed
ozon_get_subscription_status - First observed
ozon_get_swagger_meta - First observed
ozon_get_workflow - First observed
ozon_list_methods_for_subscription - First observed
ozon_list_sections - First observed
ozon_list_workflows - First observed
ozon_search_methods
TDQS
Every tool has a distinct, well-defined purpose with no overlap. For example, ozon_call_method executes API calls, ozon_describe_method provides metadata, ozon_fetch_all handles pagination, and ozon_search_methods performs search—each serves a unique function in the API interaction workflow.
All tools follow a consistent 'ozon_verb_noun' naming pattern (e.g., ozon_call_method, ozon_describe_method, ozon_fetch_all). The structure is uniform throughout, using snake_case and starting with 'ozon_' as a prefix, making the set predictable and easy to navigate.
With 15 tools, the server is well-scoped for its purpose of interacting with the Ozon API. The tools cover a comprehensive range from core operations (call, describe, fetch) to support functions (error lookup, rate limits, workflows), each adding clear value without redundancy.
The toolset provides complete coverage for API interaction, including execution, description, pagination, error handling, rate limits, subscription management, search, and workflow guidance. There are no apparent gaps; agents can perform all necessary tasks from discovery to execution and troubleshooting.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
The OpenRouter for tools. One MCP connection gives any AI agent 254 hosted tools, pay per call.
471Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.
One MCP endpoint for Claude, GPT & Gemini: 100+ tools + no-code connectors + agent workers.
Package intelligence MCP for AI agents — 22 tools, 19 ecosystems, AGPL SDK, free.
Related MCP Servers
- AlicenseAqualityAmaintenanceUniversal MCP server for the Avito API (Russia's largest classifieds marketplace), built for autonomous AI agents to operate an account hands-free — 145 tools across 18 domains (listings, messenger, orders, delivery, promotion, autoload, reviews, analytics). Safe-by-default: dry-run, idempotency, structured errors, confirmation flow.10014614MIT
- FlicenseNot gradedqualityCmaintenanceMCP server that turns Wildberries marketplace into a toolkit for LLM agents, enabling product search, detailed card inspection, price history, reviews, and cross-product comparison.-
- AlicenseAqualityDmaintenanceMCP server for Ozon Seller API that enables AI clients to manage products, prices, stocks, orders, analytics, and finances on Ozon marketplace.26736-
- AlicenseAqualityDmaintenanceMCP server for Ozon Seller API, enabling product, order, finance, and analytics management via natural language or CLI.32MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/PCDCK/ozon-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server