Ακολουθούν οι οδηγίες για την εκτέλεση του κλασικού HTTP streaming server και client, καθώς και του MCP streaming server και client χρησιμοποιώντας Python.
- Θα ρυθμίσετε έναν MCP server που μεταδίδει ειδοποιήσεις προόδου στον client καθώς επεξεργάζεται αντικείμενα.
- Ο client θα εμφανίζει κάθε ειδοποίηση σε πραγματικό χρόνο.
- Αυτός ο οδηγός καλύπτει τις προϋποθέσεις, τη ρύθμιση, την εκτέλεση και την αντιμετώπιση προβλημάτων.
- Python 3.9 ή νεότερη έκδοση
- Το πακέτο Python
mcp(εγκατάσταση μεpip install mcp)
-
Κλωνοποιήστε το αποθετήριο ή κατεβάστε τα αρχεία της λύσης.
git clone https://github.com/microsoft/mcp-for-beginners
-
Δημιουργήστε και ενεργοποιήστε ένα εικονικό περιβάλλον (συνιστάται):
python -m venv venv .\venv\Scripts\Activate.ps1 # On Windows # or source venv/bin/activate # On Linux/macOS
-
Εγκαταστήστε τις απαιτούμενες εξαρτήσεις:
pip install "mcp[cli]" fastapi requests
-
Μεταβείτε στον κατάλογο της λύσης:
cd 03-GettingStarted/06-http-streaming/solution
-
Ξεκινήστε τον κλασικό HTTP streaming server:
python server.py
-
Ο server θα ξεκινήσει και θα εμφανίσει:
Starting FastAPI server for classic HTTP streaming... INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
-
Ανοίξτε ένα νέο τερματικό (ενεργοποιήστε το ίδιο εικονικό περιβάλλον και κατάλογο):
cd 03-GettingStarted/06-http-streaming/solution python client.py
-
Θα δείτε μηνύματα που μεταδίδονται και εκτυπώνονται διαδοχικά:
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 ---
- Μεταβείτε στον κατάλογο της λύσης:
cd 03-GettingStarted/06-http-streaming/solution
- Ξεκινήστε τον MCP server με το streamable-http transport:
python server.py mcp
- Ο server θα ξεκινήσει και θα εμφανίσει:
Starting MCP server with streamable-http transport... INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
- Ανοίξτε ένα νέο τερματικό (ενεργοποιήστε το ίδιο εικονικό περιβάλλον και κατάλογο):
cd 03-GettingStarted/06-http-streaming/solution python client.py mcp
- Θα δείτε ειδοποιήσεις να εκτυπώνονται σε πραγματικό χρόνο καθώς ο server επεξεργάζεται κάθε αντικείμενο:
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')]
- Δημιουργήστε τον MCP server χρησιμοποιώντας το FastMCP.
- Ορίστε ένα εργαλείο που επεξεργάζεται μια λίστα και στέλνει ειδοποιήσεις χρησιμοποιώντας
ctx.info()ήctx.log(). - Εκτελέστε τον server με
transport="streamable-http". - Υλοποιήστε έναν client με έναν χειριστή μηνυμάτων για να εμφανίζει ειδοποιήσεις καθώς φτάνουν.
- Ο server χρησιμοποιεί ασύγχρονες συναρτήσεις και το MCP context για να στέλνει ενημερώσεις προόδου.
- Ο client υλοποιεί έναν ασύγχρονο χειριστή μηνυμάτων για να εκτυπώνει ειδοποιήσεις και το τελικό αποτέλεσμα.
- Χρησιμοποιήστε
async/awaitγια μη μπλοκαρισμένες λειτουργίες. - Πάντα να χειρίζεστε εξαιρέσεις τόσο στον server όσο και στον client για μεγαλύτερη αξιοπιστία.
- Δοκιμάστε με πολλούς clients για να παρατηρήσετε ενημερώσεις σε πραγματικό χρόνο.
- Εάν αντιμετωπίσετε σφάλματα, ελέγξτε την έκδοση της Python και βεβαιωθείτε ότι όλες οι εξαρτήσεις είναι εγκατεστημένες.
Αποποίηση Ευθύνης:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης Co-op Translator. Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν σφάλματα ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.