MCP Server
Model Context Protocol
TradeWize MCP Server; Claude, Cursor ve diğer MCP istemcilerine hesap, emir, bot ve OCO araçlarını sunar. Bağlantı standart Model Context Protocol (MCP) üzerinden kurulur.
Bu Sayfada
MCP Nedir?
Model Context Protocol, AI asistanlar ile harici sistemler arasındaki standart iletişim protokolüdür.
AI İstemci
Claude Desktop, Cursor IDE, Continue.dev veya MCP destekleyen herhangi bir AI asistanı.
MCP Protokolü
JSON-RPC 2.0 tabanlı standart protokol. SSE (Server-Sent Events) ve Streamable HTTP transportlarını destekler.
TradeWize Araçları
24 adet tanımlı araç: hesap sorgulama, emir gönderme, bot yönetimi, OCO emirleri ve daha fazlası.
send_order, create_level_bot, create_oco_order vb.) kullanmadan önce mutlaka kullanıcı onayı alın.
Mimari
TradeWize MCP Server, AI istemcileri ile API araçları arasındaki istekleri iletir.
┌─────────────────┐ MCP (SSE/HTTP) ┌──────────────────────┐
│ AI İstemci │ ◄──────────────────────► │ TradeWize │
│ │ │ MCP Server │
│ • Cursor IDE │ OAuth 2.1 Bearer │ mcp.tradewize.com.tr│
│ • Claude │ ◄──────────────────────► │ │
│ • GPT │ │ 24 Tool │
└─────────────────┘ └──────────┬───────────┘
│ REST (JWT)
┌──────────▼───────────┐
│ TradeWize API │
│ Katmanı │
└──────────┬───────────┘
│ Internal
┌──────────▼───────────┐
│ Aracı Kurum │
│ Altyapısı │
└──────────────────────┘
MCP Server
https://mcp.tradewize.com.tr/mcp
Transport
SSE: /sse + /messages
HTTP: /mcp
Bağlantı Kurma
Desteklenen MCP istemcileri için bağlantı örnekleri.
Cursor IDE
Cursor ayarlarında Settings → MCP → Add Server yolunu izleyin veya .cursor/mcp.json dosyasına ekleyin:
{
"mcpServers": {
"tradewize": {
"url": "https://mcp.tradewize.com.tr/sse",
"env": {}
}
}
}
Claude Desktop
Claude Desktop yapılandırma dosyasına (claude_desktop_config.json) ekleyin:
{
"mcpServers": {
"tradewize": {
"type": "sse",
"url": "https://mcp.tradewize.com.tr/sse"
}
}
}
Streamable HTTP (Generic)
MCP 2025-03-26 spesifikasyonunu destekleyen istemciler Streamable HTTP endpoint'ini kullanabilir:
# POST /mcp — JSON-RPC 2.0 isteklerini doğrudan gönder
curl -X POST https://mcp.tradewize.com.tr/mcp \
-H "Authorization: Bearer MCP_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}'
GET /sse ile bağlanır, ardından POST /messages?sessionId=... ile JSON-RPC mesajları gönderir. Endpoint adresi SSE olayı olarak otomatik iletilir.
Kimlik Doğrulama
TradeWize MCP Server, OAuth 2.1 Dynamic Client Registration akışını kullanır.
Adım Adım Akış
İstemci Kaydı (Otomatik)
MCP istemcisi POST /.well-known/oauth-authorization-server keşif endpoint'ini okur ve ardından POST /oauth/register ile otomatik kayıt olur.
Yetkilendirme İsteği
İstemci GET /oauth/authorize?client_id=...&code_challenge=... ile yönlendirilir. Tarayıcı açılır ve kullanıcıdan API Anahtarı girilmesi istenir.
API Anahtarı Doğrulama
MCP Server, girilen API anahtarını TradeWize Auth servisine ileterek JWT token alır ve kullanıcı kimliğini doğrular.
MCP Access Token
İstemci POST /oauth/token ile authorization code'u MCP Access Token'a dönüştürür. Bu token tüm araç çağrılarında Authorization: Bearer header'ında gönderilir.
Manuel Token Testi
# MCP araçlarını listele
curl -X POST https://mcp.tradewize.com.tr/mcp \
-H "Authorization: Bearer eyJ..." \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Hesap Araçları
Hesap listesi, portföy, günlük emirler ve brokerage girişi için araçlar.
Oturum açmış kullanıcının kimlik bilgilerini (userId, e-posta, rol) döner. Parametre gerektirmez. Araç zincirine başlamadan önce kullanıcı kimliğini doğrulamak için çağrılabilir.
PARAMETRELER
Parametre yok.
Kullanıcının yapılandırılmış tüm aracı kurumlardaki hesaplarını tek liste olarak döner. Dönen accountNumber ve brokerageCode değerleri tüm emir araçlarında kullanılır.
PARAMETRELER
— Parametre yok —
YANIT ALANLARI
| Alan | Açıklama |
|---|---|
| accountNumber | Hesap numarası — emir araçlarında account_number olarak kullanın |
| accountName | Hesap adı |
| brokerageCode | Aracı kurum kodu — emir araçlarında brokerage_code olarak kullanın |
| brokerageName | Aracı kurum adı |
Belirtilen hesabın anlık portföyünü (pozisyonlar) döner. İsteğe bağlı olarak açık emirleri de dahil edebilir.
| Parametre | Tür | Açıklama |
|---|---|---|
| brokerage_code | string zorunlu | Aracı kurum kodu (get_accounts yanıtından) |
| account_number | string zorunlu | Hesap numarası (get_accounts yanıtından) |
| include_orders | boolean isteğe bağlı | Açık emirleri de getir (varsayılan: false) |
Hesabın o iş gününe ait tüm emirlerini listeler. Kurum ve hesap bazında hız sınırı uygulanabilir.
| Parametre | Tür | Açıklama |
|---|---|---|
| brokerage_code | string zorunlu | Aracı kurum kodu (get_accounts yanıtından) |
| account_number | string zorunlu | Hesap numarası |
Emir Araçları
Gerçek para ve piyasa riski taşır. Kullanıcı onayı almadan emir göndermeyin.
Tek bir hisse emri gönderir. Önce get_accounts ile hesap listesi alın.
| Parametre | Tür | Açıklama |
|---|---|---|
| account_number | string zorunlu | Hesap numarası (get_accounts yanıtındaki accountNumber) |
| brokerage_code | string zorunlu | Aracı kurum kodu (get_accounts yanıtındaki brokerageCode) |
| symbol | string zorunlu | BIST kodu (ör. THYAO, GARAN) |
| quantity | integer zorunlu | Lot/adet (pozitif tam sayı) |
| buy_sell | integer zorunlu | 1 = alış, 2 = satış |
| order_type | integer zorunlu | 1 = piyasa, 2 = limit |
| price | number isteğe bağlı | Limit fiyat (piyasa emrinde 0) |
Zincir emir gönderir — mevcut bir emrin tamamlanmasına bağlı koşullu emir.
| Parametre | Tür | Açıklama |
|---|---|---|
| account_number | string zorunlu | Hesap numarası (get_accounts yanıtından) |
| brokerage_code | string zorunlu | Aracı kurum kodu (get_accounts yanıtından) |
| symbol | string zorunlu | BIST kodu |
| quantity | integer zorunlu | Miktar |
| buy_sell | integer zorunlu | 1 = alış, 2 = satış |
| order_type | integer zorunlu | 1 = piyasa, 2 = limit |
| price | number isteğe bağlı | Limit fiyat |
| reference_order_no | string zorunlu | Bağlanacak üst emrin numarası |
Tek istekte birden fazla emir gönderir. Her emir nesnesi kendi hesap ve kurum bilgisini taşır.
| Parametre | Tür | Açıklama |
|---|---|---|
| orders | array zorunlu | Emir nesneleri dizisi. Her nesne: account_number, brokerage_code, symbol, quantity, buy_sell, order_type, price |
Açık bekleyen bir emri iptal eder.
| Parametre | Tür | Açıklama |
|---|---|---|
| brokerage_code | string zorunlu | Aracı kurum kodu |
| account_number | string zorunlu | Hesap numarası |
| order_no | string zorunlu | İptal edilecek emir numarası |
| symbol | string zorunlu | Hisse kodu |
Birden fazla emri tek istekte toplu olarak iptal eder.
| Parametre | Tür | Açıklama |
|---|---|---|
| brokerage_code | string zorunlu | Aracı kurum kodu |
| account_number | string zorunlu | Hesap numarası |
| items | array zorunlu | İptal nesneleri: her nesne order_no ve symbol içerir |
Sistem Araçları
Hesaba ait tüm bot sistemlerini listeleyen araç.
Hesaba ait tüm bot sistemlerini listeler: GridBot, TradingViewBot, StockBot, SignalBot vb.
| Parametre | Tür | Açıklama |
|---|---|---|
| brokerage_code | string zorunlu | Aracı kurum kodu |
| account_number | string zorunlu | Hesap numarası |
| bot_type | integer[] isteğe bağlı | Bot tipi filtresi; boş = tüm tipler |
| is_active | integer isteğe bağlı | 1=hepsi, 2=aktifler, 3=pasifler (varsayılan: 1) |
| is_deleted | integer isteğe bağlı | 1=hepsi, 2=silinmemişler, 3=silinenler (varsayılan: 2) |
GridBot Araçları
GridBot, belirlenen alış/satış fiyat seviyelerinde otomatik emir gönderen algo-bot türüdür. Altı araç; oluşturma, güncelleme ve izleme işlemlerini kapsar.
| Alan | Anlamı |
|---|---|
| max_buy_price | Anlık fiyat bu değerin üzerindeyse yeni alış emri gönderilmez. 0 üst sınır uygulanmadığı anlamına gelir. |
| min_buy_price | Anlık fiyat bu değerin altındaysa yeni alış emri gönderilmez. 0 alt sınır uygulanmadığı anlamına gelir. |
| max_sell_price | Anlık fiyat bu değerin üzerindeyse yeni satış emri gönderilmez. 0 üst sınır uygulanmadığı anlamına gelir. |
| min_sell_price | Anlık fiyat bu değerin altındaysa yeni satış emri gönderilmez. 0 alt sınır uygulanmadığı anlamına gelir. |
| level_type | 1=yüzde tabanlı kademe (Percentage), 2=fiyat kademesi tabanlı (Level). buy_gap/sell_gap bu ölçeğe göre yorumlanır. |
| level_bot_type | 1=aralık bazlı (RangeBased; detaydaki alış/satış adetleri kullanılır), 2=kâr bazlı (ProfitBased; adetler hedef kâra ve komisyona göre hesaplanır). |
| is_active | false olduğunda bot hiçbir yeni broker alış veya satış emri göndermez. Açık çift-emir kayıtları geçmiş/mutabakat amacıyla korunur; bot yeniden etkinleştirilene kadar işlenmez. |
| level_bot_details[].is_active | false olduğunda yalnız o sembol detayı hiçbir yeni alış veya satış emri göndermez; mevcut çift-emir kayıtları korunur. |
Hesaba ait tüm GridBot'ları listeler.
| Parametre | Tür | Açıklama |
|---|---|---|
| brokerage_code | string zorunlu | Aracı kurum kodu |
| account_number | string zorunlu | Hesap numarası |
| with_passive | integer isteğe bağlı | 1=pasifler dahil, 0=yalnız aktifler (varsayılan: 1) |
| with_deleted | integer isteğe bağlı | 1=silinenler dahil, 0=silinmemişler (varsayılan: 1) |
ID'ye göre tek bir GridBot'u detaylarıyla döner.
| Parametre | Tür | Açıklama |
|---|---|---|
| id | integer zorunlu | GridBot ID |
| brokerage_code | string zorunlu | Aracı kurum kodu |
Yeni bir GridBot oluşturur. level_bot_details dizisinde her sembol için ayrı fiyat aralıkları ve miktar tanımlanır.
| Parametre | Tür | Açıklama |
|---|---|---|
| brokerage_code | string zorunlu | Aracı kurum kodu |
| account_number | string zorunlu | Hesap numarası |
| name | string zorunlu | Bot adı |
| is_active | boolean zorunlu | false ise alış ve satış dahil hiçbir yeni broker emri gönderilmez |
| buy_gap | number isteğe bağlı | Alış gap değeri |
| sell_gap | number isteğe bağlı | Satış gap değeri |
| bot_start_time_string | string isteğe bağlı | Başlangıç saati (ör. "09:30") |
| bot_end_time_string | string isteğe bağlı | Bitiş saati (ör. "17:30") |
| level_bot_details | array isteğe bağlı | Sembol detayları: symbol, max_buy_price, min_buy_price, max_sell_price, min_sell_price, buy_quantity, sell_quantity |
Mevcut bir GridBot'u günceller. Önce get_level_bot ile mevcut yapıyı alın, değiştirmek istediğiniz alanları güncelleyin. Botu tamamen durdurmak için is_active=false gönderin.
| Parametre | Tür | Açıklama |
|---|---|---|
| id | integer zorunlu | Güncellenecek GridBot ID |
| brokerage_code | string zorunlu | Aracı kurum kodu |
| name | string zorunlu | Bot adı |
| is_active | boolean zorunlu | false ise alış ve satış dahil hiçbir yeni broker emri gönderilmez |
| level_bot_details | array isteğe bağlı | Tüm sembol detayları (mevcut listeyi tam olarak gönderin) |
Bir GridBot için aktif (bekleyen/devam eden) çift emirleri döner.
| Parametre | Tür | Açıklama |
|---|---|---|
| id | integer zorunlu | GridBot ID |
| brokerage_code | string zorunlu | Aracı kurum kodu |
Bir GridBot'un tamamlanmış işlem geçmişini sayfalı olarak döner.
| Parametre | Tür | Açıklama |
|---|---|---|
| id | integer zorunlu | GridBot ID |
| brokerage_code | string zorunlu | Aracı kurum kodu |
| start_date | string zorunlu | Başlangıç tarihi (ISO 8601) |
| end_date | string zorunlu | Bitiş tarihi (ISO 8601) |
| page | integer isteğe bağlı | Sayfa no (varsayılan: 1) |
| page_size | integer isteğe bağlı | Sayfa başına kayıt (varsayılan: 10) |
TradingViewBot Araçları
TradingView webhook sinyallerine göre otomatik emir gönderen bot. 5 araç ile tam CRUD + çift emir izleme.
Hesaba ait tüm TradingViewBot'ları listeler.
| Parametre | Tür | Açıklama |
|---|---|---|
| brokerage_code | string zorunlu | Aracı kurum kodu |
| account_number | string zorunlu | Hesap numarası |
| with_passive | integer isteğe bağlı | 1=pasifler dahil (varsayılan: 1) |
| with_deleted | integer isteğe bağlı | 1=silinenler dahil (varsayılan: 1) |
ID'ye göre tek bir TradingViewBot'u detaylarıyla döner.
| Parametre | Tür | Açıklama |
|---|---|---|
| id | integer zorunlu | TradingViewBot ID |
| brokerage_code | string zorunlu | Aracı kurum kodu |
Yeni bir TradingViewBot oluşturur. Sembol bazında fiyat aralıkları ve miktarlar trading_view_bot_details dizisinde tanımlanır.
| Parametre | Tür | Açıklama |
|---|---|---|
| brokerage_code | string zorunlu | Aracı kurum kodu |
| account_number | string zorunlu | Hesap numarası |
| name | string zorunlu | Bot adı |
| is_active | boolean zorunlu | Bot aktif mi? |
| quantity | integer isteğe bağlı | Varsayılan emir miktarı |
| stop_loss | number isteğe bağlı | Stop-loss yüzdesi |
| take_profit | number isteğe bağlı | Take-profit yüzdesi |
| trading_view_bot_details | array isteğe bağlı | Sembol detayları: symbol, quantity, max_buy_price, min_buy_price vb. |
Mevcut bir TradingViewBot'u günceller. Önce get_trading_view_bot ile mevcut yapıyı alın.
| Parametre | Tür | Açıklama |
|---|---|---|
| id | integer zorunlu | TradingViewBot ID |
| brokerage_code | string zorunlu | Aracı kurum kodu |
| name | string zorunlu | Bot adı |
| is_active | boolean zorunlu | Bot aktif mi? |
| trading_view_bot_details | array isteğe bağlı | Tüm sembol detayları |
Bir TradingViewBot için hesap numarasına göre çift emirleri döner.
| Parametre | Tür | Açıklama |
|---|---|---|
| id | integer zorunlu | TradingViewBot ID |
| brokerage_code | string zorunlu | Aracı kurum kodu |
| account_number | string zorunlu | Hesap numarası |
| with_passive | integer isteğe bağlı | 1=tamamlananlar dahil, 0=yalnız aktifler (varsayılan: 0) |
OCO Emir Araçları
OCO (One-Cancels-the-Other) emirleri borsaya gönderilmez; TradeWize veritabanında saklanır. Her grup 1 Stop-Loss + 1 veya daha fazla kademeli Take-Profit emrinden oluşur. Anlık fiyat TP seviyesine ulaşırsa o kademe, SL seviyesine düşerse tüm grup için market satış verilir.
BIST Fiyat Kademe Kuralları
0,01 adım
20,00 – 49,99 → 0,02 adım
50,00 – 99,99 → 0,05 adım
100,00 – 249,99 → 0,10 adım
250,00 – 499,99 → 0,25 adım
500,00 – 999,99 → 0,50 adım
1.000 – 2.499,99 → 1,00 adım
2.500 ve üzeri → 2,50 adım
Hesaba ait tüm OCO emir satırlarını listeler. TP ve SL ayrı satırlar olarak gelir; aynı groupId değerine sahip satırlar aynı gruba aittir.
| Parametre | Tür | Açıklama |
|---|---|---|
| brokerage_code | string zorunlu | Aracı kurum kodu |
| account_number | string zorunlu | Hesap numarası |
Yeni bir OCO emir grubu oluşturur. Tüm fiyatlar BIST kademe kurallarına uygun olmalı; TP fiyatları SL fiyatından yüksek olmalıdır.
| Parametre | Tür | Açıklama |
|---|---|---|
| brokerage_code | string zorunlu | Aracı kurum kodu |
| account_number | string zorunlu | Hesap numarası |
| symbol | string zorunlu | Hisse kodu (ör. EREGL) |
| stop_loss_price | number zorunlu | Stop-Loss fiyatı (BIST kademelere uygun) |
| stop_loss_quantity | integer zorunlu | Toplam pozisyon miktarı |
| take_profit_items | array zorunlu | Kademeli TP'ler: her nesne price ve quantity içerir. TP fiyatı SL'den büyük olmalı. |
| due_date | string isteğe bağlı | Vade tarihi (ISO 8601) |
| notes | string isteğe bağlı | Not |
{
"brokerage_code": "TradeWiseYatirim",
"account_number": "123456",
"symbol": "EREGL",
"stop_loss_price": 21.00,
"stop_loss_quantity": 100,
"take_profit_items": [
{ "price": 22.20, "quantity": 40 },
{ "price": 23.00, "quantity": 40 },
{ "price": 24.00, "quantity": 20 }
]
}
Bir OCO emir grubunu ve gruptaki tüm aktif emirleri iptal eder.
| Parametre | Tür | Açıklama |
|---|---|---|
| id | integer zorunlu | OCO emir ID (get_oco_orders yanıtındaki id) |
| brokerage_code | string zorunlu | Aracı kurum kodu |
Tedbir Araçları
BIST'in tedbirli hisseler verisini sorgular (Açığa Satış Yasağı, Brüt Takas, Tek Fiyat İşlem vb.).
Tümü salt-okunur ve kamuya açık veriye dayanır; restriction_type sayı (ör. 3) veya isim
(ör. BrutTakas) olarak verilebilir.
Bir hissenin şu an belirli bir tedbirde olup olmadığını döner. Örn: "EREGL brüt takasta mı?". Yalnızca aktif tedbirlere bakar.
PARAMETRELER
| Parametre | Tür | Açıklama |
|---|---|---|
| code | string zorunlu | Hisse kodu (ör. EREGL, ASELS) |
| restriction_type | string zorunlu | Tedbir tipi — sayı (3) veya isim (BrutTakas) |
Belirli bir tedbir tipinde şu an bulunan tüm hisseleri listeler. Örn: "Brüt takastaki tüm hisseler".
PARAMETRELER
| Parametre | Tür | Açıklama |
|---|---|---|
| restriction_type | string zorunlu | Tedbir tipi — sayı (3) veya isim (BrutTakas) |
Bir hissenin tüm tedbirlerini (aktif + geçmiş) tarih aralıklarıyla döner. Aktif tedbirlerde bitiş tarihi (validTo) boştur.
PARAMETRELER
| Parametre | Tür | Açıklama |
|---|---|---|
| code | string zorunlu | Hisse kodu (ör. ASELS) |
Örnek Konuşmalar
TradeWize MCP araçları için örnek kullanım senaryoları.
Portföy Sorgulama
get_accounts) ardından portföyünüzü sorguluyorum… (get_portfolio)TradeWiseYatirim hesabınızda şu an 3 pozisyon var: THYAO ×200, GARAN ×500, EREGL ×100.
Limit Emir Gönderme
THYAO — 100 lot ALIŞ, limit 52,50 TL, TradeWiseYatirim hesabı.
Bu emri göndermemi onaylıyor musunuz?
send_order) Emir No: BRS-20250412-001, Durum: Beklemede.
OCO Emir Oluşturma
create_oco_order)Oluşturuldu. Grup ID: 1042. TradeWize EREGL'yi izlemeye başladı.
GridBot Yönetimi
get_level_bots)3 aktif bot bulundu. Her birinin çift emirleri kontrol ediliyor… (
get_level_bot_pair_orders × 3)Bot #12 "THYAO Scalper": 4 açık çift emir
Bot #15 "GARAN Level": 2 açık çift emir
Bot #18 "EREGL Range": 6 açık çift emir
Tüm Araçlar (24)
TradeWize MCP Server'da tanımlı araçların referans tablosu.
| Araç Adı | Kategori | Tür | Açıklama |
|---|---|---|---|
| get_user_info | Hesap | OKUMA | Oturum kullanıcı bilgisi |
| get_accounts | Hesap | OKUMA | Tüm aracı kurum hesapları |
| get_portfolio | Hesap | OKUMA | Anlık portföy (pozisyonlar) |
| get_daily_orders | Hesap | OKUMA | Günlük emir listesi |
| send_order | Emir | YAZMA | Tek hisse emri gönder |
| send_chain_order | Emir | YAZMA | Zincir emir gönder |
| send_order_batch | Emir | YAZMA | Toplu emir gönder |
| cancel_order | Emir | İPTAL | Tekil emir iptal |
| cancel_order_batch | Emir | İPTAL | Toplu emir iptal |
| get_systems | Sistem | OKUMA | Tüm bot sistemleri listesi |
| get_level_bots | GridBot | OKUMA | GridBot listesi |
| get_level_bot | GridBot | OKUMA | Tek GridBot detayı |
| create_level_bot | GridBot | YAZMA | Yeni GridBot oluştur |
| update_level_bot | GridBot | GÜNCELLE | GridBot güncelle |
| get_level_bot_pair_orders | GridBot | OKUMA | Aktif çift emirler |
| get_level_bot_transaction_history | GridBot | OKUMA | İşlem geçmişi (sayfalı) |
| get_trading_view_bots | TVBot | OKUMA | TradingViewBot listesi |
| get_trading_view_bot | TVBot | OKUMA | Tek TradingViewBot detayı |
| create_trading_view_bot | TVBot | YAZMA | Yeni TradingViewBot oluştur |
| update_trading_view_bot | TVBot | GÜNCELLE | TradingViewBot güncelle |
| get_trading_view_bot_pair_orders | TVBot | OKUMA | Çift emirler |
| get_oco_orders | OCO | OKUMA | OCO emir listesi |
| create_oco_order | OCO | YAZMA | Yeni OCO emir grubu |
| cancel_oco_order | OCO | İPTAL | OCO grup iptali |
| check_symbol_restriction | Tedbir | OKUMA | Hisse şu an bu tedbirde mi? |
| get_restricted_symbols_by_type | Tedbir | OKUMA | Bir tedbir tipindeki tüm hisseler |
| get_symbol_restrictions | Tedbir | OKUMA | Hissenin tedbir geçmişi (aktif+geçmiş) |
