Her er hvordan du kører den klassiske HTTP streaming server og klient, samt MCP streaming server og klient ved hjælp af Python.
- Du opsætter en MCP server, der streamer statusmeddelelser til klienten, mens den behandler elementer.
- Klienten viser hver meddelelse i realtid.
- Denne vejledning dækker forudsætninger, opsætning, kørsel og fejlfinding.
- Python 3.9 eller nyere
mcpPython-pakken (installer medpip install mcp)
-
Klon repository eller download løsningsfilerne.
git clone https://github.com/microsoft/mcp-for-beginners
-
Opret og aktiver et virtuelt miljø (anbefales):
python -m venv venv .\venv\Scripts\Activate.ps1 # On Windows # or source venv/bin/activate # On Linux/macOS
-
Installer nødvendige afhængigheder:
pip install "mcp[cli]"
-
Gå til løsningsmappen:
cd 03-GettingStarted/06-http-streaming/solution
-
Start den klassiske HTTP streaming server:
python server.py
-
Serveren starter og viser:
Starting FastAPI server for classic HTTP streaming... INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
-
Åbn et nyt terminalvindue (aktiver samme virtuelle miljø og mappe):
cd 03-GettingStarted/06-http-streaming/solution python client.py
-
Du vil se streamede beskeder blive vist sekventielt:
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 ---
- Gå til løsningsmappen:
cd 03-GettingStarted/06-http-streaming/solution
- Start MCP serveren med streamable-http transport:
python server.py mcp
- Serveren starter og viser:
Starting MCP server with streamable-http transport... INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
- Åbn et nyt terminalvindue (aktiver samme virtuelle miljø og mappe):
cd 03-GettingStarted/06-http-streaming/solution python client.py mcp
- Du vil se notifikationer blive vist i realtid, mens serveren behandler hvert 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')]
- Opret MCP serveren med FastMCP.
- Definer et værktøj, der behandler en liste og sender notifikationer med
ctx.info()ellerctx.log(). - Kør serveren med
transport="streamable-http". - Implementer en klient med en beskedhandler, der viser notifikationer, efterhånden som de modtages.
- Serveren bruger async-funktioner og MCP konteksten til at sende statusopdateringer.
- Klienten implementerer en async beskedhandler, der printer notifikationer og det endelige resultat.
- Brug
async/awaitfor ikke-blokerende operationer. - Håndter altid undtagelser i både server og klient for stabilitet.
- Test med flere klienter for at se opdateringer i realtid.
- Hvis du støder på fejl, tjek din Python-version og sørg for, at alle afhængigheder er installeret.
Ansvarsfraskrivelse:
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten Co-op Translator. Selvom vi bestræber os på nøjagtighed, bedes du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det oprindelige dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse.