Klasik HTTP akış sunucusu ve istemcisini, ayrıca MCP akış sunucusu ve istemcisini Python kullanarak nasıl çalıştıracağınızı öğrenin.
- İşlem sırasında öğeleri işlerken istemciye ilerleme bildirimleri gönderen bir MCP sunucusu kuracaksınız.
- İstemci, her bildirimi gerçek zamanlı olarak gösterecek.
- Bu kılavuz, ön koşullar, kurulum, çalıştırma ve sorun giderme konularını kapsar.
- Python 3.9 veya daha yeni bir sürüm
mcpPython paketi (şu komutla yükleyin:pip install mcp)
-
Depoyu klonlayın veya çözüm dosyalarını indirin.
git clone https://github.com/microsoft/mcp-for-beginners
-
Bir sanal ortam oluşturun ve etkinleştirin (önerilir):
python -m venv venv .\venv\Scripts\Activate.ps1 # On Windows # or source venv/bin/activate # On Linux/macOS
-
Gerekli bağımlılıkları yükleyin:
pip install "mcp[cli]" fastapi requests
-
Çözüm dizinine gidin:
cd 03-GettingStarted/06-http-streaming/solution
-
Klasik HTTP akış sunucusunu başlatın:
python server.py
-
Sunucu başlayacak ve şu çıktıyı gösterecek:
Starting FastAPI server for classic HTTP streaming... INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
-
Yeni bir terminal açın (aynı sanal ortamı ve dizini etkinleştirin):
cd 03-GettingStarted/06-http-streaming/solution python client.py
-
Akış mesajlarının sırasıyla yazdırıldığını göreceksiniz:
Running classic HTTP streaming client... Connecting to http://localhost:8000/stream with message: hello --- Streaming Progress --- Processing file 1/3... Processing file 2/3... Processing file 3/3... Here's the file content: hello --- Stream Ended ---
- Çözüm dizinine gidin:
cd 03-GettingStarted/06-http-streaming/solution
- MCP sunucusunu streamable-http taşıma yöntemiyle başlatın:
python server.py mcp
- Sunucu başlayacak ve şu çıktıyı gösterecek:
Starting MCP server with streamable-http transport... INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
- Yeni bir terminal açın (aynı sanal ortamı ve dizini etkinleştirin):
cd 03-GettingStarted/06-http-streaming/solution python client.py mcp
- Sunucu her öğeyi işlerken bildirimlerin gerçek zamanlı olarak yazdırıldığını göreceksiniz:
Running MCP client... Starting client... Session ID before init: None Session ID after init: a30ab7fca9c84f5fa8f5c54fe56c9612 Session initialized, ready to call tools. Received message: root=LoggingMessageNotification(...) NOTIFICATION: root=LoggingMessageNotification(...) ... Tool result: meta=None content=[TextContent(type='text', text='Processed files: file_1.txt, file_2.txt, file_3.txt | Message: hello from client')]
- FastMCP kullanarak MCP sunucusunu oluşturun.
- Bir listeyi işleyen ve
ctx.info()veyactx.log()kullanarak bildirim gönderen bir araç tanımlayın. - Sunucuyu
transport="streamable-http"ile çalıştırın. - Bildirimleri geldikçe göstermek için bir mesaj işleyici içeren bir istemci uygulayın.
- Sunucu, ilerleme güncellemeleri göndermek için async fonksiyonlar ve MCP bağlamını kullanır.
- İstemci, bildirimleri ve nihai sonucu yazdırmak için bir async mesaj işleyici uygular.
- Bloklamayan işlemler için
async/awaitkullanın. - Hem sunucuda hem de istemcide istisnaları ele alarak dayanıklılığı artırın.
- Gerçek zamanlı güncellemeleri gözlemlemek için birden fazla istemciyle test yapın.
- Hata alırsanız, Python sürümünüzü kontrol edin ve tüm bağımlılıkların yüklü olduğundan emin olun.
Feragatname:
Bu belge, AI çeviri hizmeti Co-op Translator kullanılarak çevrilmiştir. Doğruluk için çaba göstersek de, otomatik çevirilerin hata veya yanlışlıklar içerebileceğini lütfen unutmayın. Orijinal belgenin kendi dilindeki hali yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımından kaynaklanan herhangi bir yanlış anlama veya yanlış yorumlama durumunda sorumluluk kabul etmiyoruz.