🔧 Moduuli 3: Edistynyt MCP-kehitys Microsoft Foundry Toolkitilla
🎯 Oppimistavoitteet
Tämän laboratorion lopussa osaat:
- ✅ Luoda mukautettuja MCP-palvelimia Microsoft Foundry Toolkitin avulla
- ✅ Määrittää ja käyttää uusinta MCP Python SDK:ta (v1.9.3)
- ✅ Asentaa ja käyttää MCP Inspector -työkalua virheenkorjaukseen
- ✅ Virheenkorjata MCP-palvelimia sekä Agent Builderissa että Inspectorissa
- ✅ Ymmärtää edistyneitä MCP-palvelinkehityksen työnkulkuja
📋 Esivaatimukset
- Lab 2 (MCP Fundamentals) suoritettuna
- VS Code, johon on asennettu Microsoft Foundry Toolkit -laajennus
- Python 3.10+ -ympäristö
- Node.js ja npm Inspectorin asentamista varten
🏗️ Mitä rakennat
Tässä laboratoriossa rakennat Weather MCP Serverin, joka demonstroi:
- Mukautetun MCP-palvelimen toteutusta
- Integraatiota Microsoft Foundry Toolkit Agent Builderin kanssa
- Ammattimaisia virheenkorjausprosessseja
- Modernin MCP SDK:n käyttötapoja
🔧 Keskeiset komponentit yleiskuva
🐍 MCP Python SDK
Model Context Protocolin Python SDK tarjoaa perustan mukautettujen MCP-palvelimien rakentamiselle. Käytät versiota 1.9.3, jossa on parannetut virheenkorjausmahdollisuudet.
🔍 MCP Inspector
Tehokas virheenkorjaustyökalu, joka tarjoaa:
- Palvelimen reaaliaikaisen valvonnan
- Työkalujen suorituksen visualisoinnin
- Verkko-pyyntöjen ja -vastauksien tarkastelun
- Interaktiivisen testausympäristön
📖 Vaihe vaiheelta toteutus
Vaihe 1: Luo WeatherAgent Agent Builderissa
- Käynnistä Agent Builder VS Codessa Microsoft Foundry Toolkit -laajennuksen kautta
- Luo uusi agentti seuraavilla asetuksilla:
- Agentin nimi:
WeatherAgent
- Agentin nimi:
Vaihe 2: Aloita MCP-palvelinprojekti
- Siirry Tools → Add Tool Agent Builderissa
- Valitse "MCP Server" saatavilla olevista vaihtoehdoista
- Valitse "Create A new MCP Server"
- Valitse
python-weather-pohja - Nimeä palvelimesi:
weather_mcp
Vaihe 3: Avaa ja tarkastele projektia
- Avaa luotu projekti VS Codessa
- Tarkastele projektin rakennetta:
weather_mcp/ ├── src/ │ ├── __init__.py │ └── server.py ├── inspector/ │ ├── package.json │ └── package-lock.json ├── .vscode/ │ ├── launch.json │ └── tasks.json ├── pyproject.toml └── README.md
Vaihe 4: Päivitä uusimpaan MCP SDK:han
🔍 Miksi päivittää? Haluamme käyttää uusinta MCP SDK:ta (v1.9.3) ja Inspector-palvelua (0.14.0) parannettujen ominaisuuksien ja paremman virheenkorjauksen saavuttamiseksi.
4a. Päivitä Python-riippuvuudet
Muokkaa pyproject.toml: päivitä ./code/weather_mcp/pyproject.toml
4b. Päivitä Inspectorin konfiguraatio
Muokkaa inspector/package.json: päivitä ./code/weather_mcp/inspector/package.json
4c. Päivitä Inspectorin riippuvuudet
Muokkaa inspector/package-lock.json: päivitä ./code/weather_mcp/inspector/package-lock.json
📝 Huom: Tämä tiedosto sisältää laajat riippuvuusmäärittelyt. Alla on oleellinen rakenne - koko sisältö varmistaa riippuvuuksien oikean ratkaisun.
⚡ Täysi Package Lock: Täysi package-lock.json sisältää noin 3000 riviä riippuvuuksien määrittelyjä. Yllä on avainrakenne - käytä toimitettua tiedostoa täydelliseen riippuvuuksien ratkaisuun.
Vaihe 5: Määritä VS Coden virheenkorjaus
Huom. Kopioi tiedosto ilmoitettuun polkuun korvaamaan vastaava paikallinen tiedosto
5a. Päivitä käynnistyskonfiguraatio
Muokkaa .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
}
]
}
Muokkaa .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"
}
]
}
🚀 MCP-palvelimen ajaminen ja testaaminen
Vaihe 6: Asenna riippuvuudet
Muutosten tekemisen jälkeen suorita seuraavat komennot:
Asenna Python-riippuvuudet:
uv sync
Asenna Inspectorin riippuvuudet:
cd inspector
npm install
Vaihe 7: Virheenkorjaus Agent Builderissa
- Paina F5 tai käytä "Debug in Agent Builder" -konfiguraatiota
- Valitse yhdistelmäkonfiguraatio debug-paneelista
- Odota palvelimen käynnistymistä ja Agent Builderin avaamista
- Testaa Weather MCP serveriäsi luonnollisilla kielipyyntöillä
Anna syöte kuten tämä
SYSTEM_PROMPT
You are my weather assistant
USER_PROMPT
How's the weather like in Seattle
Vaihe 8: Virheenkorjaus MCP Inspectorilla
- Käytä "Debug in Inspector" -konfiguraatiota (Edge tai Chrome)
- Avaa Inspector-käyttöliittymä osoitteessa
http://localhost:6274 - Tutki interaktiivista testausympäristöä:
- Katso saatavilla olevat työkalut
- Testaa työkalujen suoritus
- Tarkkaile verkkopyyntöjä
- Virheenkorjaa palvelimen vastauksia
🎯 Keskeiset oppimistulokset
Tämän laboratorion suorittamalla olet:
- Luonut mukautetun MCP-palvelimen Microsoft Foundry Toolkit -pohjien avulla
- Päivittänyt uusimpaan MCP SDK:han (v1.9.3) parennetun toiminnallisuuden saavuttamiseksi
- Määrittänyt ammattimaiset virheenkorjausprosessit sekä Agent Builderille että Inspectorille
- Asentanut MCP Inspectorin interaktiiviseen palvelintestaukseen
- Hallinnut VS Code -virheenkorjauskonfiguraatiot MCP-kehitystä varten
🔧 Tutkitut edistyneet ominaisuudet
| Ominaisuus | Kuvaus | Käyttötapaus |
|---|---|---|
| MCP Python SDK v1.9.3 | Uusin protokollatoteutus | Moderni palvelinkehitys |
| MCP Inspector 0.14.0 | Interaktiivinen virheenkorjaustyökalu | Reaaliaikainen palvelintestaus |
| VS Code Debugging | Integroitu kehitysympäristö | Ammattimainen virheenkorjaus |
| Agent Builder Integration | Suora yhteys Microsoft Foundry Toolkit -työkaluun | Päätä-päähän agenttitestaus |
📚 Lisäresurssit
- MCP Python SDK Documentation
- Microsoft Foundry Toolkit Extension Guide
- VS Code Debugging Documentation
- Model Context Protocol Specification
🎉 Onneksi olkoon! Olet suorittanut Lab 3:n onnistuneesti ja osaat nyt luoda, virheenkorjata ja ottaa käyttöön mukautettuja MCP-palvelimia ammattimaisten kehitysprosessien avulla.
🔜 Jatka seuraavaan moduuliin
Valmis soveltamaan MCP-taitojasi käytännön kehitystyön työnkulkuun? Jatka Moduuliin 4: Käytännön MCP-kehitys – Mukautettu GitHub Clone Server, jossa:
- Rakennat tuotantovalmiin MCP-palvelimen, joka automatisoi GitHub-repositorion hallintaa
- Toteutat GitHub-repositorion kloonaustoiminnallisuuden MCP:n avulla
- Integroi mukautetut MCP-palvelimet VS Coden ja GitHub Copilot Agent Moden kanssa
- Testaat ja otat käyttöön mukautetut MCP-palvelimet tuotantoympäristöissä
- Opit käytännön työnkulkuautomaatioita kehittäjille
Vastuuvapauslauseke: Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua Co-op Translator. Vaikka pyrimme tarkkuuteen, otathan huomioon, että automaattiset käännökset saattavat sisältää virheitä tai epätarkkuuksia. Alkuperäinen asiakirja sen alkuperäiskielellä on virallinen lähde. Tärkeissä asioissa suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa tämän käännöksen käytöstä aiheutuvista väärinymmärryksistä tai tulkinnoista.



