项目文件夹

文件

🔧 Módulo 3: Desenvolvimento Avançado de MCP com Microsoft Foundry Toolkit

Duration Microsoft Foundry Toolkit Python MCP SDK Inspector

🎯 Objetivos de Aprendizagem

Ao final deste laboratório, você será capaz de:

  • Criar servidores MCP personalizados usando o Microsoft Foundry Toolkit
  • Configurar e usar o mais recente MCP Python SDK (v1.9.3)
  • Configurar e utilizar o MCP Inspector para depuração
  • Depurar servidores MCP nos ambientes Agent Builder e Inspector
  • Compreender fluxos de trabalho avançados de desenvolvimento de servidores MCP

📋 Pré-requisitos

  • Conclusão do Laboratório 2 (Fundamentos de MCP)
  • VS Code com a extensão Microsoft Foundry Toolkit instalada
  • Ambiente Python 3.10+
  • Node.js e npm para configuração do Inspector

🏗️ O Que Você Vai Construir

Neste laboratório, você criará um Servidor MCP de Clima que demonstra:

  • Implementação personalizada de servidor MCP
  • Integração com o Microsoft Foundry Toolkit Agent Builder
  • Fluxos de trabalho profissionais de depuração
  • Padrões modernos de uso do MCP SDK

🔧 Visão Geral dos Componentes Principais

🐍 MCP Python SDK

O SDK Python do Protocolo de Contexto de Modelo fornece a base para construir servidores MCP personalizados. Você usará a versão 1.9.3 com capacidades aprimoradas de depuração.

🔍 MCP Inspector

Uma poderosa ferramenta de depuração que oferece:

  • Monitoramento em tempo real do servidor
  • Visualização da execução das ferramentas
  • Inspeção de requisições/respostas de rede
  • Ambiente interativo de testes

📖 Implementação Passo a Passo

Passo 1: Crie um WeatherAgent no Agent Builder

  1. Abra o Agent Builder no VS Code por meio da extensão Microsoft Foundry Toolkit
  2. Crie um novo agente com a seguinte configuração:
    • Nome do Agente: WeatherAgent

Agent Creation

Passo 2: Inicialize o Projeto do Servidor MCP

  1. Navegue até FerramentasAdicionar Ferramenta no Agent Builder
  2. Selecione "Servidor MCP" dentre as opções disponíveis
  3. Escolha "Criar um novo Servidor MCP"
  4. Selecione o template python-weather
  5. Nomeie seu servidor: weather_mcp

Python Template Selection

Passo 3: Abra e Examine o Projeto

  1. Abra o projeto gerado no VS Code
  2. Revise a estrutura do projeto:
    weather_mcp/
    ├── src/
    │   ├── __init__.py
    │   └── server.py
    ├── inspector/
    │   ├── package.json
    │   └── package-lock.json
    ├── .vscode/
    │   ├── launch.json
    │   └── tasks.json
    ├── pyproject.toml
    └── README.md
    

Passo 4: Atualize para a Última Versão do MCP SDK

🔍 Por que atualizar? Queremos usar o MCP SDK mais recente (v1.9.3) e o serviço do Inspector (0.14.0) para recursos avançados e melhor capacidade de depuração.

4a. Atualize as Dependências Python

Edite pyproject.toml: atualize ./code/weather_mcp/pyproject.toml

4b. Atualize a Configuração do Inspector

Edite inspector/package.json: atualize ./code/weather_mcp/inspector/package.json

4c. Atualize as Dependências do Inspector

Edite inspector/package-lock.json: atualize ./code/weather_mcp/inspector/package-lock.json

📝 Nota: Este arquivo contém definições extensas de dependências. Abaixo está a estrutura essencial - o conteúdo completo garante a resolução correta das dependências.

Lock Completo de Pacotes: O package-lock.json completo contém cerca de 3000 linhas de definições de dependências. O acima mostra a estrutura chave - use o arquivo fornecido para resolução completa das dependências.

Passo 5: Configure a Depuração no VS Code

Nota: Por favor, copie o arquivo no caminho especificado para substituir o arquivo local correspondente

5a. Atualize a Configuração de Inicialização

Edite .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
    }
  ]
}

Edite .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"
    }
  ]
}

🚀 Executando e Testando Seu Servidor MCP

Passo 6: Instale as Dependências

Depois de realizar as alterações de configuração, execute os seguintes comandos:

Instale as dependências Python:

uv sync

Instale as dependências do Inspector:

cd inspector
npm install

Passo 7: Depure com o Agent Builder

  1. Pressione F5 ou use a configuração "Debug in Agent Builder"
  2. Selecione a configuração composta no painel de depuração
  3. Aguarde o servidor iniciar e o Agent Builder abrir
  4. Teste seu servidor MCP de clima com consultas em linguagem natural

Digite um prompt como este

SYSTEM_PROMPT

You are my weather assistant

USER_PROMPT

How's the weather like in Seattle

Agent Builder Debug Result

Passo 8: Depure com o MCP Inspector

  1. Use a configuração "Debug in Inspector" (Edge ou Chrome)
  2. Abra a interface do Inspector em http://localhost:6274
  3. Explore o ambiente interativo de testes:
    • Veja as ferramentas disponíveis
    • Teste a execução das ferramentas
    • Monitore requisições de rede
    • Depure as respostas do servidor

MCP Inspector Interface


🎯 Principais Resultados de Aprendizagem

Ao completar este laboratório, você:

  • Criou um servidor MCP personalizado usando os templates do Microsoft Foundry Toolkit
  • Atualizou para o último MCP SDK (v1.9.3) para funcionalidade aprimorada
  • Configurou fluxos profissionais de depuração para o Agent Builder e Inspector
  • Configurou o MCP Inspector para testes interativos do servidor
  • Dominou as configurações de depuração do VS Code para desenvolvimento MCP

🔧 Recursos Avançados Explorados

Recurso Descrição Caso de Uso
MCP Python SDK v1.9.3 Implementação mais recente do protocolo Desenvolvimento moderno de servidor
MCP Inspector 0.14.0 Ferramenta interativa de depuração Testes em tempo real do servidor
Depuração no VS Code Ambiente de desenvolvimento integrado Fluxo profissional de depuração
Integração com Agent Builder Conexão direta com Microsoft Foundry Toolkit Teste completo do agente

📚 Recursos Adicionais


🎉 Parabéns! Você concluiu com sucesso o Laboratório 3 e agora pode criar, depurar e implantar servidores MCP personalizados usando fluxos de trabalho profissionais de desenvolvimento.

🔜 Continue para o Próximo Módulo

Pronto para aplicar suas habilidades MCP em um fluxo real de desenvolvimento? Continue para Módulo 4: Desenvolvimento Prático de MCP - Servidor Customizado de Clonagem GitHub onde você irá:

  • Construir um servidor MCP pronto para produção que automatiza operações de repositórios GitHub
  • Implementar funcionalidade de clonagem de repositórios GitHub via MCP
  • Integrar servidores MCP personalizados com VS Code e GitHub Copilot Agent Mode
  • Testar e implantar servidores MCP personalizados em ambientes de produção
  • Aprender automação prática de fluxos de trabalho para desenvolvedores

Aviso Legal: Este documento foi traduzido usando o serviço de tradução por IA Co-op Translator. Embora nos esforcemos pela precisão, por favor, esteja ciente de que traduções automatizadas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autorizada. Para informações críticas, recomenda-se tradução profissional humana. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas decorrentes do uso desta tradução.