MCP client'lar
MCP clients
Bu modül için tahmini süre: 5 dakika
Genel bakış
MCP client, sizin server’ınız ile MCP server’lar arasındaki iletişim köprüsüdür. Bir MCP server’ın sunduğu tüm tool’lara erişim noktanız olarak düşünebilirsiniz. Bu derste transport-agnostic iletişim, mesaj tipleri ve uçtan uca bir akışın nasıl çalıştığını adım adım göreceksiniz.
MCP client, sizin server’ınız ile MCP server’lar arasındaki iletişim köprüsüdür. Bir MCP server’ın sunduğu tüm tool’lara erişim noktanız olarak düşünün. Dış tool veya servis kullanmanız gerektiğinde, client tüm mesaj geçişini ve protokol detaylarını sizin yerinize halleder.
Transport-agnostic iletişim
MCP’nin temel güçlü yanlarından biri “transport agnostic” olmasıdır — yani client ve server farklı iletişim yöntemleriyle konuşabilir. En yaygın kurulum, MCP client ve server’ın aynı makinede çalışıp standart input/output üzerinden iletişim kurmasıdır.

Ama bununla sınırlı değilsiniz. MCP client ve server’lar şu protokoller üzerinden de bağlanabilir:
- HTTP
- WebSockets
- Diğer çeşitli network protokolleri

Mesaj tipleri
Bağlantı kurulduktan sonra client ve server, MCP spesifikasyonunda tanımlanan belirli mesaj tiplerini değiştirir. Sıkça karşılaşacağınız mesaj tipleri şunlardır:

ListToolsRequest/ListToolsResult: Client server’a “hangi tool’ları sağlıyorsun?” diye sorar ve geri mevcut tool’ların listesini alır.

CallToolRequest/CallToolResult: Client server’dan belirli bir tool’u belirli argümanlarla çalıştırmasını ister ve ardından sonuçları alır.

Uçtan uca akış örneği
Tüm parçaların gerçek bir senaryoda nasıl birlikte çalıştığını görelim. Diyelim ki bir kullanıcı “Hangi repository’lerim var?” diye soruyor — işte tam iletişim akışı:

Süreç, kullanıcının server’ınıza bir sorgu göndermesiyle başlar. Server’ınız, isteği yapmadan önce Claude’a mevcut tool’ların listesini sağlaması gerektiğini fark eder.

Server’ınız MCP client’tan tool’ları ister; client da MCP server’a bir ListToolsRequest gönderir ve karşılığında bir ListToolsResult alır.

Artık server’ınızın Claude’a ilk isteği yapması için gereken her şey var — hem kullanıcının sorusu hem de mevcut tool’lar.

Claude tool’ları inceler ve soruyu yanıtlamak için bir tane çağırması gerektiğine karar verir. Bir tool use isteğiyle yanıt verir.

Server’ınız MCP client’tan Claude’un istediği tool’u çalıştırmasını ister. MCP client, MCP server’a bir CallToolRequest gönderir; MCP server da GitHub’a asıl isteği yapar.

GitHub repository verisini döndürür; bu da MCP server üzerinden CallToolResult olarak geri akar, MCP client’a, oradan da sizin server’ınıza ulaşır.

Server’ınız tool sonuçlarını Claude’a follow-up mesajda geri gönderir. Claude artık tam yanıt oluşturmak için ihtiyacı olan her şeye sahiptir.

Son olarak Claude formatlı yanıtı döner; server’ınız da bunu kullanıcıya iletir.
Evet, bu akış çok sayıda adım içeriyor ama her bileşenin net bir sorumluluğu var. MCP client, server iletişiminin karmaşıklığını soyutlar; siz uygulama mantığınıza odaklanabilirsiniz. Kendi MCP client ve server’ınızı implement ettikçe her parçanın pratikte nasıl yerine oturduğunu göreceksiniz.
Temel çıkarımlar
- MCP client, kendi server’ınız ile MCP server’lar arasındaki köprüdür
- Transport-agnostic tasarım sayesinde stdio, HTTP, WebSocket gibi farklı protokoller kullanılabilir
- İki ana mesaj çifti vardır:
ListToolsRequest/ResultveCallToolRequest/Result - Tipik akış: tool listesi al → Claude’a sor → tool use isteği → tool çalıştır → sonucu geri ver → final yanıt
- Client, protokol detaylarını soyutlar; siz uygulama mantığına odaklanırsınız