trendyol-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., "@trendyol-mcpgive me today's prioritized action report for my store"
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.
trendyol-mcp
Türkçe · English
Türk pazaryerleri için salt okunur MCP sunucusu. Bir satıcının sipariş, iade, stok ve yorum verisini okur; SLA ihlallerini, stok ve fiyat tuzaklarını bulur ve sabah okuyacağınız tek Türkçe aksiyon raporu üretir. Hiçbir araç satıcı hesabında değişiklik yapmaz.
Kurulum ve kimlik bilgisi olmadan, 30 saniyede deneyin:
git clone https://github.com/acar32furkan-glitch/trendyol-mcp && cd trendyol-mcp
uv sync --all-extras --dev
uv run trendyol-mcp demoNeden?
Satıcı sabahı panellerde geçiyor: "hazırlanmayan sipariş var mı, stokta ne bitti, hangi yorum cevapsız, iade neden tekrar ediyor". Bu iş dört-beş farklı ekranda, elle ve sıraya güvenmeden yapılıyor. trendyol-mcp bu soruları tek yerde toplar ve öncelik sıralı bir aksiyon listesine çevirir — MCP üzerinden Claude Code / Cursor / Codex'e, ya da doğrudan terminale.
En kritik tasarım kararı: araç yalnızca okur. Bir ajanın yanlış argümanla fiyat güncellemesi veya sipariş iptali yapması mimari olarak imkânsızdır (ADR-0001).
Related MCP server: trendyol-seller-mcp
MCP istemcisine bağlama
{
"mcpServers": {
"trendyol-mcp": {
"command": "uv",
"args": ["run", "--directory", "/tam/yol/trendyol-mcp", "trendyol-mcp", "serve", "--source", "auto"]
}
}
}--source auto kimlik bilgisi bulursa canlı Trendyol API'sini, bulamazsa örnek veri setini kullanır.
Sunucu, ajanı yanlış yönlendirmemek için tüm araçları readOnlyHint: true olarak bildirir ve
instructions alanında "bu sunucu hiçbir şeyi değiştirmez" bilgisini verir.
Araçlar
Araç | Ne yapar | Döndürdüğü |
| Tüm kuralları çalıştırır | Önceliklendirilmiş bulgu listesi + Türkçe rapor metni |
| Hazırlık süresini aşan / teslim sözü geçmiş siparişler |
|
| Stok eşiğinin altındaki ürünler (tükenenler önce) | Bulgular + |
| Son N günde tekrarlayan iade nedenleri | Bulgular + |
| Cevapsız kalmış olumsuz yorumlar | Bulgular |
| Fiyat tutarsızlıkları (listeden yüksek, aşırı indirim) | Bulgular + indirim özeti |
| Sipariş listesi (durum/tarih filtresi) | Sipariş kayıtları |
| İade/talep kayıtları | İade kayıtları |
Kural tanımları, eşikler ve örnek mesajlar: docs/rules.md.
uv run trendyol-mcp tools # araçları listele
uv run trendyol-mcp demo --json # ajanın gördüğü JSON sözleşmesi
uv run trendyol-mcp --helpGerçek veriye geçiş
İki pazaryeri de aynı arayüzü kullanır; hangi kimlik bilgisi tanımlıysa --source auto onu seçer.
cp .env.example .env # .env commit edilmez
# Trendyol: TRENDYOL_SUPPLIER_ID / TRENDYOL_API_KEY / TRENDYOL_API_SECRET
# Hepsiburada: HEPSIBURADA_MERCHANT_ID / HEPSIBURADA_API_KEY (+ HEPSIBURADA_MERCHANT_NAME)
uv run trendyol-mcp check # "aktif kaynak" ve "yorum okuma" satırına bakın
uv run trendyol-mcp demo --source hepsiburada
uv run trendyol-mcp serveYalnızca GET istekleri yapılır (/integration/order/..., /integration/product/... — Trendyol;
/orders, /returns, /listings/merchantid/... — Hepsiburada). Kimlik bilgileri ortam
değişkeninden okunur, loglanmaz. Her pazaryerinin neyi okuyabildiği (ve neyi okuyamadığı)
docs/rules.md içindeki yetenek matrisinde; Hepsiburada'da ürün yorumu uç noktası olmadığı için
günlük özet bu kuralı atladığını not: satırıyla söyler. Ayrıntı: SECURITY.md.
Mimari
adapters/ → domain/ → tools.py → server.py (MCP) · cli.py (terminal)
(salt okunur) (saf kural) (JSON) (read-only araç kaydı)adapters/pazaryeri ham verisini normalize modellere çevirir:FixtureAdapter,TrendyolAdapter,HepsiburadaAdapter. Kimlik doğrulama, yeniden deneme ve alan dönüşümüadapters/http.pyileadapters/parsing.pyiçinde tek yerde durur; yeni pazaryeri eklemek tek dosyalık bir iştir.domain/saf fonksiyonlar içerir; her kuralnowparametresi alır → testler deterministik.render.pybulguları Türkçe metne çevirir; CLI ve MCP aynı metni gösterir.Diyagram ve gerekçeler: docs/architecture.md · karar kayıtları: docs/adr/
Kalite
uv run ruff check . && uv run ruff format --check .
uv run mypy # strict, tüm paket + testler + betikler
uv run pytest --cov=trendyol_mcp # 84 test, ~%91 kapsam84 test: kural sınırları (48/72 saat tam sınırları gibi), iki pazaryerinin HTTP eşlemesi (
respx), CLI sözleşmesi ve stdio üzerinden gerçek MCP turu (tests/test_server_mcp.py: el sıkışma →tools/list→tools/call).CI: Python 3.12 ve 3.13 · ruff · ruff format · mypy strict · pytest · kimlik bilgisi olmadan CLI smoke testi.
server.pyyalnızca alt süreçte çalıştığı için kapsam raporunda 0 görünür; canlı doğrulaması entegrasyon testindedir.
İlkeler ve sınırlar
Salt okunur: yazma/güncelleme yok, panel kazıma yok (ADR-0001).
İki pazaryeri, tek sözleşme: Trendyol ve Hepsiburada adaptörleri aynı salt okunur protokolü uygular; okunamayan veri (ör. Hepsiburada yorumları) sessizce atlanmaz, özet
not:düşer.Kimlik bilgisi olmadan çalışır: örnek veri seti kendi zaman çapasını taşır (ADR-0002) → demo ve testler tekrarlanabilir.
Örnek veri anonimdir: gerçek müşteri, sipariş veya fiyat bilgisi içermez.
Resmî değildir: bu proje Trendyol ile bağlantılı değildir; satıcı kendi verisini kendi kimlik bilgisiyle okur. "Trendyol" ilgili şirketin markasıdır.
Yol haritası: Hepsiburada adaptörü, e-posta raporu, zamanlanmış çalışma → docs/roadmap.md.
Katkı
Issue ve PR'lar açıktır: CONTRIBUTING.md · CODE_OF_CONDUCT.md · SECURITY.md · değişiklikler: CHANGELOG.md
Lisans
MIT © 2026 acar32furkan-glitch
Available Tools
8 toolsdaily_digestCRead-onlyIdempotent
Tüm kuralları çalıştırır ve önceliklendirilmiş Türkçe aksiyon listesi üretir.
| Name | Required | Description | Default |
|---|---|---|---|
| low_stock | No | ||
| sla_hours | No | ||
| return_cluster_min | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered structurally. The description adds that execution spans all rules and that output is prioritized and Turkish, but says nothing about runtime cost, rate limits, or whether the run has side effects on the underlying data.
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 filler, which is structurally clean. But for a tool that aggregates seven sibling domains with three undocumented thresholds, this level of brevity is under-specification rather than conciseness.
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?
An output schema exists, so return values need not be explained, but that is the only gap covered. The three tuning parameters are undocumented and there is no routing guidance against seven siblings, leaving an agent unable to call this correctly without guessing.
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 description documents none of the three parameters (low_stock, sla_hours, return_cluster_min). Their defaults (5, 48, 3) are visible but their meaning and units are left entirely unexplained, so the description fails to compensate for the 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?
The description gives a verb ('çalıştırır' / runs) and a deliverable ('önceliklendirilmiş Türkçe aksiyon listesi' / prioritized Turkish action list), which conveys the aggregate nature of the tool versus the single-concern siblings. However, 'tüm kuralları' (all rules) is undefined and never connects to the sibling domains (orders, returns, SLA, stock, reviews, prices), so an agent cannot tell exactly what is being aggregated.
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, no mention of when to prefer this digest over the individual sibling tools (list_orders, sla_breaches, stock_alerts, etc.), and no prerequisites stated. The agent must infer that this is the umbrella tool from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ordersCRead-onlyIdempotent
Son siparişleri listeler (durum ve tarih filtresiyle). Salt okunur.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| since | No | ||
| status | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true; the description's "Salt okunur" (read-only) merely restates the annotation rather than adding context. Nothing is said about what "recent" means, the default page size behavior, or any rate/scope 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?
Two short sentences, front-loaded with the action and scope, with no filler. It is efficient, though the brevity edges toward under-specification rather than pure conciseness.
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?
An output schema exists, so return values need no explanation, and annotations cover the safety profile. However, with three undocumented parameters and no detail on date format, status values, or paging, the definition is only minimally sufficient for 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 description coverage is 0%, so the description carries the full burden, yet it only alludes to two of three parameters ("durum ve tarih" = status and date) and gives no format for the date value or accepted status values. The limit parameter is never mentioned at all.
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 ("Son siparişleri listeler" = lists recent orders) and scopes it with the available filters. It does not differentiate itself from the closest sibling, list_returns, which follows the identical listing pattern, 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 parenthetical mentions that status and date filters exist, but never says when to reach for this tool versus list_returns, daily_digest, or price_overview. No exclusions, prerequisites, or alternative-routing guidance are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_returnsCRead-onlyIdempotent
İade ve talep kayıtlarını listeler. Salt okunur.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| since | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
'Salt okunur' (read-only) merely restates the readOnlyHint annotation rather than adding context. With annotations already covering readOnly, idempotent, openWorld, and destructive hints, the description contributes nothing new about pagination, default result size, 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?
Two short sentences with no filler, and the core purpose is front-loaded. It is concise, though brevity here reflects missing content rather than disciplined editing.
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?
An output schema exists so return values need no explanation, but the definition omits any guidance on the undocumented 'since'/'limit' filters and gives no usage context. For a list tool with unlabeled parameters, this is incomplete.
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?
Both parameters (limit with default 50, since) have 0% schema description coverage, and the description does not mention either one. The meaning of 'since' (date format? timestamp? cursor?) is left entirely undocumented.
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: 'listeler' (lists) applied to 'İade ve talep kayıtları' (returns and request records). This distinguishes it reasonably from the sibling list_orders, though it does not explicitly name the distinction.
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 when-to-use guidance, no prerequisites, and does not mention any alternative among the many listing siblings (list_orders, stock_alerts, return_clusters). An agent must infer selection entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
price_overviewARead-onlyIdempotent
Fiyat tutarsızlıklarını (listeden yüksek fiyat, olağandışı indirim) raporlar.
| 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?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds useful scope detail by defining what counts as an inconsistency (above-list price, unusual discount), but says nothing about severity, thresholds, or grouping of findings.
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 sentence that front-loads the verb and resource and uses the parenthetical only to sharpen scope. No filler, no restatement of the name.
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 parameters, an output schema present, and annotations covering the safety profile, the description only needs to convey scope — which it does by naming the anomaly types. It is slightly thin on how findings are surfaced, but nothing essential for invoking it is 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?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. Schema coverage is reported as 100% with an empty properties object.
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?
Names a specific verb (raporlar/reports) and a specific resource (fiyat tutarsızlıkları/price inconsistencies), and even enumerates the two anomaly classes it covers (price above list, unusual discounts). It is clearly distinguishable from siblings like stock_alerts or sla_breaches by topic, though it never explicitly contrasts itself with them.
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 parenthetical examples imply when this tool is relevant — when looking for pricing anomalies — but there is no explicit when-to-use, when-not-to-use, or reference to an alternative such as daily_digest. Usage must be inferred from the anomaly types listed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
return_clustersBRead-onlyIdempotent
Son N günde aynı nedenle tekrarlayan iadeleri gruplar (iade kök nedeni).
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| min_count | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds that the tool performs a clustering/aggregation over a time window rather than a raw read, but says nothing about result shape, thresholds, or performance characteristics beyond what the annotations 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?
A single front-loaded sentence with zero filler, and the clustering intent plus the parenthetical root-cause gloss arrive immediately. It is arguably too terse for a tool with 0% schema coverage, but as structure goes it is efficient and well-ordered.
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?
An output schema exists, so return values need not be described, and the annotations cover the safety profile. What remains missing is parameter meaning (notably min_count) and any indication of how clusters are keyed, which leaves the definition only marginally complete for a zero-coverage schema.
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 carries the full burden. It gestures at the 'days' parameter with 'Son N günde' but never ties it to the argument name or explains the default of 30, and it completely ignores 'min_count' (default 3), which controls how many repeats are needed to form a cluster – a critical semantic for interpreting results.
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 and resource ('aynı nedenle tekrarlayan iadeleri gruplar' – groups returns that repeat for the same reason) plus a temporal scope, and the 'iade kök nedeni' (return root cause) gloss makes the output intent unambiguous. It is clearly distinguishable from the sibling list_returns, though it never names that sibling explicitly.
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 embeds its own use case – finding returns that recur for the same root cause – which implies when an agent should reach for it instead of a plain listing. However, it gives no explicit when-to-use/when-not guidance and never mentions alternatives such as list_returns, so the routing decision is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sla_breachesBRead-onlyIdempotent
Hazırlık süresini aşan veya teslim sözü geçmiş siparişleri bulur.
| Name | Required | Description | Default |
|---|---|---|---|
| sla_hours | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds genuine value by defining what counts as a breach (prep-time overrun or passed delivery promise), but it says nothing about scope, filtering behavior, or how the 48-hour default is applied.
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 filler; every word carries the breach definition. Nothing is repeated from the schema or annotations.
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?
An output schema exists, so return values need not be described. However, the sole input parameter's meaning is left unexplained in both schema and description, which is a real gap for a threshold-driven query 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% and the description never mentions 'sla_hours' or explains what the default of 48 measures or applies to (prep time vs. delivery promise). With a single undocumented threshold parameter that materially changes the result set, the description fails to compensate for the schema 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?
The description states a specific verb ('bulur' / finds) and a specific resource set (orders that exceed preparation time or have passed their delivery promise), which is meaningfully more precise than a generic 'list orders'. It is distinguishable from siblings like list_orders, though it does not explicitly name or contrast with any of them.
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 call this tool versus list_orders, stock_alerts, or daily_digest, and no stated prerequisites or exclusions. The agent must infer the trigger condition entirely from the one-line definition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stock_alertsBRead-onlyIdempotent
Stok eşiğinin altına düşen ürünleri, tükenenler önce olacak şekilde döndürür.
| Name | Required | Description | Default |
|---|---|---|---|
| threshold | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds one genuine behavioral fact beyond that – results are sorted with depleted items first – but says nothing about how the threshold is applied, whether results are live or cached, or how large the result set can be.
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 front-loaded sentence with no filler; the scoping condition and the sort order are both packed in efficiently. It is arguably too short for the amount of undocumented behavior it leaves behind, but as a matter of structure there is no waste.
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?
An output schema exists, so return values need no explanation, and the read-only nature is covered by annotations. However, with a fully undocumented parameter and no guidance on when to reach for this tool, the definition is only minimally sufficient for a one-parameter alert query.
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 the single 'threshold' parameter, so the description must carry that burden and does not. It gestures at the concept of a stock threshold but never explains the unit, that the default is 5, or what happens when the parameter is omitted.
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: it returns products that have fallen below a stock threshold, and adds the ordering rule (out-of-stock items first). That is concrete enough to distinguish it from unrelated siblings like list_orders or price_overview, though it never names or contrasts a sibling explicitly.
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 only implied by the subject matter (call it when you want low-stock or depleted products). There is no statement of when to prefer this over a general product listing, no prerequisites, and no mention that the threshold parameter can be tuned to change the result set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unanswered_reviewsCRead-onlyIdempotent
Cevapsız kalmış olumsuz ürün yorumlarını bulur.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered. The description adds no additional behavioral context beyond implying a search operation. It does not describe what happens if no reviews are found, nor does it explain the 'hours' parameter's role. With annotations covering safety, the description adds minimal value, hence a 3.
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 short sentence with zero waste. It is front-loaded with the core purpose. While concise, it sacrifices necessary detail, but that is not a structure issue per se.
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, return values need not be explained. However, the tool has one undocumented parameter and no usage guidelines. For a tool that likely involves filtering and time windows, the description is incomplete; it does not explain the 'hours' default or what constitutes 'unanswered' or 'negative'. It leaves key context 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%, so the schema field 'hours' has no description at all. The tool description does not mention the 'hours' parameter or its meaning (e.g., lookback window). With one parameter completely undocumented, the description fails to compensate for the low schema 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 states a specific verb+resource: finding unanswered negative product reviews. It is clear what the tool does. However, it does not differentiate from sibling tools like sla_breaches or stock_alerts at all. Without sibling differentiation, a 4 is appropriate.
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 tool versus alternatives such as list_orders or sla_breaches. The description does not explain the context or conditions under which unanswered reviews should be checked. It implies usage but provides no explicit when/when-not guidance.
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.
8 tool updates
v0.1.0- First observed
daily_digest - First observed
list_orders - First observed
list_returns - First observed
price_overview - First observed
return_clusters - First observed
sla_breaches - First observed
stock_alerts - First observed
unanswered_reviews
TDQS
Scored across 8 tools
Most tools target clearly distinct concerns (stock, SLA, reviews, pricing, digest), and descriptions explain each. Minor overlap exists: list_orders vs sla_breaches both surface orders, and list_returns vs return_clusters both involve returns, though granularity and intent differ.
All names use consistent snake_case, which is good. However verb style is mixed: list_orders/list_returns use verb_noun while the rest (stock_alerts, sla_breaches, daily_digest, etc.) are noun phrases, a minor deviation.
Eight tools is well-scoped for a seller-operations alerting/monitoring server. Each tool corresponds to a distinct monitoring domain or aggregation, so none feels redundant or filler.
The surface covers orders, returns, stock, SLA, reviews, pricing, and a roll-up digest, giving broad monitoring coverage with no dead ends. It is entirely read-only, so any action-taking (replying to reviews, adjusting stock) is out of scope, but that appears intentional for an insights toolset.
Maintenance
Related MCP Connectors
- LimoneneOAuthapp.limonene
Read-only Amazon seller analytics: sales, Buy Box, FBA inventory, alerts, revenue and fees.
Read-only access to your VortexIQ store data: audits, KPIs, alerts, Brand DNA, reports, Ask VIQ.
Read-only zobrx e-commerce data: P&L, orders, inventory, marketplace, tax & shelf insights.
Read-only product discovery, merchant trust, shipping and returns for SVV-Schatzoekers.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides read-only access to normalized Amazon marketplace data, including product details, search, offers, reviews, sellers, categories, deals, best sellers, identifiers, stock, and sales estimates across 13 marketplaces.MIT
- AlicenseAqualityBmaintenanceEnables Turkish e-commerce sellers to manage Trendyol marketplace store operations through AI assistants, including viewing products, orders, returns, and customer questions, with optional guarded write actions for answering questions and updating stock and prices.6MIT
- AlicenseNot gradedqualityCmaintenanceProvides read-only access to a seller's Ozon cabinet for analyzing products, orders, stock, finances, advertising, reviews, and performing local calculations without making any changes.MIT
- AlicenseNot gradedqualityCmaintenanceEnables read-only analysis of a Yandex Market seller account, including stores, products, orders, stocks, prices, returns, reviews, and quality metrics via the Partner API.MIT