About trendyol-seller-mcp
trendyol-seller-mcp is an unofficial MCP server for Trendyol sellers in Turkey, letting AI assistants inspect products, orders, returns, and customer questions. Write operations are disabled by default and guarded by an environment setting and input validation.
Key features
- 01Browse paginated products and stock or price fields
- 02Inspect orders with personal details redacted by default
- 03Review customer questions and return claims
- 04Answer questions and batch-update stock or prices when enabled
Use cases
- 01Check product approval and inventory
- 02Review order and return status
- 03Inspect and optionally answer customer questions
- 04Adjust stock or prices after explicitly enabling writes
MCP support
The MCP server exposes Trendyol Seller API tools for product, order, customer-question, and claim lookups, plus guarded tools for answering questions and updating stock and prices.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEtrendyol-seller-mcp
An unofficial MCP server for the Trendyol Marketplace seller API, so Turkish e-commerce sellers can drive day-to-day store operations from an AI assistant (Claude Desktop, Claude Code, or any other MCP client): list products, check order packages, review returns, and — when explicitly enabled — answer customer questions and update stock/prices.
Not affiliated with Trendyol. This is an independent open-source project by Koray Nar (Istanbul). It talks to the official seller API using your own API credentials, which you can find in the Trendyol Seller Panel: Satıcı Paneli > Hesap Bilgilerim > Entegrasyon Bilgileri (visible only to the panel's master user).
Built by Koray to support his own AI-automation practice and published as part of his public portfolio. It is a working tool with a mocked test suite — no user counts, clients, or production claims implied.
Türkçe Özet
trendyol-seller-mcp, Trendyol Pazaryeri satıcı API'si için resmi olmayan
bir MCP sunucusudur. Claude gibi bir yapay zeka asistanının mağazanızla
konuşmasını sağlar: ürünleri listeler, sipariş paketlerini ve iadeleri
görüntüler, müşteri sorularını okur. Yazma işlemleri (soru cevaplama,
stok/fiyat güncelleme) varsayılan olarak kapalıdır; yalnızca
TRENDYOL_ALLOW_WRITES=true ortam değişkenini ayarlarsanız çalışır.
Gerekli bilgiler: Satıcı ID, API Key ve API Secret — bunları Satıcı Paneli > Hesap Bilgilerim > Entegrasyon Bilgileri sayfasında bulabilirsiniz. Proje Trendyol ile bağlantılı değildir; kendi API bilgilerinizle, kendi sorumluluğunuzda kullanılır. Sipariş verilerinde müşteri adı ve adresi varsayılan olarak gizlenir (yalnızca şehir gösterilir).
Tools
| Tool | Type | What it does |
|---|---|---|
get_products(page=0, size=50, approved=None, barcode="") | read | Paged product list, trimmed to barcode, title, quantity, salePrice, listPrice, approved. |
get_orders(status="", start_date="", end_date="", page=0, size=50, include_pii=False) | read | Order packages: orderNumber, status, orderDate, totalPrice, lines, and customer city only. Name/full address are redacted unless include_pii=True. Dates accept YYYY-MM-DD or epoch ms. Status values: Created, Picking, Invoiced, Shipped, Cancelled, Delivered, UnDelivered, Returned, AtCollectionPoint, UnSupplied. |
get_customer_questions(status="WAITING_FOR_ANSWER", page=0, size=50) | read | Customer Q&A: id, question text, status, product, existing answer. Other statuses: WAITING_FOR_APPROVE, ANSWERED, REPORTED, REJECTED. |
answer_question(question_id, text) | write | Publishes an answer (10–2000 chars, per Trendyol's rules). Guarded — see below. |
update_price_and_stock(items_json) | write | Batch stock/price update. items_json is a JSON array of {"barcode", "quantity", "salePrice", "listPrice"} (max 1000 items). Returns Trendyol's batchRequestId. Guarded — see below. |
get_claims(page=0, size=20) | read | Returns/claims summary with per-item status and customer reason. Customer names excluded. |
Write guard (read this first)
The two write tools are double-guarded:
- They refuse with a clear message unless the environment variable
TRENDYOL_ALLOW_WRITES=trueis set for the server process. Without it, the server is strictly read-only — an AI assistant cannot change your store. - Client-side validation runs before any request leaves your machine (answer length 10–2000 characters, max 1000 items per stock/price batch, barcode required per item).
Recommended: run read-only first, and only set TRENDYOL_ALLOW_WRITES=true
once you trust the workflow. Answers to customer questions are public and can
only be posted once per question.
Configuration
| Env var | Required | Meaning |
|---|---|---|
TRENDYOL_SELLER_ID | yes | Your seller (cari) ID. |
TRENDYOL_API_KEY | yes | API key from Entegrasyon Bilgileri. |
TRENDYOL_API_SECRET | yes | API secret from Entegrasyon Bilgileri. |
TRENDYOL_BASE_URL | no | Defaults to https://apigw.trendyol.com/integration. Set to https://stageapigw.trendyol.com/integration for Trendyol's stage environment. |
TRENDYOL_ALLOW_WRITES | no | Set to true to enable the two write tools. Anything else keeps them disabled. |
Requests use HTTP Basic auth (key/secret) and the User-Agent Trendyol requires
for self-integrations: "<sellerId> - SelfIntegration".
Quickstart
Requires Python 3.11+ and uv.
git clone https://github.com/koraynar/trendyol-seller-mcp
cd trendyol-seller-mcp
uv venv && uv pip install -e '.[dev]'
uv run --extra dev pytest # all tests are offline (httpx.MockTransport), no live calls
Claude Code
claude mcp add trendyol-seller \
--env TRENDYOL_SELLER_ID=123456 \
--env TRENDYOL_API_KEY=your-key \
--env TRENDYOL_API_SECRET=your-secret \
-- uv run --directory /absolute/path/to/trendyol-seller-mcp trendyol-seller-mcp
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"trendyol-seller": {
"command": "uv",
"args": [
"run",
"--directory",
"/absolute/path/to/trendyol-seller-mcp",
"trendyol-seller-mcp"
],
"env": {
"TRENDYOL_SELLER_ID": "123456",
"TRENDYOL_API_KEY": "your-key",
"TRENDYOL_API_SECRET": "your-secret"
}
}
}
}
Add "TRENDYOL_ALLOW_WRITES": "true" to env only when you want the write
tools active.
Privacy notes
get_ordersredacts customer name and full shipping address by default and returns only the city; passinclude_pii=trueper call when you actually need it.get_customer_questionsandget_claimsnever return customer names.- Credentials come from environment variables only; nothing is written to disk.
Limitations (honest list)
- Unofficial: Trendyol can change the API at any time; endpoints were
verified against
developers.trendyol.com(v2.0 docs, EN) on 2026-08-25. - Covers six common operations, not the full API surface (no product creation, shipping label, invoice, or webhook endpoints).
update_price_and_stockreturns Trendyol'sbatchRequestIdbut does not poll the batch result endpoint; check the batch status yourself if needed.- Trendyol's docs cap question pages at 50 items and order pages at 200; this server clamps to those. No documented cap was found for the product filter (V1) page size, so it is passed through as-is.
- Trendyol's international (non-TR) marketplace API is not targeted or tested.
- No caching, no retry loop — a 429 is surfaced with the
Retry-Aftervalue so the calling assistant can decide when to retry. - Built and tested against mocked responses; field names include tolerant fallbacks where Trendyol's docs show more than one name for the same field.
License
MIT © 2026 Koray Nar
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.