FastMCP Artık MCPServer: Bir Python MCP Sunucusunu MCP SDK 2.x Sürümüne Taşıma Rehberi

İçindekiler
Bağımlılık güncellemeleri, özellikle paylaşılan ortamlarda çalışan sistemlerde beklenmedik kırılmalara yol açabilir. Bu rehber, bir Python MCP (Model Context Protocol) sunucusunun SDK 1.x (FastMCP) sürümünden 2.x (MCPServer) sürümüne adım adım nasıl taşınacağını açıklamaktadır. Örnek senaryoda, Cloud Run üzerinde barındırılan GPU özellikli bir sisteme Gemma 4 E2B modelinin dağıtımı ve vLLM yönetimini kolaylaştıran Python MCP araçlarının entegrasyonu ele alınmaktadır.
Ne Bozuldu?
Depodaki kaynak kodlar değişmemiş olsa da temiz bir kurulumda (fresh install) sistem çalışmaz hale geldi. Projenin requirements.txt dosyasında mcp paketi sürüm sınırlaması olmadan yer aldığı için pip install doğrudan yeni 2.x sürümünü yükledi:
from mcp.server.fastmcp import FastMCPçağrısıModuleNotFoundError: No module named 'mcp.server.fastmcp'hatası üretti.- SDK 2.x içinde bırakılan
fastmcp.pydosyası, kullanıcıya FastMCP'ninMCPServer(from mcp.server.mcpserver import MCPServer) olarak yeniden adlandırıldığını veyamcp<2sürümünün sabitlenmesi gerektiğini bildiren net bir istisna fırlattı. - Claude Code istemcisinde ise sunucu stdio el sıkışması tamamlanamadan kapandığı için yalnızca
Connection closedhatası görüldü.
Sürümü Sabitlemek mi, Göç Etmek mi?
Hata çıktısı iki temel çözüm yolu sunar:
- Kod Değişikliği: Sürümü sabitlemek (
pin) kod değişikliği gerektirmez;MCPServer'a geçiş iseimportve sınıf adının güncellenmesini gerektirir. - Çözümün Konumu: Sürüm sabitleme işlemi sunucuyu çalıştıran tüm Python ortamlarında uygulanmalıdır; göç işlemi doğrudan depoda çözülür.
- Paylaşılan Sistem Python Ortamı: Sanal ortam (
virtualenv) bulunmayan paylaşılan sistemlerdemcp<2sabitlemesi makinedeki tüm projelerin sürümünü düşürür (downgrade); göç ise global ortama dokunmaz. - Gelecek Düzeltmeler: Sabitleme v1 bakım hattı ile sınırlı kalırken, göç etmek projenin aktif geliştirilen ana hatta kalmasını sağlar.
Bu Aşamada Nelere Sahip Olmalısınız?
Geçiş ve dağıtım sürecini yürütmek için 5 gereksinim:
- Python 3.10 veya üzeri:
mcp 2.x,Requires-Python >= 3.10sürümünü zorunlu tutar. - Google Cloud SDK: Oturum açılmış ve varsayılan uygulama kimlik bilgileri (ADC) tanımlanmış olmalıdır.
- GCP Projesi: İlgili bölgede (örneğin
us-east4) Cloud Run GPU erişim izni bulunmalıdır. - GCS Bucket: Model ağırlıklarını barındırmak için
project-bucketadında bir depolama alanı. - Klonlanmış Depo: İlgili Git deposu klonlanmış ve çalışma dizini olarak ayarlanmış olmalıdır.
2.x Sürümünde Neler Değişti?
Projelerin karşılaştığı başlıca 6 kritik API değişikliği:
- FastMCP -> MCPServer:
from mcp.server.fastmcpkaldırıldı,from mcp.server.mcpserver import MCPServerkullanımına geçildi. - httpx -> httpx2:
httpxkütüphanesi yerinehttpx2kütüphanesine geçiş yapıldı. - Senkron İşleyiciler (Worker Thread): Senkron işleyiciler artık arka plan iş parçacığında çalıştığı için doğrudan
get_running_loop()çağırmak istisna fırlatır. - camelCase -> snake_case:
inputSchemagibi model alanları Python standartlarına uyum içininput_schemabiçimine dönüştürüldü. - Kaynak URI Türü Değişimi: Kaynak (
Resource) URI yapıları artıkAnyUrlyerine doğrudanstrolarak tanımlanır. - Transport Parametreleri: İletişim taşıma katmanı parametreleri ve yapılandırma arayüzü güncellendi.
Yazılım geliştirme açısından çıkarım: Bağımlılıkları sürüm kısıtı olmadan tanımlamak kırılganlıklara yol açar; paylaşılan ortamlarda bağımlılık çakışmalarını önlemek adına kütüphaneleri güncel protokollere adapte etmek en sağlıklı yaklaşımdır.
[Orijinal kaynağa buradan ulaşabilirsiniz.](https://dev.to/gde/fastmcp-is-now-mcpserver-migrating-a-python-mcp-server-to-the-mcp-sdk-2x-2nhj)
Bu konuyu derinlemesine öğrenmek isterseniz: MCP Sunucusu Geliştirme modülüne göz atın.
Bu konuyu daha derinlemesine öğrenmek ister misin?
Edumints'teki ücretsiz kursları incele ve bugün başla.
Kurslara Göz At →