🔧 Модул 3: Разширена разработка на MCP със средствата на Microsoft Foundry Toolkit
🎯 Учебни цели
В края на тази лабораторна работа ще можете да:
- ✅ Създавате персонализирани MCP сървъри, използвайки Microsoft Foundry Toolkit
- ✅ Конфигурирате и използвате най-новия MCP Python SDK (v1.9.3)
- ✅ Настроите и използвате MCP Inspector за дебъгване
- ✅ Отстранявате грешки в MCP сървъри в среди Agent Builder и Inspector
- ✅ Разбирате разширени работни процеси за разработка на MCP сървъри
📋 Предварителни изисквания
- Завършване на Лаборатория 2 (Основи на MCP)
- VS Code с инсталирано разширение Microsoft Foundry Toolkit
- Python 3.10+ среда
- Node.js и npm за настройка на Inspector
🏗️ Какво ще изградите
В тази лабораторна работа ще създадете Weather MCP Server, който демонстрира:
- Персонализирана имплементация на MCP сървър
- Интеграция с Agent Builder на Microsoft Foundry Toolkit
- Професионални работни процеси за дебъгване
- Съвременни модели на използване на MCP SDK
🔧 Обзор на основните компоненти
🐍 MCP Python SDK
Python SDK за Model Context Protocol осигурява основата за изграждане на персонализирани MCP сървъри. Ще използвате версия 1.9.3 с разширени възможности за дебъгване.
🔍 MCP Inspector
Мощен инструмент за дебъгване, който предлага:
- Мониторинг на сървъра в реално време
- Визуализация на изпълнението на инструменти
- Проверка на мрежови заявки/отговори
- Интерактивна тестова среда
📖 Стъпка по стъпка имплементация
Стъпка 1: Създайте WeatherAgent в Agent Builder
- Стартирайте Agent Builder във VS Code чрез разширението Microsoft Foundry Toolkit
- Създайте нов агент със следната конфигурация:
- Име на агента:
WeatherAgent
- Име на агента:
Стъпка 2: Инициализиране на MCP Server проект
- Отидете на Tools → Add Tool в Agent Builder
- Изберете "MCP Server" от наличните опции
- Изберете "Create A new MCP Server"
- Изберете шаблона
python-weather - Дайте име на сървъра:
weather_mcp
Стъпка 3: Отворете и разгледайте проекта
- Отворете генерирания проект във VS Code
- Прегледайте структурата на проекта:
weather_mcp/ ├── src/ │ ├── __init__.py │ └── server.py ├── inspector/ │ ├── package.json │ └── package-lock.json ├── .vscode/ │ ├── launch.json │ └── tasks.json ├── pyproject.toml └── README.md
Стъпка 4: Ъпгрейд до най-новия MCP SDK
🔍 Защо ъпгрейд? Искаме да използваме най-новия MCP SDK (v1.9.3) и Inspector услуга (0.14.0) за подобрени функции и по-добри възможности за дебъгване.
4а. Актуализиране на Python зависимости
Редактирайте pyproject.toml: актуализирайте ./code/weather_mcp/pyproject.toml
4б. Актуализиране на конфигурацията на Inspector
Редактирайте inspector/package.json: актуализирайте ./code/weather_mcp/inspector/package.json
4в. Актуализиране на зависимости на Inspector
Редактирайте inspector/package-lock.json: актуализирайте ./code/weather_mcp/inspector/package-lock.json
📝 Забележка: Този файл съдържа подробни дефиниции на зависимости. По-долу е показана основната структура – пълното съдържание осигурява правилно разрешаване на зависимости.
⚡ Пълен Package Lock: Пълният файл package-lock.json съдържа около 3000 реда дефиниции на зависимости. По-горе е показана ключовата структура – използвайте предоставения файл за пълно разрешаване на зависимости.
Стъпка 5: Конфигуриране на дебъгване във VS Code
Забележка: Моля, копирайте файла в посочения път, за да замените съответния локален файл
5а. Актуализиране на Launch конфигурация
Редактирайте .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
}
]
}
Редактирайте .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 сървър
Стъпка 6: Инсталиране на зависимости
След извършване на конфигурационните промени, изпълнете следните команди:
Инсталирайте Python зависимости:
uv sync
Инсталирайте зависимости за Inspector:
cd inspector
npm install
Стъпка 7: Дебъгване с Agent Builder
- Натиснете F5 или използвайте конфигурацията "Debug in Agent Builder"
- Изберете комбинираната конфигурация от панела за дебъгване
- Изчакайте сървърът да стартира и Agent Builder да се отвори
- Тествайте вашия weather MCP сървър с въпроси на естествен език
Въведете заявка като тази
SYSTEM_PROMPT
You are my weather assistant
USER_PROMPT
How's the weather like in Seattle
Стъпка 8: Дебъгване с MCP Inspector
- Използвайте конфигурацията "Debug in Inspector" (Edge или Chrome)
- Отворете интерфейса на Inspector на
http://localhost:6274 - Разгледайте интерактивната тестова среда:
- Преглеждайте наличните инструменти
- Тествайте изпълнението на инструменти
- Следете мрежовите заявки
- Отстранявайте грешки в отговори от сървъра
🎯 Основни учебни резултати
След завършване на тази лаборатория, вие:
- Създадохте персонализиран MCP сървър с помощта на шаблони на Microsoft Foundry Toolkit
- Ъпгрейднахте до най-новия MCP SDK (v1.9.3) за разширена функционалност
- Конфигурирахте професионални работни процеси за дебъгване в Agent Builder и Inspector
- Настроихте MCP Inspector за интерактивно тестване на сървъра
- Усвоихте конфигурациите за дебъгване във VS Code за разработка на MCP
🔧 Разгледани разширени функции
| Функция | Описание | Случай на използване |
|---|---|---|
| MCP Python SDK v1.9.3 | Най-новата имплементация на протокола | Модерна разработка на сървъри |
| MCP Inspector 0.14.0 | Интерактивен инструмент за дебъгване | Тестване на сървъра в реално време |
| Дебъгване във VS Code | Интегрирана развойна среда | Професионален работен процес за дебъгване |
| Интеграция с Agent Builder | Директна връзка с Microsoft Foundry Toolkit | Пълноценно тестване на агенти |
📚 Допълнителни ресурси
- MCP Python SDK Документация
- Ръководство за разширението Microsoft Foundry Toolkit
- Документация за дебъгване във VS Code
- Спецификация на Model Context Protocol
🎉 Поздравления! Успешно завършихте Лаборатория 3 и вече можете да създавате, дебъгвате и публикувате персонализирани MCP сървъри, използвайки професионални работни процеси за разработка.
🔜 Продължете към следващия модул
Готови ли сте да приложите уменията си в реален работен процес за разработка на MCP? Продължете към Модул 4: Практическа разработка на MCP - Персонализиран GitHub Clone Server, където ще:
- Изградите MCP сървър, готов за продукция, който автоматизира операции с GitHub репозитории
- Имплементирате функционалност за клониране на GitHub репозитории чрез MCP
- Интегирате персонализирани MCP сървъри с VS Code и GitHub Copilot Agent Mode
- Тествате и публикувате персонализирани MCP сървъри в продукционна среда
- Научите практическа автоматизация на работни процеси за разработчици
Отказ от отговорност: Този документ е преведен с помощта на AI преводачески услуга Co-op Translator. Въпреки че се стремим към точност, моля имайте предвид, че автоматизираните преводи могат да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за каквито и да е недоразумения или неправилни тълкувания, произтичащи от използването на този превод.



