Files

🔧 Modul 3: Napredni razvoj MCP-a s Microsoft Foundry Toolkitom

Duration Microsoft Foundry Toolkit Python MCP SDK Inspector

🎯 Ciljevi učenja

Do kraja ovog laboratorija moći ćete:

  • Kreirati prilagođene MCP poslužitelje koristeći Microsoft Foundry Toolkit
  • Konfigurirati i koristiti najnoviji MCP Python SDK (verzija 1.9.3)
  • Postaviti i koristiti MCP Inspector za ispravljanje pogrešaka
  • Ispravljati pogreške MCP poslužitelja u Agent Builder i Inspector okruženjima
  • Razumjeti napredne radne tokove razvoja MCP poslužitelja

📋 Preduvjeti

  • Završetak laboratorija 2 (MCP Osnove)
  • VS Code s instaliranim Microsoft Foundry Toolkit dodatkom
  • Python 3.10+ okruženje
  • Node.js i npm za postavljanje Inspectora

🏗️ Što ćete izraditi

U ovom laboratoriju izradit ćete Weather MCP Server koji demonstrira:

  • Prilagođenu implementaciju MCP poslužitelja
  • Integraciju s Microsoft Foundry Toolkit Agent Builderom
  • Profesionalne radne tokove za ispravljanje pogrešaka
  • Moderni obrazac korištenja MCP SDK-a

🔧 Pregled osnovnih komponenti

🐍 MCP Python SDK

Model Context Protocol Python SDK pruža temelj za izgradnju prilagođenih MCP poslužitelja. Koristit ćete verziju 1.9.3 s poboljšanim mogućnostima ispravljanja pogrešaka.

🔍 MCP Inspector

Moćan alat za ispravljanje pogrešaka koji pruža:

  • Praćenje poslužitelja u stvarnom vremenu
  • Vizualizaciju izvršenja alata
  • Inspekciju mrežnih zahtjeva/odgovora
  • Interaktivno testno okruženje

📖 Implementacija korak po korak

Korak 1: Izradite WeatherAgent u Agent Builderu

  1. Pokrenite Agent Builder u VS Codeu preko Microsoft Foundry Toolkit dodatka
  2. Izradite novog agenta sa sljedećom konfiguracijom:
    • Ime agenta: WeatherAgent

Agent Creation

Korak 2: Inicijalizirajte MCP Server projekt

  1. Idite na ToolsAdd Tool u Agent Builderu
  2. Odaberite "MCP Server" iz dostupnih opcija
  3. Odaberite "Create A new MCP Server"
  4. Izaberite python-weather predložak
  5. Imenujte svoj poslužitelj: weather_mcp

Python Template Selection

Korak 3: Otvorite i pregledajte projekt

  1. Otvorite generirani projekt u VS Codeu
  2. Pregledajte strukturu projekta:
    weather_mcp/
    ├── src/
    │   ├── __init__.py
    │   └── server.py
    ├── inspector/
    │   ├── package.json
    │   └── package-lock.json
    ├── .vscode/
    │   ├── launch.json
    │   └── tasks.json
    ├── pyproject.toml
    └── README.md
    

Korak 4: Nadogradite na najnoviji MCP SDK

🔍 Zašto nadograditi? Želimo koristiti najnoviji MCP SDK (verzija 1.9.3) i Inspector servis (0.14.0) za poboljšane značajke i bolje mogućnosti ispravljanja pogrešaka.

4a. Ažurirajte Python ovisnosti

Uredite pyproject.toml: update ./code/weather_mcp/pyproject.toml

4b. Ažurirajte konfiguraciju Inspectora

Uredite inspector/package.json: update ./code/weather_mcp/inspector/package.json

4c. Ažurirajte ovisnosti Inspectora

Uredite inspector/package-lock.json: update ./code/weather_mcp/inspector/package-lock.json

📝 Napomena: Ova datoteka sadrži opsežne definicije ovisnosti. Dolje je prikazana osnovna struktura - puna sadržaj osigurava pravilno rješavanje ovisnosti.

Potpuni Package Lock: Kompletni package-lock.json sadrži ~3000 redaka definicija ovisnosti. Gore je prikazana ključna struktura - koristite priloženu datoteku za potpunu rezoluciju ovisnosti.

Korak 5: Konfigurirajte ispravljanje pogrešaka u VS Codeu

Napomena: Molimo kopirajte datoteku na naznačenoj lokaciji kako biste zamijenili odgovarajuću lokalnu datoteku

5a. Ažurirajte Launch konfiguraciju

Uredite .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
    }
  ]
}

Uredite .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"
    }
  ]
}

🚀 Pokretanje i testiranje MCP poslužitelja

Korak 6: Instalirajte ovisnosti

Nakon izmjena konfiguracije pokrenite sljedeće naredbe:

Instalirajte Python ovisnosti:

uv sync

Instalirajte Inspector ovisnosti:

cd inspector
npm install

Korak 7: Ispravljanje pogrešaka s Agent Builderom

  1. Pritisnite F5 ili upotrijebite konfiguraciju "Debug in Agent Builder"
  2. Odaberite složenu konfiguraciju iz debug panela
  3. Pričekajte da se poslužitelj pokrene i da se Agent Builder otvori
  4. Testirajte svoj weather MCP poslužitelj s upitima na prirodnom jeziku

Unesite upit ovako

SYSTEM_PROMPT

You are my weather assistant

USER_PROMPT

How's the weather like in Seattle

Agent Builder Debug Result

Korak 8: Ispravljanje pogrešaka s MCP Inspectorom

  1. Koristite konfiguraciju "Debug in Inspector" (Edge ili Chrome)
  2. Otvorite Inspector sučelje na http://localhost:6274
  3. Istražite interaktivno testno okruženje:
    • Pogledajte dostupne alate
    • Testirajte izvršenje alata
    • Pratite mrežne zahtjeve
    • Ispravljajte odgovore poslužitelja

MCP Inspector Interface


🎯 Ključni ishodi učenja

Završetkom ovog laboratorija:

  • Kreirali ste prilagođeni MCP poslužitelj koristeći Microsoft Foundry Toolkit predloške
  • Nadogradili na najnoviji MCP SDK (verzija 1.9.3) za poboljšanu funkcionalnost
  • Konfigurirali profesionalne radne tokove ispravljanja pogrešaka za Agent Builder i Inspector
  • Postavili MCP Inspector za interaktivno testiranje poslužitelja
  • Ovladali VS Code konfiguracijom ispravljanja pogrešaka za razvoj MCP-a

🔧 Istražene napredne značajke

Značajka Opis Primjer upotrebe
MCP Python SDK v1.9.3 Najnovija implementacija protokola Moderan razvoj poslužitelja
MCP Inspector 0.14.0 Interaktivni alat za ispravljanje pogrešaka Testiranje poslužitelja u stvarnom vremenu
VS Code Debugging Integrirano razvojno okruženje Profesionalni radni tok ispravljanja pogrešaka
Agent Builder Integracija Direktna veza s Microsoft Foundry Toolkitom Testiranje agenata od početka do kraja

📚 Dodatni resursi


🎉 Čestitamo! Uspješno ste završili laboratorij 3 i sada možete stvarati, ispravljati pogreške i implementirati prilagođene MCP poslužitelje koristeći profesionalne radne tokove razvoja.

🔜 Nastavite na sljedeći modul

Spremni primijeniti svoje MCP vještine u stvarnom razvojnom tijeku? Nastavite na Modul 4: Praktični razvoj MCP-a - prilagođeni GitHub Clone Server gdje ćete:

  • Izgraditi proizvodno spreman MCP poslužitelj koji automatizira GitHub repozitorijske operacije
  • Implementirati funkcionalnost kloniranja GitHub repozitorija preko MCP-a
  • Integrirati prilagođene MCP poslužitelje s VS Code i GitHub Copilot Agent Modeom
  • Testirati i implementirati prilagođene MCP poslužitelje u produkcijskim okruženjima
  • Naučiti praktičnu automatizaciju radnih tokova za developere

Napomena: Ovaj dokument je preveden korištenjem AI prevoditeljskog servisa Co-op Translator. Iako težimo točnosti, imajte na umu da automatski prijevodi mogu sadržavati greške ili netočnosti. Izvorni dokument na izvornom jeziku treba smatrati autoritativnim izvorom. Za važne informacije preporuča se profesionalni ljudski prijevod. Nismo odgovorni za bilo kakva nesporazumevanja ili pogrešne interpretacije koje proizlaze iz korištenja ovog prijevoda.