Files
2026-07-13 13:31:35 +08:00

397 lines
13 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🔧 Moduł 3: Zaawansowany rozwój MCP z Microsoft Foundry Toolkit
![Duration](https://img.shields.io/badge/Duration-20_minutes-blue?style=flat-square)
![Microsoft Foundry Toolkit](https://img.shields.io/badge/Microsoft_Foundry_Toolkit-Required-orange?style=flat-square)
![Python](https://img.shields.io/badge/Python-3.10+-green?style=flat-square)
![MCP SDK](https://img.shields.io/badge/MCP_SDK-1.9.3-purple?style=flat-square)
![Inspector](https://img.shields.io/badge/MCP_Inspector-0.14.0-blue?style=flat-square)
## 🎯 Cele nauki
Na koniec tego laboratorium będziesz potrafił:
- ✅ Tworzyć niestandardowe serwery MCP przy użyciu Microsoft Foundry Toolkit
- ✅ Konfigurować i używać najnowszego SDK MCP dla Pythona (wersja 1.9.3)
- ✅ Konfigurować i korzystać z MCP Inspector do debugowania
- ✅ Debugować serwery MCP zarówno w środowisku Agent Builder, jak i Inspector
- ✅ Rozumieć zaawansowane przepływy pracy przy tworzeniu serwerów MCP
## 📋 Wymagania wstępne
- Ukończenie Laboratorium 2 (Podstawy MCP)
- VS Code z zainstalowanym rozszerzeniem Microsoft Foundry Toolkit
- Środowisko Python 3.10 lub nowsze
- Node.js i npm do konfiguracji Inspector
## 🏗️ Co zbudujesz
W tym laboratorium stworzysz **Weather MCP Server**, który demonstruje:
- Implementację niestandardowego serwera MCP
- Integrację z Microsoft Foundry Toolkit Agent Builder
- Profesjonalne przepływy debugowania
- Wzorce nowoczesnego wykorzystania SDK MCP
---
## 🔧 Przegląd kluczowych komponentów
### 🐍 MCP Python SDK
Model Context Protocol Python SDK stanowi podstawę do budowy niestandardowych serwerów MCP. Będziesz korzystać z wersji 1.9.3 z rozszerzonymi możliwościami debugowania.
### 🔍 MCP Inspector
Potężne narzędzie do debugowania oferujące:
- Monitorowanie serwera w czasie rzeczywistym
- Wizualizację wykonywania narzędzi
- Inspekcję żądań i odpowiedzi sieciowych
- Interaktywne środowisko testowe
---
## 📖 Implementacja krok po kroku
### Krok 1: Utwórz WeatherAgent w Agent Builder
1. **Uruchom Agent Builder** w VS Code przez rozszerzenie Microsoft Foundry Toolkit
2. **Utwórz nowego agenta** z następującą konfiguracją:
- Nazwa agenta: `WeatherAgent`
![Agent Creation](../../../../translated_images/pl/Agent.c9c33f6a412b4cde.webp)
### Krok 2: Zainicjuj projekt serwera MCP
1. **Przejdź do Narzędzia****Dodaj narzędzie** w Agent Builder
2. **Wybierz "MCP Server"** z dostępnych opcji
3. **Wybierz "Utwórz nowy serwer MCP"**
4. **Wybierz szablon `python-weather`**
5. **Nazwij swój serwer:** `weather_mcp`
![Python Template Selection](../../../../translated_images/pl/Pythontemplate.9d0a2913c6491500.webp)
### Krok 3: Otwórz i przejrzyj projekt
1. **Otwórz wygenerowany projekt** w VS Code
2. **Przejrzyj strukturę projektu:**
```
weather_mcp/
├── src/
│ ├── __init__.py
│ └── server.py
├── inspector/
│ ├── package.json
│ └── package-lock.json
├── .vscode/
│ ├── launch.json
│ └── tasks.json
├── pyproject.toml
└── README.md
```
### Krok 4: Aktualizacja do najnowszego SDK MCP
> **🔍 Dlaczego aktualizować?** Chcemy korzystać z najnowszego SDK MCP (wersja 1.9.3) oraz usługi Inspector (0.14.0) dla udoskonalonych funkcji i lepszych możliwości debugowania.
#### 4a. Aktualizacja zależności Pythona
**Edytuj `pyproject.toml`:** aktualizacja [./code/weather_mcp/pyproject.toml](../../../../10-StreamliningAIWorkflowsBuildingAnMCPServerWithAIToolkit/lab3/code/weather_mcp/pyproject.toml)
#### 4b. Aktualizacja konfiguracji Inspector
**Edytuj `inspector/package.json`:** aktualizacja [./code/weather_mcp/inspector/package.json](../../../../10-StreamliningAIWorkflowsBuildingAnMCPServerWithAIToolkit/lab3/code/weather_mcp/inspector/package.json)
#### 4c. Aktualizacja zależności Inspector
**Edytuj `inspector/package-lock.json`:** aktualizacja [./code/weather_mcp/inspector/package-lock.json](../../../../10-StreamliningAIWorkflowsBuildingAnMCPServerWithAIToolkit/lab3/code/weather_mcp/inspector/package-lock.json)
> **📝 Uwaga:** Ten plik zawiera rozległe definicje zależności. Poniżej znajduje się istotna struktura pełna zawartość zapewnia prawidłowe rozwiązywanie zależności.
> **⚡ Pełen package lock:** Pełny plik package-lock.json zawiera około 3000 linii definicji zależności. Powyżej pokazano kluczową strukturę użyj dostarczonego pliku dla kompletnych zależności.
### Krok 5: Konfiguracja debugowania w VS Code
*Uwaga: proszę skopiować plik do wskazanej ścieżki, zastępując odpowiedni lokalny plik*
#### 5a. Aktualizacja konfiguracji uruchamiania
**Edytuj `.vscode/launch.json`:**
```json
{
"version": "0.2.0",
"configurations": [
{
"name": "Attach to Local MCP",
"type": "debugpy",
"request": "attach",
"connect": {
"host": "localhost",
"port": 5678
},
"presentation": {
"hidden": true
},
"internalConsoleOptions": "neverOpen",
"postDebugTask": "Terminate All Tasks"
},
{
"name": "Launch Inspector (Edge)",
"type": "msedge",
"request": "launch",
"url": "http://localhost:6274?timeout=60000&serverUrl=http://localhost:3001/sse#tools",
"cascadeTerminateToConfigurations": [
"Attach to Local MCP"
],
"presentation": {
"hidden": true
},
"internalConsoleOptions": "neverOpen"
},
{
"name": "Launch Inspector (Chrome)",
"type": "chrome",
"request": "launch",
"url": "http://localhost:6274?timeout=60000&serverUrl=http://localhost:3001/sse#tools",
"cascadeTerminateToConfigurations": [
"Attach to Local MCP"
],
"presentation": {
"hidden": true
},
"internalConsoleOptions": "neverOpen"
}
],
"compounds": [
{
"name": "Debug in Agent Builder",
"configurations": [
"Attach to Local MCP"
],
"preLaunchTask": "Open Agent Builder",
},
{
"name": "Debug in Inspector (Edge)",
"configurations": [
"Launch Inspector (Edge)",
"Attach to Local MCP"
],
"preLaunchTask": "Start MCP Inspector",
"stopAll": true
},
{
"name": "Debug in Inspector (Chrome)",
"configurations": [
"Launch Inspector (Chrome)",
"Attach to Local MCP"
],
"preLaunchTask": "Start MCP Inspector",
"stopAll": true
}
]
}
```
**Edytuj `.vscode/tasks.json`:**
```
{
"version": "2.0.0",
"tasks": [
{
"label": "Start MCP Server",
"type": "shell",
"command": "python -m debugpy --listen 127.0.0.1:5678 src/__init__.py sse",
"isBackground": true,
"options": {
"cwd": "${workspaceFolder}",
"env": {
"PORT": "3001"
}
},
"problemMatcher": {
"pattern": [
{
"regexp": "^.*$",
"file": 0,
"location": 1,
"message": 2
}
],
"background": {
"activeOnStart": true,
"beginsPattern": ".*",
"endsPattern": "Application startup complete|running"
}
}
},
{
"label": "Start MCP Inspector",
"type": "shell",
"command": "npm run dev:inspector",
"isBackground": true,
"options": {
"cwd": "${workspaceFolder}/inspector",
"env": {
"CLIENT_PORT": "6274",
"SERVER_PORT": "6277",
}
},
"problemMatcher": {
"pattern": [
{
"regexp": "^.*$",
"file": 0,
"location": 1,
"message": 2
}
],
"background": {
"activeOnStart": true,
"beginsPattern": "Starting MCP inspector",
"endsPattern": "Proxy server listening on port"
}
},
"dependsOn": [
"Start MCP Server"
]
},
{
"label": "Open Agent Builder",
"type": "shell",
"command": "echo ${input:openAgentBuilder}",
"presentation": {
"reveal": "never"
},
"dependsOn": [
"Start MCP Server"
],
},
{
"label": "Terminate All Tasks",
"command": "echo ${input:terminate}",
"type": "shell",
"problemMatcher": []
}
],
"inputs": [
{
"id": "openAgentBuilder",
"type": "command",
"command": "ai-mlstudio.agentBuilder",
"args": {
"initialMCPs": [ "local-server-weather_mcp" ],
"triggeredFrom": "vsc-tasks"
}
},
{
"id": "terminate",
"type": "command",
"command": "workbench.action.tasks.terminate",
"args": "terminateAll"
}
]
}
```
---
## 🚀 Uruchamianie i testowanie Twojego serwera MCP
### Krok 6: Instalacja zależności
Po dokonaniu zmian konfiguracyjnych, wykonaj następujące polecenia:
**Instalacja zależności Pythona:**
```bash
uv sync
```
**Instalacja zależności Inspector:**
```bash
cd inspector
npm install
```
### Krok 7: Debugowanie za pomocą Agent Builder
1. **Naciśnij F5** lub użyj konfiguracji **„Debuguj w Agent Builder”**
2. **Wybierz konfigurację związaną z compound w panelu debugowania**
3. **Poczekaj na uruchomienie serwera i otwarcie Agent Builder**
4. **Przetestuj swój serwer weather MCP** naturalnymi zapytaniami językowymi
Wpisz prompt taki jak poniżej
SYSTEM_PROMPT
```
You are my weather assistant
```
USER_PROMPT
```
How's the weather like in Seattle
```
![Agent Builder Debug Result](../../../../translated_images/pl/Result.6ac570f7d2b1d538.webp)
### Krok 8: Debugowanie z użyciem MCP Inspector
1. **Użyj konfiguracji „Debuguj w Inspector”** (Edge lub Chrome)
2. **Otwórz interfejs Inspector** pod adresem `http://localhost:6274`
3. **Eksploruj interaktywne środowisko testowe:**
- Przeglądaj dostępne narzędzia
- Testuj wykonywanie narzędzi
- Monitoruj żądania sieciowe
- Debuguj odpowiedzi serwera
![MCP Inspector Interface](../../../../translated_images/pl/Inspector.5672415cd02fe873.webp)
---
## 🎯 Kluczowe rezultaty nauki
Po ukończeniu tego laboratorium:
- [x] **Utworzyłeś niestandardowy serwer MCP** korzystając z szablonów Microsoft Foundry Toolkit
- [x] **Zaktualizowałeś do najnowszego SDK MCP** (wersja 1.9.3) dla rozszerzonej funkcjonalności
- [x] **Skonfigurowałeś profesjonalne przepływy debugowania** dla Agent Builder i Inspector
- [x] **Skonfigurowałeś MCP Inspector** dla interaktywnego testowania serwera
- [x] **Opanowałeś konfigurację debugowania w VS Code** do rozwoju MCP
## 🔧 Zaawansowane funkcje, które omówiono
| Funkcja | Opis | Przypadek użycia |
|---------|-------|------------------|
| **MCP Python SDK v1.9.3** | Najnowsza implementacja protokołu | Nowoczesny rozwój serwerów |
| **MCP Inspector 0.14.0** | Narzędzie do interaktywnego debugowania | Testowanie serwera w czasie rzeczywistym |
| **Debugowanie VS Code** | Zintegrowane środowisko programistyczne | Profesjonalne przepływy debugowania |
| **Integracja z Agent Builder** | Bezpośrednie połączenie z Microsoft Foundry Toolkit | Testowanie agenta end-to-end |
## 📚 Dodatkowe zasoby
- [Dokumentacja MCP Python SDK](https://modelcontextprotocol.io/docs/sdk/python)
- [Przewodnik po rozszerzeniu Microsoft Foundry Toolkit](https://code.visualstudio.com/docs/ai/ai-toolkit)
- [Dokumentacja debugowania w VS Code](https://code.visualstudio.com/docs/editor/debugging)
- [Specyfikacja Model Context Protocol](https://modelcontextprotocol.io/docs/concepts/architecture)
---
**🎉 Gratulacje!** Pomyślnie ukończyłeś Laboratorium 3 i teraz potrafisz tworzyć, debugować oraz wdrażać niestandardowe serwery MCP korzystając z profesjonalnych przepływów rozwojowych.
### 🔜 Przejdź do następnego modułu
Gotowy, aby zastosować swoje umiejętności MCP w rzeczywistym środowisku rozwojowym? Przejdź do **[Moduł 4: Praktyczny rozwój MCP - niestandardowy serwer klonowania GitHub](../lab4/README.md)**, gdzie:
- Zbudujesz produkcyjny serwer MCP automatyzujący operacje na repozytoriach GitHub
- Wdrożysz funkcjonalność klonowania repozytoriów GitHub przez MCP
- Zintegrujesz niestandardowe serwery MCP z VS Code i trybem agenta GitHub Copilot
- Przetestujesz i wdrożysz serwery MCP w środowiskach produkcyjnych
- Nauczysz się praktycznej automatyzacji przepływów pracy dla programistów
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Zastrzeżenie**:
Niniejszy dokument został przetłumaczony za pomocą usługi tłumaczenia AI [Co-op Translator](https://github.com/Azure/co-op-translator). Choć dążymy do dokładności, prosimy pamiętać, że automatyczne tłumaczenia mogą zawierać błędy lub niedokładności. Oryginalny dokument w jego języku źródłowym należy uznawać za autorytatywne źródło. W przypadku informacji krytycznych zalecane jest skorzystanie z profesjonalnego tłumaczenia wykonanego przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z użycia tego tłumaczenia.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->