Finance & Fintech Python ★ 160

narumiruna/yfinance-mcp

Yahoo Finance'ten veri almak için yfinance kullanan bir MCP sunucusu.

Claude Desktop config.json'a ekle

{
  "mcpServers": {
    "narumiruna-yfinance-mcp": {
      "command": "python",
      "args": [
        "-m",
        "yfinance_mcp"
      ]
    }
  }
}

Yahoo Finance MCP Server

PyPI version Python CI License: MIT

Model Context Protocol (MCP) sunucusu, yapay zeka asistanlarına yfinance aracılığıyla Yahoo Finance verilerine erişim sağlar. Hisse senedi bilgilerini, finansal haberleri, sektör sıralamalarını sorgulayın ve profesyonel finansal grafikler oluşturun — tümü AI sohbetinizden.

Özellikler

  • Hisse Senedi Verileri — Şirket bilgileri, finansallar, değerleme metrikleri, temettüler ve ticari veriler
  • Finansal Tablolar — Gelir tablosu ve bilanço, geçmiş verilerle (EBIT, Yatırım Sermayesi, vb.)
  • Finansal Haberler — Herhangi bir ticker için son haberler ve basın açıklamaları
  • Arama — Yahoo Finance'de hisse senedi, ETF ve haberleri bulun
  • Sektör Sıralamaları — Sektöre göre en iyi ETF'ler, yatırım fonları, şirketler, büyüme liderleri ve en iyi performans gösterenler
  • Fiyat Geçmişi — Geçmiş OHLCV verileri markdown tabloları veya profesyonel grafikler olarak
  • Grafik Oluşturma — Mum, VWAP ve hacim profili grafikleri WebP görselleri olarak döndürülür
  • Opsiyon Verileri — Opsiyon zincirleri çağrı ve satım işlemleri, kullanım fiyatları, IV ve son kullanma tarihleri ile
  • Sahiplik Verileri — Büyük hissedarlar, kurumsal yatırımcılar, yatırım fonu sahipleri ve içeriden transfer işlemleri

Araçlar

yfinance_get_ticker_info

Şirket bilgileri, finansallar, ticari metrikleri ve yönetim verilerini içeren kapsamlı hisse senedi verilerini alın.

Parametre Tür Gerekli Açıklama
symbol string Evet Hisse senedi ticker sembolü (örn. AAPL, GOOGL, MSFT)

Döner: Şirket detayları, fiyat verileri, değerleme metrikleri, ticari bilgiler, temettüler, finansallar ve performans göstergeleri içeren JSON nesnesi.

yfinance_get_ticker_news

Belirli bir hisse senedi için son haberler ve basın açıklamalarını alın.

Parametre Tür Gerekli Açıklama
symbol string Evet Hisse senedi ticker sembolü

Döner: Başlık, özet, yayın tarihi, sağlayıcı, URL ve küçük resim içeren haber öğelerinin JSON dizisi.

yfinance_search

Yahoo Finance'de hisse senedi, ETF ve haber makaleleri arayın.

Parametre Tür Gerekli Açıklama
query string Evet Arama sorgusu — şirket adı, ticker sembolü veya anahtar kelimeler
search_type string Evet "all" (fiyatlar + haberler), "quotes" (sadece hisse senetleri/ETF'ler) veya "news" (sadece makaleler)

Döner: search_type'a bağlı olarak eşleşen fiyatlar ve/veya haber sonuçları.

yfinance_get_top

Bir pazar sektörü içinde en iyi sıralanan finansal varlıkları alın.

Parametre Tür Gerekli Açıklama
sector string Evet Pazar sektörü (aşağıdaki desteklenen sektörlere bakın)
top_type string Evet "top_etfs", "top_mutual_funds", "top_companies", "top_growth_companies" veya "top_performing_companies"
top_n number Hayır Döndürülecek sonuç sayısı (varsayılan: 10, maksimum: 100)

Döner: İlgili metrikleri içeren en iyi varlıkların JSON dizisi.

Desteklenen Sektörler

Basic Materials, Communication Services, Consumer Cyclical, Consumer Defensive, Energy, Financial Services, Healthcare, Industrials, Real Estate, Technology, Utilities

yfinance_get_price_history

Geçmiş fiyat verilerini alın ve isteğe bağlı olarak teknik analiz grafikleri oluşturun.

Parametre Tür Gerekli Açıklama
symbol string Evet Hisse senedi ticker sembolü
period string Hayır Zaman aralığı — 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max (varsayılan: 1mo)
interval string Hayır Veri ayrıntı düzeyi — 1m, 2m, 5m, 15m, 30m, 60m, 90m, 1h, 1d, 5d, 1wk, 1mo, 3mo (varsayılan: 1d)
chart_type string Hayır Oluşturulacak grafik (tablo verisi için atla)
prepost boolean Hayır Mevcut olduğunda pazar öncesi ve pazar sonrası verilerini dahil et (varsayılan: false; period="1d", interval="1m" gibi gün içi isteklerle kullanışlıdır)

Grafik türleri:

Değer Açıklama
"price_volume" Hacim çubukları ile mum grafikleri
"vwap" Volume Weighted Average Price overlay'i ile fiyat grafikleri
"volume_profile" Fiyat düzeyine göre hacim dağılımı ile mum grafikleri

Döner:

  • chart_type olmadan: Tarih, Açılış, En Yüksek, En Düşük, Kapanış, Hacim, Temettüler ve Hisse Bölümleri sütunları içeren Markdown tablosu.
  • chart_type ile: Verimli token kullanımı için Base64 kodlanmış WebP görüntü.

yfinance_get_financials

Finansal tablolar (gelir tablosu, bilanço ve nakit akışı) geçmiş verilerle alın.

Parametre Tür Gerekli Açıklama
symbol string Evet Hisse senedi ticker sembolü
frequency string Hayır "annual" (yıllık), "quarterly" (üç aylık) veya "ttm" (son on iki ay). Varsayılan: "annual"

Döner: Her raporlama döneminin gelir tablosu, bilanço ve nakit akışı verilerini içeren JSON nesnesi.

  • Gelir Tablosu alanları: EBIT, Net Gelir, Vergi Karşılığı, Vergi Öncesi Gelir, Faiz Gideri, Toplam Gelir, İşletme Geliri, EBITDA, Normalleştirilmiş Gelir
  • Bilanço alanları: Hissedarların Özkaynağı, Toplam Borç, Nakit ve Nakit Eşdeğerleri, Yatırım Sermayesi, Net Borç, Toplam Varlıklar, Toplam Yükümlülükler Net Azınlık Payı, Net Maddi Varlıklar, Maddi Kitap Değeri
  • Nakit Akışı alanları: İşletme Nakit Akışı, Serbest Nakit Akışı, Sermaye Harcaması, Devam Eden Operasyonlardan Net Gelir, Amortisman ve Itfa Payı, Çalışma Sermayesindeki Değişim, Ödenen Temettüler

yfinance_get_holders

Büyük hissedarlar, kurumsal hissedarlar, yatırım fonu sahipleri ve içeriden kişi verilerini alın.

Parametre Tür Gerekli Açıklama
symbol string Evet Hisse senedi ticker sembolü (örn. AAPL, MSFT)
max_rows number Hayır Her hissedar bölümü için döndürülen maksimum satırlar. Varsayılan: 10. Tüm satırları döndürmek için 0 kullanın

Döner: Aşağıdakileri içeren JSON nesnesi:

  • major_holders — Toplanmış dağılım; her satırın bir index etiketi vardır (örn. insidersPercentHeld, institutionsPercentHeld, institutionsFloatPercentHeld, institutionsCount) ve bir Value
  • institutional_holders — Kurumsal yatırımcılar; kayıtlar tipik olarak Date Reported, Holder, Shares, Value, pctChange, pctHeld gibi alanları içerir
  • mutualfund_holders — Yatırım fonu sahipleri; kayıtlar kurumsal hissedarlarla benzer alanları içerir
  • insider_transactions — Son içeriden işlemler; kayıtlar tipik olarak Shares, Value, Insider, Position, Transaction, Start Date, Ownership gibi alanları içerir
  • insider_purchases — Altı ay özeti; her satır bir kategoriyi (Satın Almalar, Satışlar, Net Hisseler, vb.) tanımlar; kayıtlar tipik olarak Insider Purchases Last 6m, Shares, Trans gibi alanları içerir
  • insider_roster — Bilinen içeriden kişiler; kayıtlar tipik olarak Name, Position, Shares Owned Directly, Most Recent Transaction, Latest Transaction Date gibi alanları içerir
  • _metadata — Satır limiti metaveri max_rows ve bölüm başına total_rows, returned_rows ve truncated ile

Hissedar bölümleri yanıtları kısa tutmak için varsayılan olarak 10 satırla sınırlıdır. Tam hissedar veri kümelerine ihtiyacınız olduğunda max_rows: 0 geçirin. Hissedar ile ilgili veri kümeleri için alan adları yfinance tarafından sağlanır ve ticker'a, veri kullanılabilirliğine ve yfinance sürümüne göre değişebilir.

yfinance_get_option_dates

Bir hisse senedi için mevcut opsiyon son kullanma tarihlerini alın.

Parametre Tür Gerekli Açıklama
symbol string Evet Hisse senedi ticker sembolü (örn. AAPL, MSFT)

Döner: YYYY-MM-DD formatında son kullanma tarihlerinin JSON dizisi.

yfinance_get_option_chain

Bir hisse senedi için opsiyon zinciri verilerini (çağrı ve satış işlemleri) mevcut kullanım fiyatları ile alın.

Parametre Tür Gerekli Açıklama
symbol string Evet Hisse senedi ticker sembolü
expiration_date string Hayır YYYY-MM-DD formatında opsiyon son kullanma tarihi. Tüm tarihleri almak için atla.
option_type string Hayır "calls", "puts" veya "all" (varsayılan: "all")

Döner: Son kullanma tarihine göre anahtarlanmış JSON nesnesi; çağrı ve/veya satış işlemleri verilerini içerir:

  • contractSymbol: Opsiyon kontratı tanımlayıcısı
  • strike: Kullanım fiyatı
  • lastPrice: Son işlem gören fiyat
  • bid/ask: Alış ve satış fiyatları
  • volume: İşlem hacmi
  • openInterest: Açık faiz
  • impliedVolatility: IV
  • inTheMoney: Opsiyon ITM'de olup olmadığı
  • contractSize: Kontrat boyutu (REGULAR)
  • currency: Para birimi (USD)

Kullanım

uv aracılığıyla (önerilen)

  1. uv'yi kurun
  2. MCP istemci yapılandırmanıza aşağıdakini ekleyin:
{
  "mcpServers": {
    "yfmcp": {
      "command": "uvx",
      "args": ["yfmcp@latest"]
    }
  }
}

Docker aracılığıyla

{
  "mcpServers": {
    "yfmcp": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "narumi/yfinance-mcp"]
    }
  }
}

Kaynaktan

  1. Depoyu klonlayın ve bağımlılıkları kurun:
git clone https://github.com/narumiruna/yfinance-mcp.git
cd yfinance-mcp
uv sync
  1. MCP istemci yapılandırmanıza aşağıdakini ekleyin:
{
  "mcpServers": {
    "yfmcp": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/path/to/yfinance-mcp",
        "yfmcp"
      ]
    }
  }
}

/path/to/yfinance-mcp yerine klonlanmış deponuzun gerçek yolunu yazın.

Codex CLI ile Test Etme

Bu depo .codex/config.toml içerir; bu, uv run yfmcp kullanan yerel yfmcp MCP sunucusunu Codex CLI için kaydeder. Depoyu klonladıktan ve uv sync çalıştırdıktan sonra, depo kökünden Codex CLI'yi açın ve aşağıdaki gibi istekleri deneyin:

Show VOO ticker info
Show VOO price history for the last 5 days
Find the ticker symbol for Toyota
Get AAPL option expiration dates

Geliştirme

Ön Gereklilikler

  • Python ≥ 3.12
  • uv paket yöneticisi

Kurulum

uv sync --extra dev

Lint & Format

uv run ruff check .
uv run ruff format .

Tür Kontrolü

uv run ty check src tests

Test

uv run pytest -v -s --cov=src tests

Demo Chatbot

Demo chatbot'u ayrılmış deposunda gözleyin: yfinance-mcp-demo

Katkıda Bulunanlar

contrib.rocks ile yapılmıştır.

Lisans

Bu proje MIT Lisansı altında lisanslanmıştır.

Benzer MCP sunucuları

Daha fazla: Finance & Fintech →