Skip to content

Latest commit

 

History

23 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fintables icon

Fintables

Unofficial Python SDK, CLI & MCP Server.

Özellikler

  • Public Endpointler: Şirket detayları (company), sembol özetleri (symbol summary), analist değerlendirmeleri (analyst), çoklu arama (search).
  • Authenticated Endpointler: Finansal tablolar (symbol sheets), haber akışı (feed), favoriler (watchlist), notlar (memo).
  • Zengin Terminal Görünümü: rich destekli tablolar, renkli kartlar, rozetler ve ikonlar.
  • JSON Çıktı Desteği: Otomasyonlar ve scriptler için --output json.
  • Async-First Mimari: httpx ve pydantic v2 tabanlı.

Kurulum

pip install fintables

Yapılandırma

Kimlik bilgilerinizi .env dosyasıyla veya ortam değişkenleriyle (Environment Variables) tanımlayabilirsiniz:

1. .env Dosyası ile

.env.example dosyasını .env olarak kopyalayın ve fintables e-posta ve şifrenizi girin:

2. Ortam Değişkenleri ile

macOS / Linux (zsh / bash):

export FINTABLES_USERNAME='[email protected]'
export FINTABLES_PASSWORD='parola#123'

Windows (PowerShell):

$env:FINTABLES_USERNAME = '[email protected]'
$env:FINTABLES_PASSWORD = 'parola#123'

Model Context Protocol (MCP) Yapay Zeka Entegrasyonu

fintables, Claude Desktop, Antigravity IDE, Cursor veya vLLM/Ollama destekli yapay zeka ajanlarıyla doğrudan konuşturulabilir.

MCP Sunucusunu Başlatma:

# Standart STDIO modunda çalıştırma (Claude Desktop / IDE'ler için)
fintables mcp

# veya SSE modunda
fintables mcp --transport sse

Claude Desktop / Cursor Konfigürasyonu (claude_desktop_config.json):

{
  "mcpServers": {
    "fintables": {
      "command": "fintables",
      "args": ["mcp"],
      "env": {
        "FINTABLES_EMAIL": "[email protected]",
        "FINTABLES_PASSWORD": "secretpassword"
      }
    }
  }
}

Eğer python ile sanal bir geliştirme ortamında çalışıyorsanız (.venv) o zaman

{
  "mcpServers": {
    "fintables": {
      "command": "/Users/sinan/projects/invest/.venv/bin/fintables",
      "args": ["mcp"],
      "env": {
        "FINTABLES_EMAIL": "[email protected]",
        "FINTABLES_PASSWORD": "secretpassword"
      }
    }
  }
}

gibi "command" alanına sanal geliştirme ortamının dosya yolunu vermelisiniz.

Artık Claude veya AI Ajanınıza şöyle sorular sorabilirsiniz;

  • FROTO (Ford Otosan) için Fintables'taki son KAP açıklamalarını, haber akışını ve yayınlanmış araştırma raporlarını getir. Şirketle ilgili son dönemdeki en kritik gelişme nedir?
  • ADE ve GPZ kodlu yatırım fonlarının son dönem getirilerini, risk skorlarını ve portföylerindeki varlık dağılımlarını karşılaştır.
  • TTRAK için hedef fiyat analist tahminleri nedir?

CLI Kullanımı

# Şirket bilgisi
fintables company ASELS

# Sembol özeti
fintables symbol ASELS summary

# Analist tahminleri
fintables analyst ASELS
fintables analyst ASELS --model-portfolio

# Çoklu arama
fintables search Polyester

# Finansal tablolar (Authenticated)
fintables symbol FROTO sheets
fintables symbol FROTO sheets --sheet balance --periods 5

# Haber akışı (Authenticated)
fintables feed
fintables feed FROTO

# Favori hisseler (Authenticated)
fintables watchlist add FROTO
fintables watchlist remove FROTO

# Notlar (Authenticated)
fintables memo list
fintables memo add FROTO "Beklentim pozitif"
fintables memo update 42212 "Güncellenmiş not"
fintables memo delete 42212

# Fonlar
fintables fund TLY
fintables fund MAC

# Araştırma Yazıları & Şirket Notları (Authenticated)
fintables post list                                          # tüm yazıları listele
fintables post list --filter "Şirket Notları"               # kategori filtresi
fintables post list --page 2                                 # sayfa ilerle
fintables post read altny-analist-toplantisi-notlari-2026-6 # yazıyı oku (+ benzer yazılar)
fintables post read <slug> --output json                    # JSON çıktı

# Bültenler (Authenticated)
fintables newsletter list                                    # tüm bültenleri listele
fintables newsletter list --category bist                   # kategori filtresi
fintables newsletter list --filter "Günlük"                 # başlık/kategori filtresi
fintables newsletter list --page 2                          # sayfa ilerle
fintables newsletter read endekslerde-tarihi-degisim        # bülten içeriğini oku
fintables newsletter read <slug> --output json              # JSON çıktı

# Videolar (YouTube & Borsa Programları)
fintables video list                                         # videoları listele
fintables video list --series "Haftalık Sohbetler"           # seriye göre filtrele
fintables video list --series "Halka Arz Oluyor"             # halka arz videoları
fintables video list --filter "Bilanço"                      # başlığa göre filtrele
fintables video list --page 2                                # sayfa ilerle
fintables video show bilanco-donemini-kapatiyoruz-fintables-haftalik-sohbetler-149 # detay & bölümler
fintables video show <slug> --output json                    # JSON formatında çıktı

# Ajanda / Ekonomik Takvim (Authenticated)
fintables agenda                         # bugünün ajandası (varsayılan)
fintables agenda today                   # bugün
fintables agenda thisWeek                # bu hafta
fintables agenda nextWeek                # gelecek hafta
fintables agenda thisWeek --type dividend  # sadece temettüler
fintables agenda thisWeek --type macro     # sadece makro veriler
fintables agenda thisWeek --output json    # JSON çıktı

# Sanal Portföy (Authenticated)
fintables portfolio list                                                # tüm portföyleri listele
fintables portfolio create "Benim Portföyüm"                           # yeni portföy oluştur
fintables portfolio show "Benim Portföyüm"                             # pozisyonları göster
fintables portfolio buy  "Benim Portföyüm" SASA 250000 2.76 --date 2026-09-22   # alış ekle
fintables portfolio sell "Benim Portföyüm" SASA 100000 3.10 --date 2026-09-22   # satış ekle
fintables portfolio delete "Benim Portföyüm"                           # portföyü sil (onay yok)
fintables portfolio rename "Benim Portföyüm" "Yeni İsim"               # portföy adını değiştir

# UUID ile de kullanılabilir (isimsiz veya belirsiz durumlarda)
fintables portfolio show ad857c49-d902-4f58-a57a-6429e7b40460

# Bildirimler (Authenticated)
fintables notification list                   # bildirimleri listele
fintables notification list --page-size 50    # sayfa boyutu ile listele
fintables notification unread                 # okunmamış bildirim durumu ve son okuma tarihi
fintables notification mark-read              # tüm bildirimleri okundu olarak işaretle
fintables notification list --output json     # JSON çıktısı

# Dil Desteği (i18n)
fintables --lang tr [KOMUT]                   # Türkçe CLI ve çıktılar (varsayılan: sistem dili veya tr)
fintables --lang en [COMMAND]                 # İngilizce CLI ve çıktılar
# Veya ortam değişkeni:
export FINTABLES_LANG=tr  # ya da en

Shell Otomatik Tamamlama (Autocompletion)

Terminalde fintables komutlarını ve hisse kodlarını <TAB> tuşu ile otomatik tamamlamak için kullandığınız kabuğa uygun komutla bir defalık kurulum yapabilirsiniz:

# Zsh kullanıyorsanız (Mac varsayılanı)
fintables --install-completion zsh

# Bash kullanıyorsanız
fintables --install-completion bash

# Fish kullanıyorsanız
fintables --install-completion fish

(Kurulum tamamlandıktan sonra terminalinizi kapatıp açmanız veya source ~/.zshrc çalıştırmanız yeterlidir.)

İnteraktif Shell / REPL Modu

Her komut için tekrar fintables yazmak yerine interaktif bir finans terminali ortamı başlatabilirsiniz:

fintables shell
🚀 Fintables Interactive Shell (v0.1.0)
fintables> company ASELS
fintables> symbol FROTO summary
fintables> watchlist add FROTO
fintables> exit

Python SDK Kullanımı

Paketi başka bir Python projesinde kütüphane/SDK olarak kullanmak isterseniz FintablesClient istemcisini ve endpoint fonksiyonlarını doğrudan import edebilirsiniz:

import asyncio
from fintables import FintablesClient
from fintables.api.endpoints import get_company, get_symbol_summary, add_favorite

async def main():
    async with FintablesClient() as client:
        # Şirket detayları (Public)
        company = await get_company(client, "ASELS")
        print(f"Şirket Kodu: {company.code} | Ünvan: {company.title}")

        # Sembol özeti (Public)
        summary = await get_symbol_summary(client, "ASELS")
        print(f"Sektör Sayısı: {len(summary.data.sectors)}")

        # Favori ekleme (Authenticated - .env bilgilerini kullanır)
        # res = await add_favorite(client, "ASELS")

if __name__ == "__main__":
    asyncio.run(main())

Yasal Uyarı (Disclaimer)

Önemli: Bu proje tamamen eğitim ve kişisel kullanım amacıyla geliştirilmiş açık kaynaklı gayriresmi bir araçtır.

  • Fintables (Fintables Bilişim Teknolojileri A.Ş.) ile hiçbir resmi bağı, ortaklığı veya sponsorluğu yoktur.
  • Bu araç finansal tavsiye, yatırım tavsiyesi veya alım-satım önerisi sunmaz.
  • Verilerin doğruluğu, güncelliği veya eksiksizliği konusunda herhangi bir garanti verilmez. Veri sağlayıcısından alınan verilerin kullanımında doğabilecek her türlü sorumluluk kullanıcıya aittir.
  • Yazılım "olduğu gibi" (AS IS) sunulmaktadır; yazar ve geliştiriciler doğabilecek doğrudan veya dolaylı hiçbir zarardan sorumlu tutulamaz.

Lisans

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

About

An unofficial Python SDK, CLI & MCP Server for fintables.com

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages