MCP Server

Model Context Protocol

TradeWise MCP Server, AI asistanlarının (Claude, Cursor, GPT vb.) doğrudan TradeWise işlem altyapısına erişmesini sağlar. Standart Model Context Protocol (MCP) üzerinden bağlanan her AI istemcisi, hesap sorgulama, emir gönderme, bot yönetimi ve OCO emirleri gibi tüm işlemleri doğal dil ile gerçekleştirebilir.

https://mcp.tradewise.com.tr/mcp OAuth 2.1 SSE + Streamable HTTP 24 Tool

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.

TradeWise Araçları

24 adet tanımlı araç: hesap sorgulama, emir gönderme, bot yönetimi, OCO emirleri ve daha fazlası.

Önemli: MCP araçları gerçek para ve gerçek piyasa riski taşır. Emir gönderen araçları (send_order, create_level_bot, create_oco_order vb.) kullanmadan önce mutlaka kullanıcı onayı alın.

Mimari

TradeWise MCP Server, AI istemcileri ile TradeWise altyapısı arasında güvenli bir köprü görevi görür.

┌─────────────────┐     MCP (SSE/HTTP)      ┌──────────────────────┐
│   AI İstemci    │ ◄──────────────────────► │  TradeWise           │
│                 │                          │  MCP Server          │
│  • Cursor IDE   │    OAuth 2.1 Bearer      │  mcp.tradewise.com.tr│
│  • Claude       │ ◄──────────────────────► │                      │
│  • GPT          │                          │  24 Tool             │
└─────────────────┘                          └──────────┬───────────┘
                                                        │ REST (JWT)
                                             ┌──────────▼───────────┐
                                             │  TradeWise API       │
                                             │  Katmanı             │
                                             └──────────┬───────────┘
                                                        │ Internal
                                             ┌──────────▼───────────┐
                                             │  Aracı Kurum         │
                                             │  Altyapısı           │
                                             └──────────────────────┘

MCP Server

https://mcp.tradewise.com.tr/mcp

Transport

SSE: /sse + /messages
HTTP: /mcp


Bağlantı Kurma

MCP destekleyen herhangi bir istemciyi TradeWise MCP Server'a bağlayabilirsiniz.

Cursor IDE

Cursor ayarlarında Settings → MCP → Add Server yolunu izleyin veya .cursor/mcp.json dosyasına ekleyin:

{
  "mcpServers": {
    "tradewise": {
      "url": "https://mcp.tradewise.com.tr/sse",
      "env": {}
    }
  }
}

Claude Desktop

Claude Desktop yapılandırma dosyasına (claude_desktop_config.json) ekleyin:

{
  "mcpServers": {
    "tradewise": {
      "type": "sse",
      "url": "https://mcp.tradewise.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.tradewise.com.tr/mcp \
  -H "Authorization: Bearer MCP_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/list"
  }'
SSE bağlantısı: SSE transport kullanan istemciler önce 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

TradeWise MCP Server, OAuth 2.1 Dynamic Client Registration akışını kullanır. API Anahtarınızı MCP istemcisine vermeniz yeterlidir.

Adım Adım Akış

1

İ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.

2

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.

3

API Anahtarı Doğrulama

MCP Server, girilen API Anahtarını TradeWise Auth servisine ileterek JWT token alır ve kullanıcı kimliğini doğrular.

4

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.tradewise.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.

OKUMA get_user_info

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.

OKUMA get_accounts

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

AlanAçıklama
accountNumberHesap numarası — emir araçlarında account_number olarak kullanın
accountNameHesap adı
brokerageCodeAracı kurum kodu — emir araçlarında brokerage_code olarak kullanın
brokerageNameAracı kurum adı
OKUMA get_portfolio

Belirtilen hesabın anlık portföyünü (pozisyonlar) döner. İsteğe bağlı olarak açık emirleri de dahil edebilir.

ParametreTürAçıklama
brokerage_codestring zorunluAracı kurum kodu (get_accounts yanıtından)
account_numberstring zorunluHesap numarası (get_accounts yanıtından)
include_ordersboolean isteğe bağlıAçık emirleri de getir (varsayılan: false)
OKUMA get_daily_orders

Hesabın o iş gününe ait tüm emirlerini listeler. Kurum ve hesap bazında hız sınırı uygulanabilir.

ParametreTürAçıklama
brokerage_codestring zorunluAracı kurum kodu (get_accounts yanıtından)
account_numberstring zorunluHesap numarası

Emir Araçları

Gerçek para ve piyasa riski taşır. Kullanıcı onayı almadan emir göndermeyin.

Uyarı: Bu araçlar gerçek BIST emirleri gönderir. AI asistanı, kullanıcı açıkça onaylamadan hiçbir emir aracını çağırmamalıdır.
EMİR send_order

Tek bir hisse emri gönderir. Önce get_accounts ile hesap listesi alın.

ParametreTürAçıklama
account_numberstring zorunluHesap numarası (get_accounts yanıtındaki accountNumber)
brokerage_codestring zorunluAracı kurum kodu (get_accounts yanıtındaki brokerageCode)
symbolstring zorunluBIST kodu (ör. THYAO, GARAN)
quantityinteger zorunluLot/adet (pozitif tam sayı)
buy_sellinteger zorunlu1 = alış, 2 = satış
order_typeinteger zorunlu1 = piyasa, 2 = limit
pricenumber isteğe bağlıLimit fiyat (piyasa emrinde 0)
EMİR send_chain_order

Zincir emir gönderir — mevcut bir emrin tamamlanmasına bağlı koşullu emir.

ParametreTürAçıklama
account_numberstring zorunluHesap numarası (get_accounts yanıtından)
brokerage_codestring zorunluAracı kurum kodu (get_accounts yanıtından)
symbolstring zorunluBIST kodu
quantityinteger zorunluMiktar
buy_sellinteger zorunlu1 = alış, 2 = satış
order_typeinteger zorunlu1 = piyasa, 2 = limit
pricenumber isteğe bağlıLimit fiyat
reference_order_nostring zorunluBağlanacak üst emrin numarası
EMİR send_order_batch

Tek istekte birden fazla emir gönderir. Her emir nesnesi kendi hesap ve kurum bilgisini taşır.

ParametreTürAçıklama
ordersarray zorunluEmir nesneleri dizisi. Her nesne: account_number, brokerage_code, symbol, quantity, buy_sell, order_type, price
İPTAL cancel_order

Açık bekleyen bir emri iptal eder.

ParametreTürAçıklama
brokerage_codestring zorunluAracı kurum kodu
account_numberstring zorunluHesap numarası
order_nostring zorunluİptal edilecek emir numarası
symbolstring zorunluHisse kodu
İPTAL cancel_order_batch

Birden fazla emri tek istekte toplu olarak iptal eder.

ParametreTürAçıklama
brokerage_codestring zorunluAracı kurum kodu
account_numberstring zorunluHesap numarası
itemsarray zorunluİptal nesneleri: her nesne order_no ve symbol içerir

Sistem Araçları

Hesaba ait tüm bot sistemlerini listeleyen araç.

OKUMA get_systems

Hesaba ait tüm bot sistemlerini listeler: LevelBot, TradingViewBot, StockBot, SignalBot vb.

ParametreTürAçıklama
brokerage_codestring zorunluAracı kurum kodu
account_numberstring zorunluHesap numarası
bot_typeinteger[] isteğe bağlıBot tipi filtresi; boş = tüm tipler
is_activeinteger isteğe bağlı1=hepsi, 2=aktifler, 3=pasifler (varsayılan: 1)
is_deletedinteger isteğe bağlı1=hepsi, 2=silinmemişler, 3=silinenler (varsayılan: 2)

LevelBot Araçları

LevelBot, belirlenen alış/satış fiyat seviyelerinde otomatik emir gönderen algo-bot türüdür. 6 araç ile tam CRUD + izleme desteği sunar.

OKUMA get_level_bots

Hesaba ait tüm LevelBot'ları listeler.

ParametreTürAçıklama
brokerage_codestring zorunluAracı kurum kodu
account_numberstring zorunluHesap numarası
with_passiveinteger isteğe bağlı1=pasifler dahil, 0=yalnız aktifler (varsayılan: 1)
with_deletedinteger isteğe bağlı1=silinenler dahil, 0=silinmemişler (varsayılan: 1)
OKUMA get_level_bot

ID'ye göre tek bir LevelBot'u detaylarıyla döner.

ParametreTürAçıklama
idinteger zorunluLevelBot ID
brokerage_codestring zorunluAracı kurum kodu
YAZMA create_level_bot

Yeni bir LevelBot oluşturur. level_bot_details dizisinde her sembol için ayrı fiyat aralıkları ve miktar tanımlanır.

ParametreTürAçıklama
brokerage_codestring zorunluAracı kurum kodu
account_numberstring zorunluHesap numarası
namestring zorunluBot adı
is_activeboolean zorunluBot aktif mi?
real_botboolean zorunluGerçek emir (true) veya demo (false)
buy_gapnumber isteğe bağlıAlış gap değeri
sell_gapnumber isteğe bağlıSatış gap değeri
bot_start_time_stringstring isteğe bağlıBaşlangıç saati (ör. "09:30")
bot_end_time_stringstring isteğe bağlıBitiş saati (ör. "17:30")
level_bot_detailsarray isteğe bağlıSembol detayları: symbol, max_buy_price, min_buy_price, max_sell_price, min_sell_price, buy_quantity, sell_quantity
GÜNCELLE update_level_bot

Mevcut bir LevelBot'u günceller. Önce get_level_bot ile mevcut yapıyı alın, değiştirmek istediğiniz alanları güncelleyin.

ParametreTürAçıklama
idinteger zorunluGüncellenecek LevelBot ID
brokerage_codestring zorunluAracı kurum kodu
namestring zorunluBot adı
is_activeboolean zorunluBot aktif mi?
level_bot_detailsarray isteğe bağlıTüm sembol detayları (mevcut listeyi tam olarak gönderin)
OKUMA get_level_bot_pair_orders

Bir LevelBot için aktif (bekleyen/devam eden) çift emirleri döner.

ParametreTürAçıklama
idinteger zorunluLevelBot ID
brokerage_codestring zorunluAracı kurum kodu
OKUMA get_level_bot_transaction_history

Bir LevelBot'un tamamlanmış işlem geçmişini sayfalı olarak döner.

ParametreTürAçıklama
idinteger zorunluLevelBot ID
brokerage_codestring zorunluAracı kurum kodu
start_datestring zorunluBaşlangıç tarihi (ISO 8601)
end_datestring zorunluBitiş tarihi (ISO 8601)
pageinteger isteğe bağlıSayfa no (varsayılan: 1)
page_sizeinteger 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.

OKUMA get_trading_view_bots

Hesaba ait tüm TradingViewBot'ları listeler.

ParametreTürAçıklama
brokerage_codestring zorunluAracı kurum kodu
account_numberstring zorunluHesap numarası
with_passiveinteger isteğe bağlı1=pasifler dahil (varsayılan: 1)
with_deletedinteger isteğe bağlı1=silinenler dahil (varsayılan: 1)
OKUMA get_trading_view_bot

ID'ye göre tek bir TradingViewBot'u detaylarıyla döner.

ParametreTürAçıklama
idinteger zorunluTradingViewBot ID
brokerage_codestring zorunluAracı kurum kodu
YAZMA create_trading_view_bot

Yeni bir TradingViewBot oluşturur. Sembol bazında fiyat aralıkları ve miktarlar trading_view_bot_details dizisinde tanımlanır.

ParametreTürAçıklama
brokerage_codestring zorunluAracı kurum kodu
account_numberstring zorunluHesap numarası
namestring zorunluBot adı
is_activeboolean zorunluBot aktif mi?
real_botboolean zorunluGerçek emir veya demo
quantityinteger isteğe bağlıVarsayılan emir miktarı
stop_lossnumber isteğe bağlıStop-loss yüzdesi
take_profitnumber isteğe bağlıTake-profit yüzdesi
trading_view_bot_detailsarray isteğe bağlıSembol detayları: symbol, quantity, max_buy_price, min_buy_price vb.
GÜNCELLE update_trading_view_bot

Mevcut bir TradingViewBot'u günceller. Önce get_trading_view_bot ile mevcut yapıyı alın.

ParametreTürAçıklama
idinteger zorunluTradingViewBot ID
brokerage_codestring zorunluAracı kurum kodu
namestring zorunluBot adı
is_activeboolean zorunluBot aktif mi?
trading_view_bot_detailsarray isteğe bağlıTüm sembol detayları
OKUMA get_trading_view_bot_pair_orders

Bir TradingViewBot için hesap numarasına göre çift emirleri döner.

ParametreTürAçıklama
idinteger zorunluTradingViewBot ID
brokerage_codestring zorunluAracı kurum kodu
account_numberstring zorunluHesap numarası
with_passiveinteger 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; TradeWise 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 – 19,99 → 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
OKUMA get_oco_orders

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.

ParametreTürAçıklama
brokerage_codestring zorunluAracı kurum kodu
account_numberstring zorunluHesap numarası
YAZMA create_oco_order

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.

ParametreTürAçıklama
brokerage_codestring zorunluAracı kurum kodu
account_numberstring zorunluHesap numarası
symbolstring zorunluHisse kodu (ör. EREGL)
stop_loss_pricenumber zorunluStop-Loss fiyatı (BIST kademelere uygun)
stop_loss_quantityinteger zorunluToplam pozisyon miktarı
take_profit_itemsarray zorunluKademeli TP'ler: her nesne price ve quantity içerir. TP fiyatı SL'den büyük olmalı.
due_datestring isteğe bağlıVade tarihi (ISO 8601)
notesstring 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 }
  ]
}
İPTAL cancel_oco_order

Bir OCO emir grubunu ve gruptaki tüm aktif emirleri iptal eder.

ParametreTürAçıklama
idinteger zorunluOCO emir ID (get_oco_orders yanıtındaki id)
brokerage_codestring zorunluAracı 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.

Tedbir tipi kodları: 1=Açığa Satış Yasağı, 2=Kredili İşlem Yasağı, 3=Brüt Takas, 4=Tek Fiyat İşlem, 5=Emir İptali Yasağı, 6=Açılış/Kapanış Kısıtı, 7=Değer Tavanı, 8=İşlem Sırası Kapatma, 99=Diğer.
OKUMA check_symbol_restriction

Bir hissenin şu an belirli bir tedbirde olup olmadığını döner. Örn: "EREGL brüt takasta mı?". Yalnızca aktif tedbirlere bakar.

PARAMETRELER

ParametreTürAçıklama
codestring zorunluHisse kodu (ör. EREGL, ASELS)
restriction_typestring zorunluTedbir tipi — sayı (3) veya isim (BrutTakas)
OKUMA get_restricted_symbols_by_type

Belirli bir tedbir tipinde şu an bulunan tüm hisseleri listeler. Örn: "Brüt takastaki tüm hisseler".

PARAMETRELER

ParametreTürAçıklama
restriction_typestring zorunluTedbir tipi — sayı (3) veya isim (BrutTakas)
OKUMA get_symbol_restrictions

Bir hissenin tüm tedbirlerini (aktif + geçmiş) tarih aralıklarıyla döner. Aktif tedbirlerde bitiş tarihi (validTo) boştur.

PARAMETRELER

ParametreTürAçıklama
codestring zorunluHisse kodu (ör. ASELS)

Örnek Konuşmalar

AI asistanı ile TradeWise MCP araçlarını nasıl kullanabileceğinize dair gerçek dünya senaryoları.

Portföy Sorgulama

SEN
Mevcut portföyümü göster, TradeWiseYatirim hesabımda ne kadar hisse var?
AI
Hesaplarınızı getiriyorum… (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

SEN
THYAO'dan 100 lot 52.50 TL limit fiyatla alış yap.
AI
Onaylamadan önce emir detaylarını göstereyim:

THYAO — 100 lot ALIŞ, limit 52,50 TL, TradeWiseYatirim hesabı.

Bu emri göndermemi onaylıyor musunuz?
SEN
Evet, gönder.
AI
Emir gönderildi. (send_order) Emir No: BRS-20250412-001, Durum: Beklemede.

OCO Emir Oluşturma

SEN
EREGL için 100 lot OCO kur: SL 21 TL, TP'ler 22.20'de 40 lot, 23'te 40 lot, 24'te 20 lot.
AI
Fiyat seviyeleri BIST kademeleri açısından doğru. OCO grubunu oluşturuyorum… (create_oco_order)

Oluşturuldu. Grup ID: 1042. TradeWise EREGL'yi izlemeye başladı.

LevelBot Yönetimi

SEN
Aktif LevelBot'larımı listele ve çalışan çift emirleri göster.
AI
LevelBot'larınız getiriliyor… (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)

TradeWise MCP Server'da tanımlı tüm araçların hızlı referans tablosu.

Araç Adı Kategori Tür Açıklama
get_user_infoHesapOKUMAOturum kullanıcı bilgisi
get_accountsHesapOKUMATüm aracı kurum hesapları
get_portfolioHesapOKUMAAnlık portföy (pozisyonlar)
get_daily_ordersHesapOKUMAGünlük emir listesi
send_orderEmirYAZMATek hisse emri gönder
send_chain_orderEmirYAZMAZincir emir gönder
send_order_batchEmirYAZMAToplu emir gönder
cancel_orderEmirİPTALTekil emir iptal
cancel_order_batchEmirİPTALToplu emir iptal
get_systemsSistemOKUMATüm bot sistemleri listesi
get_level_botsLevelBotOKUMALevelBot listesi
get_level_botLevelBotOKUMATek LevelBot detayı
create_level_botLevelBotYAZMAYeni LevelBot oluştur
update_level_botLevelBotGÜNCELLELevelBot güncelle
get_level_bot_pair_ordersLevelBotOKUMAAktif çift emirler
get_level_bot_transaction_historyLevelBotOKUMAİşlem geçmişi (sayfalı)
get_trading_view_botsTVBotOKUMATradingViewBot listesi
get_trading_view_botTVBotOKUMATek TradingViewBot detayı
create_trading_view_botTVBotYAZMAYeni TradingViewBot oluştur
update_trading_view_botTVBotGÜNCELLETradingViewBot güncelle
get_trading_view_bot_pair_ordersTVBotOKUMAÇift emirler
get_oco_ordersOCOOKUMAOCO emir listesi
create_oco_orderOCOYAZMAYeni OCO emir grubu
cancel_oco_orderOCOİPTALOCO grup iptali
check_symbol_restrictionTedbirOKUMAHisse şu an bu tedbirde mi?
get_restricted_symbols_by_typeTedbirOKUMABir tedbir tipindeki tüm hisseler
get_symbol_restrictionsTedbirOKUMAHissenin tedbir geçmişi (aktif+geçmiş)