Berikut cara menjalankan server dan klien streaming HTTP klasik, serta server dan klien streaming MCP menggunakan Python.
- Anda akan mengatur server MCP yang mengalirkan notifikasi progres ke klien saat memproses item.
- Klien akan menampilkan setiap notifikasi secara real time.
- Panduan ini mencakup prasyarat, pengaturan, menjalankan, dan pemecahan masalah.
- Python 3.9 atau versi lebih baru
- Paket Python
mcp(pasang denganpip install mcp)
-
Clone repositori atau unduh file solusi.
git clone https://github.com/microsoft/mcp-for-beginners
-
Buat dan aktifkan virtual environment (disarankan):
python -m venv venv .\venv\Scripts\Activate.ps1 # On Windows # or source venv/bin/activate # On Linux/macOS
-
Pasang dependensi yang dibutuhkan:
pip install "mcp[cli]"
-
Masuk ke direktori solusi:
cd 03-GettingStarted/06-http-streaming/solution
-
Mulai server streaming HTTP klasik:
python server.py
-
Server akan mulai dan menampilkan:
Starting FastAPI server for classic HTTP streaming... INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
-
Buka terminal baru (aktifkan virtual environment dan direktori yang sama):
cd 03-GettingStarted/06-http-streaming/solution python client.py
-
Anda akan melihat pesan streaming yang dicetak secara berurutan:
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 ---
- Masuk ke direktori solusi:
cd 03-GettingStarted/06-http-streaming/solution
- Mulai server MCP dengan transport streamable-http:
python server.py mcp
- Server akan mulai dan menampilkan:
Starting MCP server with streamable-http transport... INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
- Buka terminal baru (aktifkan virtual environment dan direktori yang sama):
cd 03-GettingStarted/06-http-streaming/solution python client.py mcp
- Anda akan melihat notifikasi yang dicetak secara real time saat server memproses setiap item:
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')]
- Buat server MCP menggunakan FastMCP.
- Definisikan alat yang memproses daftar dan mengirim notifikasi menggunakan
ctx.info()orctx.log(). - Run the server with
transport="streamable-http". - Implement a client with a message handler to display notifications as they arrive.
- The server uses async functions and the MCP context to send progress updates.
- The client implements an async message handler to print notifications and the final result.
- Use
async/awaituntuk operasi non-blocking.** - Selalu tangani pengecualian di server dan klien untuk keandalan.
- Uji dengan beberapa klien untuk melihat pembaruan secara real time.
- Jika menemui kesalahan, periksa versi Python Anda dan pastikan semua dependensi sudah terpasang.
Penafian:
Dokumen ini telah diterjemahkan menggunakan layanan terjemahan AI Co-op Translator. Meskipun kami berusaha untuk akurasi, harap diperhatikan bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi penting, disarankan menggunakan terjemahan manusia profesional. Kami tidak bertanggung jawab atas kesalahpahaman atau salah tafsir yang timbul dari penggunaan terjemahan ini.