🔧 3 modulis: Išplėstinė MCP kūrimas naudojant Microsoft Foundry Toolkit
🎯 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
- Paleiskite Agent Builder VS Code per Microsoft Foundry Toolkit plėtinį
- Sukurkite naują agentą su tokiomis konfigūracijomis:
- Agentas pavadinimas:
WeatherAgent
- Agentas pavadinimas:
2 žingsnis: Inicijuokite MCP serverio projektą
- Eikite į Įrankiai → Pridėti įrankį Agent Builder
- Pasirinkite "MCP Server" iš pasiūlytų variantų
- Pasirinkite "Sukurti naują MCP serverį"
- Pasirinkite
python-weatheršabloną - Pavadinkite savo serverį:
weather_mcp
3 žingsnis: Atidarykite ir apžvelkite projektą
- Atidarykite sukurtą projektą VS Code
- 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
- Paspauskite F5 arba naudokite "Derinti Agent Builder" konfigūraciją
- Pasirinkite compound konfigūraciją derinimo lange
- Palaukite, kol serveris užsikraus ir atsidarys Agent Builder
- 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
8 žingsnis: Derinkite su MCP Inspector
- Naudokite "Derinti Inspectoriuje" konfigūraciją (Edge arba Chrome)
- Atidarykite Inspector sąsają adresu
http://localhost:6274 - Išnagrinėkite interaktyvią testavimo aplinką:
- Peržiūrėkite prieinamus įrankius
- Išbandykite įrankių vykdymą
- Stebėkite tinklo užklausas
- Derinkite serverio atsakymus
🎯 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
- MCP Python SDK dokumentacija
- Microsoft Foundry Toolkit plėtinio gidas
- VS Code derinimo dokumentacija
- Modelio konteksto protokolo specifikacija
🎉 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.



