🔧 Модуль 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 сервер, который демонстрирует:
- Реализацию пользовательского MCP сервера
- Интеграцию с Microsoft Foundry Toolkit Agent Builder
- Профессиональные рабочие процессы отладки
- Современные паттерны использования MCP SDK
🔧 Обзор основных компонентов
🐍 MCP Python SDK
Модельный контекстный протокол Python SDK обеспечивает основу для создания пользовательских MCP серверов. Вы будете использовать версию 1.9.3 с улучшенными возможностями отладки.
🔍 MCP Inspector
Мощный инструмент отладки, который предоставляет:
- Мониторинг сервера в реальном времени
- Визуализацию выполнения инструментов
- Инспекцию сетевых запросов/ответов
- Интерактивную среду тестирования
📖 Пошаговая реализация
Шаг 1: Создайте WeatherAgent в Agent Builder
- Запустите Agent Builder в VS Code через расширение Microsoft Foundry Toolkit
- Создайте нового агента с такой конфигурацией:
- Имя агента:
WeatherAgent
- Имя агента:
Шаг 2: Инициализируйте проект MCP сервера
- Перейдите в 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) для расширенных функций и улучшенных возможностей отладки.
4a. Обновление зависимостей Python
Отредактируйте pyproject.toml: обновите ./code/weather_mcp/pyproject.toml
4b. Обновление конфигурации Inspector
Отредактируйте inspector/package.json: обновите ./code/weather_mcp/inspector/package.json
4c. Обновление зависимостей Inspector
Отредактируйте inspector/package-lock.json: обновите ./code/weather_mcp/inspector/package-lock.json
📝 Примечание: Этот файл содержит обширные определения зависимостей. Ниже показана основная структура — полный контент обеспечивает корректное разрешение зависимостей.
⚡ Полный Package Lock: Полный package-lock.json содержит около 3000 строк определений зависимостей. Выше показана ключевая структура — используйте предоставленный файл для полного разрешения зависимостей.
Шаг 5: Настройка отладки в VS Code
Примечание: пожалуйста, скопируйте файл по указанному пути, чтобы заменить соответствующий локальный файл
5a. Обновление конфигурации запуска
Отредактируйте .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, где вы:
- Создадите готовый к производству MCP сервер для автоматизации операций с репозиториями GitHub
- Реализуете функциональность клонирования репозиториев GitHub через MCP
- Интегрируете пользовательские MCP серверы с VS Code и режимом агента GitHub Copilot
- Проведёте тестирование и развертывание MCP серверов в продуктивной среде
- Изучите практическую автоматизацию рабочих процессов для разработчиков
Отказ от ответственности: Этот документ был переведен с использованием сервиса машинного перевода Co-op Translator. Несмотря на наши усилия по обеспечению точности, имейте в виду, что автоматический перевод может содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется обратиться к профессиональному человеческому переводу. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования этого перевода.



