AI LLM'lerin MetaTrader 5 platformu üzerinden işlem gerçekleştirmesini sağlayın
Claude Desktop config.json'a ekle
{
"mcpServers": {
"ariadng-metatrader-mcp-server": {
"command": "python",
"args": [
"-m",
"metatrader_mcp_server"
]
}
}
} Kaynak kodu al ve yerel olarak çalıştır
git clone https://github.com/ariadng/metatrader-mcp-server.git ~/.mcp/metatrader-mcp-server
cd ~/.mcp/metatrader-mcp-server MetaTrader MCP Sunucusu, AI asistanlarını (Claude, ChatGPT gibi) MetaTrader 5 ticaret platformuna bağlayan bir köprüdür. Düğmeleri tıklamak yerine, AI asistanınıza ne yapması gerektiğini söyleyebilirsiniz:
"Hesap bakiyemi göster" "0.01 lot EUR/USD satın al" "Tüm kârlı pozisyonları kapat"
AI request'inizi anlar ve MetaTrader 5'te otomatik olarak çalıştırır.
Siz → AI Asistanı → MCP Sunucusu → MetaTrader 5 → Ticaret İşlemleriniz
Bunu dikkatlice okuyun:
Finansal araçlarla ticaret önemli kayıp riski taşır. Bu yazılım olduğu gibi sağlanır ve geliştiriciler bu yazılımın kullanılmasından kaynaklanan herhangi bir ticaret kaybı, kazancı veya sonucu için sorumluluk kabul etmez.
Bu yazılımı kullanarak şunları kabul etmiş olursunuz:
Bu finansal tavsiye değildir. Her zaman sorumlu bir şekilde ticaret yapın.
Başlamadan önce şunlara sahip olduğunuzdan emin olun:
Terminal veya komut istemi açın ve çalıştırın:
pip install metatrader-mcp-server
Araçlar → Seçenekler adresine gidinExpert Advisors sekmesini tıklayınAlgoritmic trading' için izin ver kutusunu işaretleyinTamam düğmesine tıklayınNasıl kullanmak istediğinize bağlı olarak birini seçin:
Claude Desktop config dosyasını bulun:
%APPDATA%\Claude\claude_desktop_config.json~/Library/Application Support/Claude/claude_desktop_config.jsonDosyayı açın ve bu yapılandırmayı ekleyin:
{
"mcpServers": {
"metatrader": {
"command": "metatrader-mcp-server",
"args": [
"--login", "YOUR_MT5_LOGIN",
"--password", "YOUR_MT5_PASSWORD",
"--server", "YOUR_MT5_SERVER",
"--transport", "stdio"
]
}
}
}
Seçenek: Özel MT5 Terminal Yolunu Belirtin
MT5 terminaliniz standart olmayan bir konuma kuruluysa, --path parametresini ekleyin:
{
"mcpServers": {
"metatrader": {
"command": "metatrader-mcp-server",
"args": [
"--login", "YOUR_MT5_LOGIN",
"--password", "YOUR_MT5_PASSWORD",
"--server", "YOUR_MT5_SERVER",
"--transport", "stdio",
"--path", "C:\\Program Files\\MetaTrader 5\\terminal64.exe"
]
}
}
}
YOUR_MT5_LOGIN, YOUR_MT5_PASSWORD ve YOUR_MT5_SERVER değerlerini gerçek kimlik bilgilerinizle değiştirin
Claude Desktop'ı yeniden başlatın
Sohbete başlayın! Deneyin: "Hesap bakiyem nedir?"
metatrader-http-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVER --host 0.0.0.0 --port 8000
Seçenek: Özel MT5 Terminal Yolunu Belirtin
MT5 terminaliniz standart olmayan bir konuma kuruluysa, --path parametresini ekleyin:
metatrader-http-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVER --path "C:\Program Files\MetaTrader 5\terminal64.exe" --host 0.0.0.0 --port 8000
Tarayıcınızda http://localhost:8000/docs adresine giderek API belgelerine bakın
Open WebUI'da:
http://localhost:8000 girinArtık Open WebUI sohbetlerinizde ticaret araçlarını kullanabilirsiniz!
Canlı tick verilerini (bid, ask, spread, volume) panolar, botlar veya izleme için WebSocket üzerinden aktarın:
metatrader-quote-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVER
Herhangi bir WebSocket istemcisi ile bağlantı kurun:
websocat ws://localhost:8765
connected mesajı ve ardından sürekli tick güncellemelerini JSON olarak alacaksınız. Tüm ayrıntılar için WebSocket Fiyat Sunucusu bölümüne bakın.
MCP sunucusunu Windows VPS'sinde (MT5'in kurulu olduğu) çalıştırın ve Claude Desktop veya Claude Code'dan uzaktan bağlanın.
Sunucu tarafı (Windows VPS üzerinde):
metatrader-mcp-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVER
Bu, varsayılan olarak SSE sunucusunu 0.0.0.0:8080 adresinde başlatır. --host ve --port ile özelleştirin:
metatrader-mcp-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVER --host 127.0.0.1 --port 9000
İstemci tarafı (yerel makinenizde Claude Desktop config):
{
"mcpServers": {
"metatrader": {
"url": "http://VPS_IP:8080/sse"
}
}
}
VPS_IP kısmını sunucunuzun IP adresi ile değiştirin.
Güvenlik Uyarısı: MCP protokolü kimlik doğrulama içermez. SSE sunucusunu ağ üzerinden açığa çıkarırken, erişimi IP ile sınırlamak için bir firewall kullanın veya kimlik doğrulama olan ters proxy'nin arkasına yerleştirin ya da SSH tüneli kullanın.
claude-skill/ dizininde önceden oluşturulmuş bir Ticaret Terminali Asistanı becerisi bulunur. Claudeye tüm 32 ticaret aracı, çıktı biçimlendirmesi ve MetaTrader 5 domain uzmanlığı hakkında yapılandırılmış bilgi sağlar.
Seçenek 1: Symlink (önerilir)
Standart Claude Code beceri dizininden claude-skill/ dizinine symlink oluşturun:
cd metatrader-mcp-server
mkdir -p .claude
ln -s ../claude-skill .claude/skills
Beceri otomatik olarak keşfedilecek ve /trading olarak kullanılabilir olacaktır.
Seçenek 2: Kopyala
Beceri dosyalarını Claude Code beceri dizinine kopyalayın:
cd metatrader-mcp-server
mkdir -p .claude/skills
cp -r claude-skill/trading .claude/skills/trading
Claude Desktop için, beceriyi global Claude beceri dizinine kopyalayın:
# macOS
mkdir -p ~/Library/Application\ Support/Claude/skills
cp -r claude-skill/trading ~/Library/Application\ Support/Claude/skills/trading
# Windows
mkdir "%APPDATA%\Claude\skills"
xcopy /E claude-skill\trading "%APPDATA%\Claude\skills\trading\"
Bir kez kurulduktan sonra /trading ile çağırın veya doğrudan ticaret ile ilgili soruları sorun:
/trading
> Hesap panom göster
> 1.0800'de SL ile 0.1 lot EURUSD satın al
> Tüm kârlı pozisyonları kapat
> GBPUSD H4 mumlarını göster
WebSocket Fiyat Sunucusu, MetaTrader 5'ten gerçek zamanlı tick verilerini herhangi bir WebSocket istemcisine akıtır. Canlı panolar, algoritmik ticaret frontendleri ve gerçek zamanlı izleme için idealdir.
metatrader-quote-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVER
Sunucu varsayılan olarak ws://0.0.0.0:8765 adresinde başlar.
metatrader-quote-server \
--login YOUR_LOGIN \
--password YOUR_PASSWORD \
--server YOUR_SERVER \
--host 127.0.0.1 \
--port 9000 \
--symbols "EURUSD,GBPUSD,XAUUSD" \
--poll-interval 200
| Bayrak | Çevre Değişkeni | Varsayılan | Açıklama |
|---|---|---|---|
--host |
QUOTE_HOST |
0.0.0.0 |
Bağlanacak host |
--port |
QUOTE_PORT |
8765 |
Bağlanacak port |
--symbols |
QUOTE_SYMBOLS |
XAUUSD,USOIL,GBPUSD,USDJPY,EURUSD,BTCUSD |
Akış yapılacak semboller (virgülle ayrılmış) |
--poll-interval |
QUOTE_POLL_INTERVAL_MS |
100 |
Tick yoklama aralığı (milisaniye) |
CLI bayrakları çevre değişkenlerinden öncelikli olup, çevre değişkenleri varsayılan değerlerden önceliklidir.
Bağlantıda — sunucu, sembol listesi ile connected mesajı gönderir ve ardından önbelleğe alınmış tikleri gönderir:
{"type": "connected", "symbols": ["XAUUSD", "EURUSD", "GBPUSD"], "poll_interval_ms": 100}
Tick güncellemeleri — bid, ask veya volume değiştiğinde gönderilir:
{"type": "tick", "symbol": "XAUUSD", "bid": 2345.67, "ask": 2345.89, "spread": 0.22, "volume": 1234, "time": "2026-03-14T10:30:45+00:00"}
Hatalar — bir sembol alınamazsa gönderilir:
{"type": "error", "symbol": "INVALID", "message": "Symbol not found or data unavailable"}
import asyncio
import json
from websockets.asyncio.client import connect
async def main():
async with connect("ws://localhost:8765") as ws:
async for message in ws:
tick = json.loads(message)
if tick["type"] == "tick":
print(f"{tick['symbol']}: {tick['bid']}/{tick['ask']} (spread: {tick['spread']})")
asyncio.run(main())
Yapılandırıldıktan sonra doğal olarak sohbet edebilirsiniz:
Hesap Bilgisini Kontrol Edin:
Siz: "Hesap bilgilerimi göster"
Claude: Bakiye, öz kaynaklar, marj, kaldıraç vb. döndürür
Pazar Verilerini Alın:
Siz: "EUR/USD'nin güncel fiyatı nedir?"
Claude: Bid, ask ve spreadi gösterir
Ticaret Yapın:
Siz: "GBP/USD'nin 0.01 lotunu 1.2500 stop loss ve 1.2700 take profit ile satın al"
Claude: Ticaret işlemini yürütür ve onaylar
Pozisyonları Yönetin:
Siz: "Kayıplı tüm pozisyonlarımı kapat"
Claude: Pozisyonları kapatır ve sonuçları raporlar
Geçmişi Analiz Edin:
Siz: "Geçen haftamın EUR/USD için tüm ticaretlerini göster"
Claude: Ticaret geçmişini tablo olarak döndürür
# Hesap bilgisini al
curl http://localhost:8000/api/v1/account/info
# Güncel fiyat al
curl "http://localhost:8000/api/v1/market/price?symbol_name=EURUSD"
# Pazar emri yerleştir
curl -X POST http://localhost:8000/api/v1/order/market \
-H "Content-Type: application/json" \
-d '{
"symbol": "EURUSD",
"volume": 0.01,
"type": "BUY",
"stop_loss": 1.0990,
"take_profit": 1.1010
}'
# Tüm açık pozisyonları al
curl http://localhost:8000/api/v1/positions
# Spesifik bir pozisyonu kapat
curl -X DELETE http://localhost:8000/api/v1/positions/12345
from metatrader_client import MT5Client
# MT5'e bağlan
config = {
"login": 12345678,
"password": "your_password",
"server": "MetaQuotes-Demo"
}
client = MT5Client(config)
client.connect()
# Hesap istatistiklerini al
stats = client.account.get_trade_statistics()
print(f"Bakiye: ${stats['balance']}")
print(f"Öz Kaynaklar: ${stats['equity']}")
# Güncel fiyat al
price = client.market.get_symbol_price("EURUSD")
print(f"EUR/USD Bid: {price['bid']}, Ask: {price['ask']}")
# Pazar emri yerleştir
result = client.order.place_market_order(
type="BUY",
symbol="EURUSD",
volume=0.01,
stop_loss=1.0990,
take_profit=1.1010
)
print(result['message'])
# Tüm pozisyonları kapat
client.order.close_all_positions()
# Bağlantıyı kes
client.disconnect()
get_account_info - Bakiye, öz kaynaklar, kâr, marj seviyesi, kaldıraç, para birimi alınget_symbols - Mevcut tüm ticaret sembollerini listeleget_symbol_price - Bir sembol için güncel bid/ask fiyatını alget_candles_latest - Son fiyat mumlarını al (OHLCV verisi)get_candles_by_date - Tarih aralığı için tarihsel mumları alget_symbol_info - Sembol hakkında detaylı bilgi alplace_market_order - Anında BUY/SELL emirleri yürütplace_pending_order - Gelecekteki yürütme için limit/stop emirleri yerleştirmodify_position - Stop loss veya take profit'i güncellemodify_pending_order - Beklemede olan emir parametrelerini değiştirget_all_positions - Tüm açık pozisyonları görüntüleget_positions_by_symbol - Pozisyonları ticaret çiftine göre filtreleget_positions_by_id - Spesifik pozisyon detaylarını alclose_position - Spesifik bir pozisyonu kapatclose_all_positions - Tüm açık pozisyonları kapatclose_all_positions_by_symbol - Bir sembol için tüm pozisyonları kapatclose_all_profitable_positions - Yalnızca kazançlı işlemleri kapatclose_all_losing_positions - Yalnızca kayıplı işlemleri kapatget_all_pending_orders - Tüm beklemede olan emirleri listeleget_pending_orders_by_symbol - Beklemede olan emirleri sembol'e göre filtrelecancel_pending_order - Spesifik bir beklemede olan emri iptal etcancel_all_pending_orders - Tüm beklemede olan emirleri iptal etcancel_pending_orders_by_symbol - Bir sembol için beklemede olan emirleri iptal etget_deals - Geçmiş tamamlanmış işlemleri alget_orders - Geçmiş emir kayıtlarını alKimlik bilgilerini komut satırına koymak yerine, bir .env dosyası oluşturun:
LOGIN=12345678
PASSWORD=your_password
SERVER=MetaQuotes-Demo
# Seçenel: Özel MT5 terminal yolunu belirt (sağlanmazsa otomatik algılanır)
# MT5_PATH=C:\Program Files\MetaTrader 5\terminal64.exe
Ardından sunucuyu argüman olmadan başlatın:
metatrader-http-server
Sunucu otomatik olarak .env dosyasından kimlik bilgilerini yükleyecektir.
MCP sunucusu çoklu taşıma modlarını destekler:
| Bayrak | Çevre Değişkeni | Varsayılan | Açıklama |
|---|---|---|---|
--transport |
MCP_TRANSPORT |
sse |
Taşıma türü: sse, stdio, streamable-http |
--host |
MCP_HOST |
0.0.0.0 |
Bağlanacak host (SSE/HTTP sadece) |
--port |
MCP_PORT |
8080 |
Bağlanacak port (SSE/HTTP sadece) |
CLI bayrakları çevre değişkenlerinden öncelikli olup, çevre değişkenleri varsayılan değerlerden önceliklidir.
metatrader-http-server --host 127.0.0.1 --port 9000
MT5 istemcisi ek yapılandırmayı destekler:
config = {
"login": 12345678,
"password": "your_password",
"server": "MetaQuotes-Demo",
"path": None, # MT5 terminal yürütülebilir yolu (varsayılan: otomatik algıla)
"timeout": 60000, # Bağlantı zaman aşımı (milisaniye) (varsayılan: 60000)
"portable": False, # Taşınabilir modu kullan (varsayılan: False)
"max_retries": 3, # Maksimum bağlantı yeniden deneme sayısı (varsayılan: 3)
"backoff_factor": 1.5, # Yeniden deneme arasındaki gecikme çarpanı (varsayılan: 1.5)
"cooldown_time": 2.0, # Bağlantılar arasında beklenecek saniye (varsayılan: 2.0)
"debug": True # Debug günlüğünü etkinleştir (varsayılan: False)
}
Yapılandırma Seçenekleri:
LongPort OpenAPI, gerçek zamanlı borsa verisi sağlar ve MCP üzerinden yapay zeka analiz erişimi ile ticaret yetenekleri sunur.
30+ EVM ağında kapsamlı blockchain hizmetleri sunarak native token, ERC20, NFT, smart contract, transaction ve ENS resolution desteği sağlar.
Massive.com Finansal Pazar Verileri için bir MCP sunucusu
Base Network entegrasyonu ile onchain araçlarınızı güçlendirin, Coinbase API aracılığıyla cüzdan yönetimi, fon transferleri, smart contract ve DeFi işlemleri gerçekleştirin.
Yahoo Finance entegrasyonu ile hisse senedi piyasası verilerini ve opsiyon önerilerini kolayca çekebilirsiniz.
Xero'nun API'si ile entegre olan ve Xero'nun muhasebe ile iş yönetimi özelliklerine standartlaştırılmış erişim sağlayan bir MCP sunucusu.