Files

🔧 3 modulis: Išplėstinė MCP kūrimas naudojant Microsoft Foundry Toolkit

Trukmė Microsoft Foundry Toolkit Python MCP SDK Inspector

🎯 Mokymosi tikslai

Šio laboratorinio darbo pabaigoje jūs sugebėsite:

  • Kurti pasirinktinius MCP serverius naudojant Microsoft Foundry Toolkit
  • Konfigūruoti ir naudoti naujausią MCP Python SDK (v1.9.3)
  • Įdiegti ir naudoti MCP Inspector derinimui
  • Derinti MCP serverius tiek Agent Builder, tiek Inspector aplinkose
  • Suprasti pažangius MCP serverio kūrimo darbo srautus

📋 Reikalavimai

  • Baigtas 2 laboratorinis darbas (MCP pagrindai)
  • Įdiegta VS Code su Microsoft Foundry Toolkit plėtiniu
  • Python 3.10+ aplinka
  • Node.js ir npm Inspector diegimui

🏗️ Ką kursite

Šiame darbe sukursite Weather MCP Server serverį, kuris demonstruoja:

  • Pasirinktinio MCP serverio įgyvendinimą
  • Integraciją su Microsoft Foundry Toolkit Agent Builder
  • Profesionalius derinimo darbo srautus
  • Modernius MCP SDK naudojimo modelius

🔧 Pagrindinių komponentų apžvalga

🐍 MCP Python SDK

Modelio konteksto protokolo Python SDK suteikia pagrindą kuriant pasirinktinius MCP serverius. Naudosite versiją 1.9.3 su patobulintomis derinimo galimybėmis.

🔍 MCP Inspector

Galingas derinimo įrankis, kuris suteikia:

  • Realaus laiko serverio stebėjimą
  • Įrankių vykdymo vizualizaciją
  • Tinklo užklausų/atsakymų tikrinimą
  • Interaktyvią testavimo aplinką

📖 Įgyvendinimo žingsnis po žingsnio

1 žingsnis: Sukurkite WeatherAgent Agent Builder

  1. Paleiskite Agent Builder VS Code per Microsoft Foundry Toolkit plėtinį
  2. Sukurkite naują agentą su tokiomis konfigūracijomis:
    • Agentas pavadinimas: WeatherAgent

Agento kūrimas

2 žingsnis: Inicijuokite MCP serverio projektą

  1. Eikite į ĮrankiaiPridėti įrankį Agent Builder
  2. Pasirinkite "MCP Server" iš pasiūlytų variantų
  3. Pasirinkite "Sukurti naują MCP serverį"
  4. Pasirinkite python-weather šabloną
  5. Pavadinkite savo serverį: weather_mcp

Python šablono pasirinkimas

3 žingsnis: Atidarykite ir apžvelkite projektą

  1. Atidarykite sukurtą projektą VS Code
  2. Peržiūrėkite projekto struktūrą:
    weather_mcp/
    ├── src/
    │   ├── __init__.py
    │   └── server.py
    ├── inspector/
    │   ├── package.json
    │   └── package-lock.json
    ├── .vscode/
    │   ├── launch.json
    │   └── tasks.json
    ├── pyproject.toml
    └── README.md
    

4 žingsnis: Atnaujinkite į naujausią MCP SDK

🔍 Kodėl atnaujinti? Norime naudoti naujausią MCP SDK (v1.9.3) ir Inspector paslaugą (0.14.0) dėl patobulintų funkcijų ir geresnių derinimo galimybių.

4a. Atnaujinkite Python priklausomybes

Redaguokite pyproject.toml: atnaujinkite ./code/weather_mcp/pyproject.toml

4b. Atnaujinkite Inspector konfigūraciją

Redaguokite inspector/package.json: atnaujinkite ./code/weather_mcp/inspector/package.json

4c. Atnaujinkite Inspector priklausomybes

Redaguokite inspector/package-lock.json: atnaujinkite ./code/weather_mcp/inspector/package-lock.json

📝 Pastaba: Šis failas apima plataus masto priklausomybių apibrėžimus. Žemiau pateikiama pagrindinė struktūra pilnas turinys užtikrina tinkamą priklausomybių sprendimą.

Pilnas Package Lock: Pilnas package-lock.json failas apima apie 3000 eilučių priklausomybių apibrėžimų. Aukščiau pateikta pagrindinė struktūra naudokite pateiktą failą pilnam sprendimui.

5 žingsnis: Konfigūruokite VS Code derinimą

Pastaba: Nukopijuokite failą nurodytoje vietoje, kad pakeistumėte atitinkamą vietinį failą

5a. Atnaujinkite paleidimo konfigūraciją

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

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

🚀 Paleidimas ir testavimas jūsų MCP serveryje

6 žingsnis: Įdiekite priklausomybes

Padarius konfigūracijos pakeitimus, vykdykite šias komandas:

Įdiekite Python priklausomybes:

uv sync

Įdiekite Inspector priklausomybes:

cd inspector
npm install

7 žingsnis: Derinkite Agent Builder

  1. Paspauskite F5 arba naudokite "Derinti Agent Builder" konfigūraciją
  2. Pasirinkite compound konfigūraciją derinimo lange
  3. Palaukite, kol serveris užsikraus ir atsidarys Agent Builder
  4. Išbandykite savo Weather MCP serverį natūralios kalbos užklausomis

Įveskite užklausą panašią į šią

SYSTEM_PROMPT

You are my weather assistant

USER_PROMPT

How's the weather like in Seattle

Agent Builder Derinimo Rezultatas

8 žingsnis: Derinkite su MCP Inspector

  1. Naudokite "Derinti Inspectoriuje" konfigūraciją (Edge arba Chrome)
  2. Atidarykite Inspector sąsają adresu http://localhost:6274
  3. Išnagrinėkite interaktyvią testavimo aplinką:
    • Peržiūrėkite prieinamus įrankius
    • Išbandykite įrankių vykdymą
    • Stebėkite tinklo užklausas
    • Derinkite serverio atsakymus

MCP Inspector Sąsaja


🎯 Pagrindiniai įgyti įgūdžiai

Užbaigę šį laboratorinį darbą jūs:

  • Sukūrėte pasirinktinius MCP serverius naudojant Microsoft Foundry Toolkit šablonus
  • Atnaujinote į naujausią MCP SDK (v1.9.3) dėl papildomų funkcijų
  • Konfigūravote profesionalius derinimo darbo srautus tiek Agent Builder, tiek Inspector
  • Įdiegėte MCP Inspector interaktyviam serverio testavimui
  • Išmokote VS Code derinimo konfigūracijų MCP kūrimui

🔧 Išplėstiniai nagrinėti funkcionalumai

Funkcija Aprašymas Panaudojimas
MCP Python SDK v1.9.3 Naujausia protokolo įgyvendinimo versija Modernus serverio kūrimas
MCP Inspector 0.14.0 Interaktyvus derinimo įrankis Realaus laiko serverio testavimas
VS Code derinimas Integruota kūrimo aplinka Profesionalus derinimo darbo srautas
Agent Builder integracija Tiesioginė Microsoft Foundry Toolkit jungtis Pilnas agento testavimas

📚 Papildomi ištekliai


🎉 Sveikiname! Sėkmingai įveikėte 3 laboratorinį darbą ir dabar galite kurti, derinti bei diegti pasirinktinius MCP serverius naudojant profesionalius kūrimo darbo srautus.

🔜 Tęskite į kitą modulį

Pasiruošę pritaikyti savo MCP įgūdžius realaus pasaulio kūrimo darbo sraute? Tęskite į 4 modulį: Praktinis MCP kūrimas pasirinktinis GitHub klonavimo serveris, kuriame jūs:

  • Kursite gamybai paruoštą MCP serverį, automatizuojantį GitHub saugyklos veiksmus
  • Įgyvendinsite GitHub saugyklos klonavimo funkcionalumą per MCP
  • Integruosite pasirinktinius MCP serverius su VS Code ir GitHub Copilot agento režimu
  • Testuosite ir diegsite pasirinktinius MCP serverius gamybos aplinkose
  • Išmoksite praktinio darbo srauto automatizavimo kūrėjams

Atsakomybės apribojimas: Šis dokumentas buvo išverstas naudojant dirbtinio intelekto vertimo paslaugą Co-op Translator. Nors siekiame tikslumo, prašome atkreipti dėmesį, kad automatiniai vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas jo gimtąja kalba laikomas autoritetingu šaltiniu. Svarbiai informacijai rekomenduojama naudoti profesionalų žmogiškąjį vertimą. Mes neatsakome už jokius nesusipratimus ar neteisingą interpretaciją, kilusią naudojantis šiuo vertimu.