Files

🔧 Модуль 3: Продвинутая разработка MCP с Microsoft Foundry Toolkit

Duration Microsoft Foundry Toolkit Python MCP SDK Inspector

🎯 Цели обучения

К концу этой лабораторной работы вы сможете:

  • Создавать пользовательские 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

  1. Запустите Agent Builder в VS Code через расширение Microsoft Foundry Toolkit
  2. Создайте нового агента с такой конфигурацией:
    • Имя агента: WeatherAgent

Agent Creation

Шаг 2: Инициализируйте проект MCP сервера

  1. Перейдите в ToolsAdd Tool в Agent Builder
  2. Выберите "MCP Server" из доступных вариантов
  3. Выберите "Create A new MCP Server"
  4. Выберите шаблон python-weather
  5. Назовите свой сервер: weather_mcp

Python Template Selection

Шаг 3: Откройте и изучите проект

  1. Откройте сгенерированный проект в VS Code
  2. Ознакомьтесь со структурой проекта:
    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

  1. Нажмите F5 или используйте конфигурацию "Debug in Agent Builder"
  2. Выберите составную конфигурацию в панели отладки
  3. Дождитесь запуска сервера и открытия Agent Builder
  4. Проверьте работу вашего weather MCP сервера с помощью запросов на естественном языке

Введите подсказку, как показано ниже

SYSTEM_PROMPT

You are my weather assistant

USER_PROMPT

How's the weather like in Seattle

Agent Builder Debug Result

Шаг 8: Отладка с MCP Inspector

  1. Используйте конфигурацию "Debug in Inspector" (Edge или Chrome)
  2. Откройте интерфейс Inspector по адресу http://localhost:6274
  3. Изучите интерактивную среду тестирования:
    • Просмотр доступных инструментов
    • Тестирование выполнения инструментов
    • Мониторинг сетевых запросов
    • Отладка ответов сервера

MCP Inspector Interface


🎯 Основные результаты обучения

Выполнив эту лабораторную работу, вы:

  • Создали пользовательский 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 Комплексное тестирование агента

📚 Дополнительные ресурсы


🎉 Поздравляем! Вы успешно завершили Лабораторную работу 3 и теперь можете создавать, отлаживать и разворачивать пользовательские MCP серверы с использованием профессиональных рабочих процессов разработки.

🔜 Продолжайте к следующему модулю

Готовы применить свои навыки MCP в реальном рабочем процессе? Продолжайте в Модуль 4: Практическая разработка MCP - пользовательский сервер клонирования GitHub, где вы:

  • Создадите готовый к производству MCP сервер для автоматизации операций с репозиториями GitHub
  • Реализуете функциональность клонирования репозиториев GitHub через MCP
  • Интегрируете пользовательские MCP серверы с VS Code и режимом агента GitHub Copilot
  • Проведёте тестирование и развертывание MCP серверов в продуктивной среде
  • Изучите практическую автоматизацию рабочих процессов для разработчиков

Отказ от ответственности: Этот документ был переведен с использованием сервиса машинного перевода Co-op Translator. Несмотря на наши усилия по обеспечению точности, имейте в виду, что автоматический перевод может содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется обратиться к профессиональному человеческому переводу. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования этого перевода.