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 MCPshow my latest Trendyol orders from the cosmetics 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
Enzifiri tarafından geliştirilmiştir — https://github.com/enzifiri Ücretsiz ve açık kaynaklıdır. Resmi bir Trendyol ürünü değildir; Trendyol ile bağlantısı yoktur.
Trendyol Partner (Marketplace) API'si için bir Model Context Protocol sunucusu. Claude, Cursor, VS Code Copilot gibi yapay zekâ asistanlarına şunları kazandırır:
Tüm geliştirici dokümantasyonu: developers.trendyol.com'daki 96 kılavuz sayfası ve 93 API işleminin tam OpenAPI tanımı pakete gömülüdür. API anahtarı olmadan da arama yapılabilir, şemalar ve örnek kod görülebilir.
Çoklu mağaza: 1 ya da 20 mağaza fark etmez. Her mağazayı kendi bilgisayarınızda bir kez tanımlarsınız, asistan hangi mağazada işlem yapacağını seçer. Okuma işlemleri tüm mağazalarda tek seferde de çalıştırılabilir.
93 API işleminin tamamı: ürün, stok/fiyat, sipariş, iade, fatura, webhook, soru-cevap, finans, adres, ortak etiket ve ihracat (AutoFT) işlemleri tek bir araçla yapılabilir. Kimlik doğrulama, zorunlu
User-AgentvesellerIdotomatik eklenir.Güvenli varsayılanlar: API bilgileri pakette ya da sohbette yer almaz, sadece sizin bilgisayarınızda saklanır. Canlı mağazalarda değişiklik yapma izni siz açmadıkça kapalıdır.
dryRunile istek göndermeden önce görülebilir.
Kurulum (2 adım)
Node.js 18.17 veya üstü gerekir (nodejs.org).
1. Mağazalarınızı ekleyin
Terminalde çalıştırın. Program Satıcı ID, API Key ve API Secret bilgilerini sorar (Satıcı Paneli > Hesap Bilgilerim > Entegrasyon Bilgileri):
npx -y trendyol-mcp stores addBirden fazla mağazanız varsa her biri için tekrarlayın. Bilgilerin doğru olup olmadığını kontrol etmek için:
npx -y trendyol-mcp stores test2. Asistanınıza ekleyin
Claude Code:
claude mcp add trendyol -- npx -y trendyol-mcpClaude Desktop (claude_desktop_config.json), Cursor (.cursor/mcp.json), VS Code (.vscode/mcp.json, burada anahtar "servers") için:
{
"mcpServers": {
"trendyol": {
"command": "npx",
"args": ["-y", "trendyol-mcp"]
}
}
}Bu kadar. Ayar dosyasına API bilgisi yazmanız gerekmez. Sonradan mağaza ekleyip çıkardığınızda asistanı yeniden başlatmanız da gerekmez.
Related MCP server: trendyol-seller-mcp
Mağaza yönetimi
npx -y trendyol-mcp stores add [ad] # ekle / güncelle
npx -y trendyol-mcp stores list # listele
npx -y trendyol-mcp stores test [ad] # bağlantıyı doğrula (ad verilmezse hepsi)
npx -y trendyol-mcp stores default <ad> # varsayılan mağaza
npx -y trendyol-mcp stores remove <ad> # sil
npx -y trendyol-mcp stores path # dosyanın yeriKomut sormadan da çalışabilir (betikler için):
npx -y trendyol-mcp stores add kozmetik --seller-id 123456 --api-key KEY --api-secret SECRET --label "Kozmetik" --env prod --allow-write hayir --yesSeçenek | Açıklama |
| Canlı veya test ortamı. Test ortamı bilgileri canlıdan farklıdır ve IP yetkilendirmesi gerektirir. |
| Asistan bu mağazada ürün, stok, fiyat, sipariş gibi verileri değiştirebilsin mi? Varsayılan: |
| User-Agent'taki entegratör adı. Varsayılan |
| Görünen ad |
Mağazalar ~/.trendyol-mcp/stores.json dosyasında saklanır (Windows: C:\Users\<kullanıcı>\.trendyol-mcp\stores.json). Dosyayı elle de düzenleyebilirsiniz:
{
"defaultStore": "kozmetik",
"stores": {
"kozmetik": { "label": "Kozmetik", "sellerId": "123456", "apiKey": "...", "apiSecret": "...", "environment": "prod", "allowWrite": false },
"elektronik": { "sellerId": "654321", "apiKey": "...", "apiSecret": "...", "environment": "prod", "allowWrite": true },
"test": { "sellerId": "999", "apiKey": "...", "apiSecret": "...", "environment": "stage", "allowWrite": true }
}
}Bu dosyayı kimseyle paylaşmayın, GitHub'a yüklemeyin.
Gelişmiş: ortam değişkenleri
Değişken | Açıklama |
| Mağaza dosyasının yolu (varsayılan |
| Mağazaları dosya yerine JSON olarak verir (sunucu/CI ortamları için) |
| Tek mağaza için kısa yol ( |
|
|
| İstek zaman aşımı, varsayılan 60000 |
Araçlar
Araç | Ne yapar | Mağaza gerekir mi? |
| Kılavuz ve API işlemlerinde arama (Türkçe karakter duyarsız) | hayır |
| Bir dokümantasyon sayfasını markdown olarak okur, ya da tüm sayfaları listeler | hayır |
| 93 API işlemini bölümlere göre listeler | hayır |
| Bir işlemin URL, parametre, istek/yanıt şeması, örnekleri ve örnek TypeScript kodu | hayır |
| Tanımlı mağazalar (API bilgileri gösterilmez) | hayır |
| Herhangi bir işlemi | evet |
Örnek kullanım
Asistanınıza doğal dille sorabilirsiniz:
"Tüm mağazalarımda bugün gelen yeni siparişleri listele."
"Elektronik mağazasında X barkodlu ürünün stoğunu 50 yap." (sadece yazma izni açık mağazada çalışır)
"Trendyol'da stok ve fiyat nasıl güncellenir? Örnek TypeScript kodu yaz."
"createProducts için zorunlu alanlar neler? Elimdeki ürün JSON'unu buna dönüştür."
"Kozmetik mağazasındaki cevaplanmamış müşteri sorularını getir ve cevap taslakları hazırla."
Notlar
Rate limit: aynı uç noktaya 10 saniyede en fazla 50 istek gönderilebilir. 429 alınırsa sunucu bekleyip otomatik olarak tekrar dener. Ürün servislerinin grup bazlı limitleri için asistana
1-servis-limitlerisayfasını okutabilirsiniz.Test ortamı IP yetkilendirmesi gerektirir. Yetki yoksa 503 hatası döner. Ayrıntılar
3-canlı-test-ortam-bilgilerisayfasında.Toplu işlemler (ürün oluşturma, stok/fiyat güncelleme) bir
batchRequestIddöndürür. İşlemin sonucu bu ID ilegetBatchRequestResultüzerinden sorgulanır.Büyük yanıtlar (örneğin kategori ağacı)
maxResponseCharssınırında kırpılır.
Geliştirme
git clone https://github.com/enzifiri/trendyol-mcp.git
cd trendyol-mcp
npm install
npm test # derler, CLI ve tüm MCP araçlarını dener (gerçek istek göndermez)
npm run inspect # MCP Inspector ile arayüzden deneme
npm run update-docs # developers.trendyol.com'dan dokümanları yeniden indirip kataloğu üretirsrc/index.ts Giriş: argümansız → MCP sunucusu, "stores …" → CLI
src/server.ts MCP araç tanımları
src/cli.ts Mağaza yönetimi komutları
src/config.ts Mağaza dosyası ve ortam değişkenleri
src/client.ts Trendyol HTTP istemcisi (auth, User-Agent, retry, yazma koruması)
src/catalog.ts Doküman kataloğu, arama, şema özetleme, örnek kod
src/attribution.ts Geliştirici bilgisi
scripts/ Doküman indirme, katalog üretme, duman testi
data/catalog.json Üretilmiş katalog (96 kılavuz + 93 işlem)Lisans
MIT, ayrıntılar için LICENSE dosyasına bakın. Dokümantasyon içeriğinin hakları Trendyol'a aittir. Bu proje, geliştiricilerin erişimini kolaylaştırmak için yalnızca bir kopyasını içerir.
Available Tools
6 toolstrendyol_call_apiTrendyol API isteği gönderADestructive
Herhangi bir Trendyol API işlemini operationId ile, seçilen mağaza adına çalıştırır. Kimlik doğrulama, User-Agent ve sellerId mağazadan otomatik eklenir. Önce trendyol_get_operation ile parametreleri öğrenin. store: mağaza adı (trendyol_list_stores), boşsa varsayılan mağaza; "*" verilirse okuma işlemi tüm mağazalarda sırayla çalışır. Yazma işlemleri sadece yazma izni açık mağazalarda çalışır. dryRun: true ile istek gönderilmeden oluşturulan URL/gövde gösterilir.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | JSON istek gövdesi | |
| query | No | Query parametreleri | |
| store | No | Mağaza adı veya satıcı ID. Boş = varsayılan mağaza. "*" = tüm mağazalar (sadece okuma) | |
| dryRun | No | ||
| headers | No | Ek header'lar (örn. storefrontcode) | |
| formData | No | multipart/form-data alanları; dosyalar için { filePath } | |
| pathParams | No | Yol parametreleri, örn. { packageId: 123 } | |
| operationId | Yes | ||
| maxResponseChars | No | Yanıt bu uzunluktan sonra kırpılır (çoklu mağazada mağaza başına) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and openWorldHint=true, but the description adds real context beyond them: auth, User-Agent and sellerId are injected automatically from the store, "*" is read-only, and dryRun:true returns the built URL/body without sending. It does not discuss rate limits, error/partial-failure behavior across multiple stores, or retries.
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?
Information is front-loaded: the tool's purpose, then the auto-injected credentials, then the prerequisite call, then the store and dryRun semantics. It is dense but each sentence carries distinct operational value; only minor tightening is possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a generic destructive dispatcher with 9 parameters and no output schema, the description covers the critical unknowns: scope of stores, read/write permission gating, auth injection, and a safe dryRun preview. Missing only multi-store failure semantics and response-shape expectations, which matter less given the parameterized, open-world nature of the 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 78%, so most parameters (body, query, headers, formData, pathParams, maxResponseChars) are already documented structurally. The description adds meaning for store and dryRun — notably that dryRun shows the generated URL/body without sending — but leaves the remaining parameters unaddressed, so the baseline 3 is appropriate.
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: executes any Trendyol API operation identified by operationId, on behalf of a chosen store. It distinguishes itself from siblings by naming trendyol_get_operation (for parameter discovery) and trendyol_list_stores (for store names), so an agent can tell it apart without opening another schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to call trendyol_get_operation first to learn parameters, defines the store argument's three modes (name, empty = default, "*" = all stores for reads only), and states that write operations run only on stores with write permission. Prerequisites and constraints are spelled out rather than implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trendyol_get_operationTrendyol API işleminin ayrıntılarıARead-only
Bir API işleminin tam tanımını verir: URL'ler, parametreler, istek gövdesi şeması (zorunlu alanlar * ile), yanıt şeması, örnekler ve örnek TypeScript kodu.
| Name | Required | Description | Default |
|---|---|---|---|
| rawSchema | No | true ise sadeleştirilmiş taslak yerine ham JSON Schema döner | |
| operationId | Yes | Örn. getShipmentPackages, createProducts, updatePriceAndInventory |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and openWorldHint=false, so safety is already covered; the description adds genuine value by detailing the shape of the payload returned (schemas, required-field asterisk convention, examples, TS code). With no output schema present, this return-content disclosure is exactly the kind of context the description should carry, though it says nothing about size or truncation of large operation definitions.
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 dense sentence with the resource named first and the returned artifacts listed after the colon, so nothing is wasted. The trailing enumeration is long but each item is informative, and the '*' convention note earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only lookup tool with no output schema, the description successfully enumerates what comes back and how required fields are marked, which is enough for an agent to call it correctly. Only minor gaps remain: no mention of behavior for an unknown operationId or of response size limits.
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 100%: both operationId (with concrete examples) and rawSchema (raw JSON Schema vs. simplified draft) are already documented in the schema. The description adds only the output-side note about required fields being marked with '*', not new parameter semantics. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: it returns the full definition of a single API operation, enumerating exactly what is included (URLs, parameters, request body schema, response schema, examples, TypeScript sample). It is clearly distinct from trendyol_list_operations (enumeration) and trendyol_call_api (execution), but it never explicitly names those siblings to sharpen the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the mention of full schemas, examples and code suggests calling it before trendyol_call_api or after trendyol_list_operations, but no when-to-use/when-not-to-use condition or alternative is spelled out. An agent must infer the position of this tool in the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trendyol_list_operationsTrendyol API işlemlerini listeleBRead-only
Tüm Trendyol API işlemlerini (operationId, HTTP metodu, yol, kısa açıklama) bölümlere göre listeler. Ürün, sipariş, iade, fatura, webhook, finans, soru-cevap, adres, etiket, ihracat (AutoFT) vb.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | all | |
| filter | No | Bölüm, yol, operationId ya da açıklamada geçen kelime (örn. 'iade', 'webhook', 'product') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description goes further by disclosing what the output contains (operationId, HTTP method, path, short description) and the scope of sections, which is valuable since no output schema exists; it does not mention size or pagination 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 sentences, front-loaded with the purpose and return fields, followed by the section enumeration that scopes coverage. No filler, though the trailing category list is somewhat long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully summarizes the returned fields and section scope. However, it omits how this fits the workflow relative to siblings (e.g., discover here, then get_operation/call_api) and says nothing about pagination or result size, leaving gaps for a catalog-listing 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 50%: the 'filter' parameter is documented in the schema but the 'type' enum (all/read/write) has no description. The tool description adds nothing about either parameter, so it fails to compensate for the half of the schema that is 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?
The description states a specific verb (list) and resource (all Trendyol API operations) and even enumerates the fields returned (operationId, HTTP method, path, short description) plus the covered sections. It is clearly distinguishable from get_operation or search_docs by being a full-catalog listing, though it never names a sibling to sharpen the contrast.
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: listing all operations by section suggests a discovery/browse entry point, but the description never states when to prefer this over trendyol_search_docs or trendyol_get_operation, nor any exclusions or prerequisites. Adequate but leaves routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trendyol_list_storesTanımlı Trendyol mağazalarıARead-only
Kullanıcının bu bilgisayarda tanımladığı Trendyol mağazalarını listeler (ad, satıcı ID, ortam, yazma izni). API bilgileri gösterilmez. Birden fazla mağaza varsa trendyol_call_api'de store parametresiyle seçim yapılır.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds genuinely new behavioral detail: the scope is stores defined on this local machine, and API credentials are deliberately not returned, which tells the agent what it will and will not see. It stops short of describing ordering or empty-list behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each earning its place: the listing action, the returned fields, the security caveat, and the follow-up workflow. The core purpose is front-loaded with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must carry the return-value burden, and it does by naming the four fields returned and explicitly stating that API credentials are withheld. Combined with the annotations covering the safety profile, nothing needed to call this correctly 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 no parameter semantics to explain and the baseline is 4. The description correctly does not invent parameter guidance, and instead uses the space to describe the fields the call surfaces.
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 ('Kullanıcının bu bilgisayarda tanımladığı Trendyol mağazalarını listeler') and enumerates the returned fields (ad, satıcı ID, ortam, yazma izni). It also names the sibling tool that consumes the result (trendyol_call_api), so an agent can distinguish it from the doc/operation siblings without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its role as a discovery step by explaining that with multiple stores the choice is made via the store parameter of trendyol_call_api, which is useful workflow context. However, it never explicitly states when to call this tool versus the sibling list tools, nor any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trendyol_read_docTrendyol kılavuz sayfasını okuARead-only
Bir Trendyol dokümantasyon sayfasını markdown olarak döndürür. slug (örn. '2-authorization') ya da tam URL verin. slug boş bırakılırsa tüm kılavuzların listesi döner.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | Sayfa slug'ı veya developers.trendyol.com URL'si | |
| offset | No | Uzun sayfalarda başlangıç karakteri | |
| maxChars | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds useful behavior beyond that: the return format (markdown) and the empty-slug fallback that returns a list of all guides. It does not address pagination interaction between offset/maxChars, so it stays at a solid-but-limited 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?
Three short sentences, front-loaded with the return type followed by the input format and the fallback behavior. No filler, though the fallback clause could be slightly tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly carries the burden of explaining the return value (markdown page vs. guide list) and the input format. It is nearly complete for a read tool; only the offset/maxChars interplay for long pages is left implicit.
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 67%; the schema documents slug and offset, but maxChars has bounds only with no prose. The description reinforces slug semantics (slug OR full URL) and the empty-slug behavior, but adds nothing about offset or maxChars, so it does not fully 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?
States a specific verb and resource: returns a Trendyol documentation page as markdown, plus the fallback listing behavior. An agent can distinguish it from trendyol_search_docs, though the description never names that sibling explicitly to sharpen the contrast.
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 explains what to pass (slug like '2-authorization' or a full URL) and what happens if the slug is empty, which implies the listing use case. However, it never states when to prefer this over trendyol_search_docs, so the selection guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trendyol_search_docsTrendyol dokümantasyonunda araBRead-only
developers.trendyol.com içindeki tüm kılavuzlarda ve API işlemlerinde arama yapar (Türkçe karakter duyarsız). Örnek sorgular: 'stok fiyat güncelleme', 'iade onaylama', 'kargo etiketi', 'webhook', 'createProducts'.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Sadece kılavuz ya da sadece API işlemi | all |
| limit | No | ||
| query | Yes | Aranacak kelimeler |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety and scope are largely covered. The description does add a non-obvious behavioral trait (Turkish diacritic/character insensitivity) and confirms the corpus is its own documentation site, but says nothing about ranking, result ordering, or how hits map to the read/operation tools.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, purpose front-loaded, and the example list consolidates query semantics efficiently. Slightly dense but no wasted filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and three parameters, the description carries the burden of explaining what a result looks like. It never says whether hits are operation names, IDs, or snippets that feed into trendyol_read_doc / trendyol_get_operation, which is the key missing detail for a discovery tool in this toolset.
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 67%: 'query' and 'kind' are documented in the schema, while 'limit' (min 1, max 30, default 10) is not described anywhere. The description's mention of 'kılavuzlar' and 'API işlemleri' loosely maps to the kind enum values guide/operation, and the examples clarify what a query string should look like – useful but only marginal beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: searching all guides and API operations on developers.trendyol.com. It implicitly distinguishes itself from siblings like trendyol_get_operation or trendyol_read_doc, but never names an alternative, so sibling differentiation is left to inference.
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 example queries ('stok fiyat güncelleme', 'iade onaylama', 'createProducts') illustrate when the tool is useful and imply the free-text nature of input. However, there is no explicit guidance on when to search versus going directly to trendyol_get_operation / trendyol_list_operations, nor any exclusions.
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.
6 tool updates
v0.1.0- First observed
trendyol_call_api - First observed
trendyol_get_operation - First observed
trendyol_list_operations - First observed
trendyol_list_stores - First observed
trendyol_read_doc - First observed
trendyol_search_docs
TDQS
Scored across 6 tools
Each tool targets a distinct stage of the workflow: search_docs/read_doc cover documentation browsing and reading, list_operations/get_operation cover API discovery versus detail, and list_stores/call_api handle store selection and execution. There is no meaningful overlap between any pair of tools.
All six tools use a single consistent convention: trendyol_ prefix plus a snake_case verb_noun pattern (search_docs, read_doc, list_operations, get_operation, list_stores, call_api). The verb choices are predictable and uniform across the set.
Six tools is well-scoped for a documentation-and-API-proxy server: four cover the docs/discovery lifecycle, one lists stores, and one executes any operation. No tool feels redundant and none is missing to the point of bloat.
The call_api generic executor plus docs/discovery tools give effectively full coverage of all Trendyol API operations, so no lifecycle dead ends exist for API calls. The only minor gap is that stores can be listed but not created or configured from within this tool set.
Maintenance
Related MCP Connectors
Amazon Seller Central, Ads and Vendor Central in ChatGPT & Claude. 106 tools; writes need approval.
Run an eBay seller account from your AI assistant: orders, listings, stock, fees and payouts.
Connect AI to store orders, products and inventory with scoped access and human approvals.
Run storefronts, listings, orders, content, fulfillment, and analytics through AI.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables eBay sellers to manage inventory, view orders, handle messages, and browse listings through AI assistants using eBay seller APIs.-
- 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
- AlicenseAqualityAmaintenanceEnables AI assistants to search, create, update, delete, and manage product listings, orders, shipping, questions, advertising campaigns, and more across 18 Latin American countries via the MercadoLibre REST API.203MIT
- AlicenseNot gradedqualityCmaintenanceEnables connecting 13 e-commerce platforms such as Amazon, eBay, WooCommerce, and OTTO to Claude, ChatGPT, Copilot, and Cursor, exposing 160 tools to manage stores, orders, products, and marketplaces through natural language.AGPL 3.0