Tukaj je opis, kako zagnati klasični HTTP strežniški in odjemalski tok ter MCP strežniški in odjemalski tok z uporabo Pythona.
- Nastavili boste MCP strežnik, ki med obdelavo elementov pošilja obvestila o napredku odjemalcu.
- Odjemalec bo prikazoval vsako obvestilo v realnem času.
- Ta vodič zajema predpogoje, nastavitev, zagon in odpravljanje težav.
- Python 3.9 ali novejši
- Python paket
mcp(namestite zpip install mcp)
-
Klonirajte repozitorij ali prenesite datoteke rešitve.
git clone https://github.com/microsoft/mcp-for-beginners
-
Ustvarite in aktivirajte virtualno okolje (priporočeno):
python -m venv venv .\venv\Scripts\Activate.ps1 # On Windows # or source venv/bin/activate # On Linux/macOS
-
Namestite potrebne odvisnosti:
pip install "mcp[cli]" fastapi requests
-
Pomaknite se v mapo z rešitvijo:
cd 03-GettingStarted/06-http-streaming/solution
-
Zaženite klasični HTTP strežniški tok:
python server.py
-
Strežnik se bo zagnal in prikazal:
Starting FastAPI server for classic HTTP streaming... INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
-
Odprite nov terminal (aktivirajte isto virtualno okolje in mapo):
cd 03-GettingStarted/06-http-streaming/solution python client.py
-
Videti bi morali zaporedno natisnjena sporočila toka:
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 ---
- Pomaknite se v mapo z rešitvijo:
cd 03-GettingStarted/06-http-streaming/solution
- Zaženite MCP strežnik z uporabo transporta streamable-http:
python server.py mcp
- Strežnik se bo zagnal in prikazal:
Starting MCP server with streamable-http transport... INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
- Odprite nov terminal (aktivirajte isto virtualno okolje in mapo):
cd 03-GettingStarted/06-http-streaming/solution python client.py mcp
- Videti bi morali obvestila, natisnjena v realnem času, ko strežnik obdeluje vsak element:
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')]
- Ustvarite MCP strežnik z uporabo FastMCP.
- Definirajte orodje, ki obdeluje seznam in pošilja obvestila z uporabo
ctx.info()alictx.log(). - Zaženite strežnik z
transport="streamable-http". - Implementirajte odjemalca z obdelovalcem sporočil za prikaz obvestil ob njihovem prihodu.
- Strežnik uporablja asinhrone funkcije in MCP kontekst za pošiljanje posodobitev o napredku.
- Odjemalec implementira asinhroni obdelovalec sporočil za tiskanje obvestil in končnega rezultata.
- Uporabite
async/awaitza neblokirajoče operacije. - Vedno obravnavajte izjeme tako na strežniku kot na odjemalcu za večjo zanesljivost.
- Testirajte z več odjemalci, da opazujete posodobitve v realnem času.
- Če naletite na napake, preverite svojo različico Pythona in zagotovite, da so vse odvisnosti nameščene.
Omejitev odgovornosti:
Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco Co-op Translator. Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem maternem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki izhajajo iz uporabe tega prevoda.