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

13 KiB
Raw Permalink Blame History

🔧 Moduł 3: Zaawansowany rozwój MCP z Microsoft Foundry Toolkit

Duration Microsoft Foundry Toolkit Python MCP SDK Inspector

🎯 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

Krok 2: Zainicjuj projekt serwera MCP

  1. Przejdź do NarzędziaDodaj 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

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

4b. Aktualizacja konfiguracji Inspector

Edytuj inspector/package.json: aktualizacja ./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

📝 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:

{
  "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:

uv sync

Instalacja zależności Inspector:

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

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


🎯 Kluczowe rezultaty nauki

Po ukończeniu tego laboratorium:

  • Utworzyłeś niestandardowy serwer MCP korzystając z szablonów Microsoft Foundry Toolkit
  • Zaktualizowałeś do najnowszego SDK MCP (wersja 1.9.3) dla rozszerzonej funkcjonalności
  • Skonfigurowałeś profesjonalne przepływy debugowania dla Agent Builder i Inspector
  • Skonfigurowałeś MCP Inspector dla interaktywnego testowania serwera
  • 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


🎉 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, 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

Zastrzeżenie: Niniejszy dokument został przetłumaczony za pomocą usługi tłumaczenia AI 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.