TEFAS (Turkey Electronic Fund Distribution Platform) verilerini çekmek için MCP Server ve CLI Tool.
- ✅ MCP Server: Gemini CLI ile entegre Model Context Protocol sunucusu
- ✅ CLI Tool: Komut satırından doğrudan kullanılabilir
- ✅ Tek Dosya: Tüm fonksiyonalite
mcp_server.pyiçinde - ✅ Gerçek Zamanlı Veri: TEFAS API'den canlı veriler
# 1. Bağımlılıkları yükle pip install -r requirements.txt # 2. MCP server'ı doğrula gemini mcp listextension yükleme için gemini extensions install https://github.com/develooper1994/tefas_scraper
# Fon analizi gemini "TLY fonu için son 1 aylık analiz verilerini getir" -y # Karşılaştırma gemini "TLY ve DFI fonu için son 1 aylık analiz verileriyle karşılaştır" -y # Tarihsel bilgi gemini "TTE fonu için 2024-01-01 ve 2024-01-31 arası genel bilgileri getir" -y# Fon analizi python mcp_server.py --cli analyze --fund-type YAT --fund-code TTE --price-range 1M --pretty # Tarihsel bilgi python mcp_server.py --cli history-info --fund-code TTE --start-date 2024-01-01 --end-date 2024-01-31 --pretty # Portföy dağılımı python mcp_server.py --cli history-allocation --fund-code TTE --start-date 2024-01-01 --end-date 2024-01-31 --pretty # Yardım python mcp_server.py --helpfrom mcp_server import TefasScraper scraper = TefasScraper() # Fon analizi result = scraper.get_fund_analysis("YAT", "TTE", price_range="1M") print(result) # Tarihsel bilgi result = scraper.get_history("BindHistoryInfo", "TTE", "2024-01-01", "2024-01-31") print(result)Server üç ana araç sunar:
Kapsamlı fon analizi (getiriler, portföy dağılımı, risk metrikleri, fiyat serileri)
Parametreler:
fund_type: Fon tipi (YAT, EMK, BYF, GYF, GSYF)fund_code: Fon kodu (ör: TTE, TLY, AFA)start_date: Başlangıç tarihi (DD.MM.YYYY) - opsiyonelend_date: Bitiş tarihi (DD.MM.YYYY) - opsiyonelprice_range: Zaman aralığı (1H, 1M, 3M, 6M, YTD, 1Y, 3Y, 5Y) - opsiyonel
Tarihsel genel bilgiler (fiyat, katılımcı sayısı, portföy büyüklüğü)
Parametreler:
fund_code: Fon kodustart_date: Başlangıç (YYYY-MM-DD)end_date: Bitiş (YYYY-MM-DD)fund_type: Fon tipi (varsayılan: "ALL")
Tarihsel portföy dağılımı
Parametreler: get_fund_history_info ile aynı
- YAT: Menkul Kıymet Yatırım Fonu
- EMK: BES (Bireysel Emeklilik Sistemi) Yatırım Fonu
- BYF: Borsa Yatırım Fonu
- GYF: Gayrimenkul Yatırım Fonu
- GSYF: Girişim Sermayesi Yatırım Fonu
- Unix timestamp (saniye)
- Son fiyat bilgisi
- Fonun tam adı
- Tedavüldeki pay sayısı
- Yatırımcı sayısı
- Portföy büyüklüğü
- Unix timestamp (saniye)
- Fonun tam adı
- Varlık dağılımı (null olanlar hariç)
- Fon bilgileri (tam ad, kategori, sıralama)
- Portföy büyüklüğü ve yatırımcı sayısı
- Günlük getiri ve son fiyat
- Getiri oranları (1A, 3A, 6A, 1Y, 3Y, 5Y)
- Risk değeri
- Portföy dağılımı
- Fiyat serileri (1H, 1A, 3A, 6A, YB, 1Y, 3Y, 5Y)
- KAP linki
- CLI ve analyze_fund:
DD.MM.YYYY(örn:15.11.2025) - history araçları:
YYYY-MM-DD(örn:2025-11-15)
1H: Son 1 hafta1M: Son 1 ay3M: Son 3 ay6M: Son 6 ayYTD: Yıl başından bugüne1Y: Son 1 yıl3Y: Son 3 yıl5Y: Son 5 yıl
tefas_scraper/ ├── mcp_server.py # Ana dosya (MCP server + CLI tool) ├── requirements.txt # Python bağımlılıkları ├── .gemini/settings.json # MCP server kaydı ├── tefas_scraper_extension/ # Eski implementasyon (opsiyonel) └── tefasUrlExploration/ # Legacy bash scriptler (referans) # ✅ Başarılı Test 1: Gemini CLI $ gemini "TLY fonu için son 1 aylık analiz verilerini getir" -y # Çıktı: TERA PORTFÖY BİRİNCİ SERBEST FON (TLY) # Son Fiyat: 2646.246782, Günlük Getiri: %1.1338, 1 Aylık: %28.979564 # ✅ Başarılı Test 2: CLI Tool $ python mcp_server.py --cli analyze --fund-type YAT --fund-code TTE --price-range 1M --pretty # Gerçek TEFAS verileri JSON formatındarequests # HTTP client python-dateutil # Tarih hesaplamaları fastmcp # MCP server - Dil: Python 3.12+
- Transport: stdio (MCP)
- WAF Koruması: Otomatik header ve referer yönetimi
- Hata Yönetimi: Structured JSON responses
- Session Yönetimi: Persistent HTTP session
Bu proje açık kaynaklıdır.
Not: Legacy bash scriptler tefasUrlExploration/ klasöründe referans için saklanmaktadır.