Resource'lara erişmek
Accessing resources
Bu modül için tahmini süre: 5 dakika
Genel bakış
MCP’deki resource’lar, server’ınızın tool çağrılarına gerek kalmadan doğrudan prompt’a dahil edilebilen veri açmasına izin verir. Bu, Claude gibi AI modellerine context sağlamak için daha verimli bir yol oluşturur. Bu derste client tarafında read_resource metodunu nasıl yazacağınızı ve MIME type’a göre içeriği nasıl parse edeceğinizi göreceksiniz.
MCP’deki resource’lar, server’ınızın tool çağrılarına gerek kalmadan doğrudan prompt’a dahil edilebilen veri açmasına izin verir. Bu, Claude gibi AI modellerine context sağlamak için daha verimli bir yol oluşturur.
Resource isteklerini anlamak
MCP server’ınızda resource’lar tanımladığınızda, client’ınızın bunları isteyip kullanması için bir yola ihtiyacı vardır. Client, uygulamanız ile MCP server arasında köprü görevi görür; iletişimi ve veri parsing’ini otomatik olarak yönetir.

Akış basittir: kullanıcı bir dokümana referans vermek istediğinde (örneğin “@report.pdf” yazınca), uygulamanız MCP client’ı o resource’u server’dan almak için kullanır ve içeriğini doğrudan Claude’a giden prompt’a dahil eder.
Resource okumayı implement etmek
Temel işlevsellik, MCP client’ınızda bir read_resource fonksiyonu gerektirir. Bu fonksiyon, hangi resource’un alınacağını belirten bir URI parametresi alır:
async def read_resource(self, uri: str) -> Any:
result = await self.session().read_resource(AnyUrl(uri))
resource = result.contents[0]
MCP server’dan gelen yanıt bir contents listesi içerir. Genellikle yalnızca ilk eleman gerekir; bu eleman, asıl resource verisini MIME type gibi metadata ile birlikte taşır.
Farklı içerik tiplerini yönetmek
Resource’lar farklı içerik tiplerini dönebilir, bu yüzden client’ınızın bunları uygun şekilde parse etmesi gerekir. MIME type, veriyi nasıl ele alacağınızı söyler:
if isinstance(resource, types.TextResourceContents):
if resource.mimeType == "application/json":
return json.loads(resource.text)
return resource.text
Bu yaklaşım, JSON resource’ların düzgünce Python nesnelerine parse edilmesini, düz metin resource’ların ise string olarak dönmesini sağlar. MIME type, doğru parse stratejisini belirlemenizde ipucu görevi görür.
Gerekli import’lar
Bunun çalışması için MCP client’ınıza şu import’lar gerekir:
import json
from pydantic import AnyUrl
json modülü JSON yanıtlarını parse eder; AnyUrl ise URI parametresi için uygun tip işlemini garantiler.
Resource erişimini test etmek
İmplement edildikten sonra işlevselliği CLI uygulamanız üzerinden test edebilirsiniz. “report.pdf dokümanında ne var?” gibi bir şey yazdığınızda sistem şunları yapmalı:
- Mevcut resource’ları autocomplete listesinde göstermeli
- Bir resource seçmenize izin vermeli
- Resource içeriğini otomatik olarak almalı
- O içeriği Claude’a giden prompt’a eklemeli

Temel avantaj şu: Claude doküman içeriğini doğrudan prompt’ta alır; bilgiye erişmek için tool çağrısına ihtiyaç kalmaz. Bu etkileşimleri hem hızlı hem de verimli kılar.
Uygulamanızla entegrasyon
Yazdığınız MCP client kodunun uygulamanızın diğer parçaları tarafından kullanıldığını unutmayın. read_resource fonksiyonu, diğer bileşenlerin doküman içeriklerini almak, mevcut resource’ları listelemek veya resource verisini prompt’lara entegre etmek için çağırabileceği bir yapı taşı haline gelir.
Bu sorumluluk ayrımı kodunuzu temiz tutar: MCP client server iletişimini yönetir; uygulama mantığınız bu veriyi etkili biçimde kullanmaya odaklanır.
Temel çıkarımlar
read_resource(uri), MCP client’ın temel resource okuma metodudur- Yanıttaki
contents[0]genellikle ihtiyacınız olan veriyi taşır - MIME type’a göre parse stratejisi seçin:
application/jsoniçinjson.loads,text/plainiçin doğrudan.text - Pydantic
AnyUrlile URI tipini güvence altına alın - Resource verisi tool çağırmadan doğrudan prompt’a enjekte edilebilir