Model Context Protocol (MCP)



This content originally appeared on DEV Community and was authored by Emre ÇALIŞIR

Yapay zekâ ve büyük dil modelleri (LLM’ler) giderek daha kritik roller üstleniyor. Ancak bu modelleri gerçek dünyanın dinamik verileriyle güvenli ve sürdürülebilir biçimde entegre etmek çoğu zaman gereksiz karmaşıklık yaratıyor. Bu makale, söz konusu karmaşıklığı sistematik olarak azaltan Model Context Protocol’ü (MCP) ele alıyor; ardından Python ile Transfermarkt verisine erişen bir MCP sunucusunu geliştirerek yaklaşımı uygulamada gösteriyor.

Model Bağlam Protokolü (MCP) Nedir?

En basit tanımıyla MCP, Büyük Dil Modelleri (LLM’ler) ile harici veri kaynakları arasında bir köprü görevi gören standart bir protokoldür. Bu protokol sayesinde, yapay zeka asistanları önceden tanımlanmış ve izin verilmiş bilgilere (dosyalar, e-postalar, veritabanları veya API’ler gibi) güvenli bir şekilde erişebilir.

Bunu, yapay zeka asistanınıza özel bir kütüphane veya bir “knowledge base” vermek gibi düşünebilirsiniz. Siz hangi kitaplara (veri kaynaklarına) erişebileceğini belirlersiniz, o da ihtiyaç duyduğunda bu kütüphaneden ilgili bilgiyi çekip kullanır. Bizim geliştirdiğim uygulamada olduğu gibi, Transfermarkt’tan bilgileri çeken bir API’yi bu “kütüphaneye” eklediğinizde, model artık futbol dünyası hakkında her zaman güncel ve zengin bir bilgiye sahip olur.

MCP Mimarisi

MCP’nin çalışma mantığı oldukça basittir ve üç ana bileşenden oluşur:

İstemci (Client): Bu bileşen, sizin kullandığınız yapay zeka uygulamasıdır. Örneğin, bizim projemdeki Claude Desktop uygulaması bir istemcidir. Kullanıcı, sorgusunu bu arayüz üzerinden yapar.
MCP Sunucusu (MCP Server): Bu bileşen, veri kaynakları ile etkileşim sürecini yönetir. Öncelikle, gelen isteği analiz ederek hangi özel aracın kullanılması gerektiğini belirler. Daha sonrasında bu aracı kullanarak veri kaynağından bilgiyi çeker. Python ile geliştirdiğimiz Transfermarkt MCP sunucusu tam olarak bu görevi üstlenir. Sunucu, kaynaktan aldığı veriyi işleyerek yapay zeka modelinin anlayabileceği bir formata dönüştürür ve modele iletir.
Veri Kaynağı: Bu, yapay zekanın eriştiği her türlü harici bilgi kaynağıdır. Bir API, bir veritabanı, bir dosya sistemi veya herhangi bir web hizmeti olabilir.

MCP Architecturehttps://www.descope.com/learn/post/mcp

Süreç şu şekilde işler: Siz istemci üzerinden bir soru sorduğunuzda (“Lionel Messi’nin güncel piyasa değeri nedir?”), istek MCP sunucusuna gider. Sunucu, bu isteği işlemek için Transfermarkt API aracını kullanması gerektiğini anlar, API’den veriyi çeker ve bu bilgiyi “bağlam” olarak modele sunar. Model de bu taze ve doğru bilgiyle size net bir cevap verir.

Transfermarkt MCP Server Uygulaması

Bu uygulama, Transfermarkt verisini sağlayan mevcut bir API’yi Python ile MCP sunucusuna dönüştürüp Claude Desktop üzerinden doğal dille (oyuncu arama, takım kadrosu ve istatistikler) sorgulamak için oluşturuldu.

Temel Özellikler
🔍 Kulüp Arama ve Analizi

  • Kulüp ismine göre arama yapabilme
  • Detaylı kulüp profili bilgilerine erişim
  • Kulüp oyuncu kadrosu listeleme

⚽ Oyuncu Veritabanı

  • Oyuncu ismine göre arama
  • Detaylı oyuncu profilleri
  • Sezon bazında filtreleme

🏆 Lig ve Turnuva Bilgileri

  • Lig ve turnuva arama ve listeleme
  • Belirli bir ligde yer alan kulüplerin listesi

Mimari ve Tasarım

Server Katmanı: FastMCP framework’ü kullanarak MCP protokolünü implement eder
Client Katmanı: Transfermarkt API’si ile iletişimi yönetir
Tools Katmanı: Farklı veri türleri için özelleşmiş araçlar (kulüpler, oyuncular, liglerle turnuvalar)
Configuration: Esnek yapılandırma yönetimi

Araç Kategorileri

Kulüp Araçları

  • “search_clubs”: Kulüp arama
  • “get_club_profile”: Kulüp detay bilgileri
  • “get_club_players”: Kulüp oyuncu kadrosu

Lig ve Turnuva Araçları

  • “search_competitions”: Lig ve turnuva arama
  • “get_competition_clubs”: Ligde yer alan kulüpler
  • “get_competition_details”: Lig detayları bilgileri

Oyuncu Araçları

  • “search_players”: Oyuncu arama
  • “get_player_by_id”: Oyuncu detay bilgileri
  • “get_player_by_profile”: Oyuncu detay bilgileri
  • “get_player_transfers”: Oyuncu transfer geçmişi
  • “get_player_stats”: Oyuncu performans istatistikleri
  • “get_player_market_value”: Oyuncu piyasa değeri geçmişi
  • “get_player_injuries”: Oyuncu sakatlık geçmişi
  • “get_player_jersey_numbers”: Oyuncu forma numarası
  • “get_player_achievements”: Oyuncunun başarıları ve ödülleri

Bu makale, Transfermarkt MCP Server projesinin teknik ve kullanım açısından genel bir değerlendirmesini sunmaktadır. Futbol veri analitiği ve Model Context Protocol hakkında daha fazla bilgi için ilgili teknik dokümantasyonları inceleyebilirsiniz.

Proje Kaynak Kodu ve Kurulum:

Tüm kaynak kodlarına, detaylı kurulum adımlarına aşağıdaki GitHub linki üzerinden ulaşabilirsiniz.

GitHub logo emreclsr / transfermarkt-mcp

MCP Server for Transfermarkt API

Transfermarkt MCP Server

A Model Context Protocol (MCP) server for accessing Transfermarkt football data.

Features

  • 🔍 Search football clubs by name
  • 📊 Get detailed club profiles
  • 👥 Retrieve club player rosters
  • 🏆 Search and get competition information
  • ⚽ Search for individual players
  • 📄 Pagination support for search results
  • 🔧 Season-based filtering for players

Installation

  1. Clone the repository:
git clone https://github.com/emreclsr/transfermarkt-mcp.git
cd transfermarkt-mcp
  1. Install dependencies:
pip install -r requirements.txt

or

poetry install
  1. Set up environment variables:
cp .env.example .env
# Edit .env with your API configuration

Configuration

Create a .env file with:

TRANSFERMARKT_API_BASE_URL=https://transfermarkt-api.fly.dev
LOG_LEVEL=INFO

Usage

Running the MCP Server

python -m src.transfermarkt_mcp.main

Available Tools

Club Tools

  • search_clubs(club_name, page_number=1) – Search for clubs
  • get_club_profile(club_id) – Get club details
  • get_club_players(club_id, season_id=None) – Get club players

Competition Tools

  • search_competitions(competition_name, page_number=1) – Search for competitions by name
  • get_competition_clubs(competition_id) – Get all clubs participating in a specific competition

Player Tools

  • search_players(player_name, page_number=1) – Search for players…

Örnek Kullanım Senaryoları:

1- “Messi’nin transfer olduğu takımlar neler ?

2- “Yarın oynanacak olan Fenerbahçe Trabzonspor maçında hangi oyuncular sakatlık nedeniyle oynayamayacak

3- “Alex de Souza’nın futbol başarıları nelerdir ?

4- “Beşiktaş sol kanat oyuncularının 2024–2025 sezonu gol asist sayıları nelerdir ?

Yazarlar


This content originally appeared on DEV Community and was authored by Emre ÇALIŞIR