MÓDULO 3.9

🔍 Testando com MCP Inspector

Use o MCP Inspector para depurar e testar tools sem precisar do Claude Desktop.

6
Tópicos
30
Minutos
Intermediário
Nível
Prático
Tipo
1

🔍 O Que é o MCP Inspector

O MCP Inspector é a ferramenta oficial de debug para servers MCP. É uma interface web que se conecta ao seu server e permite visualizar todas as tools, resources e prompts registrados, executar tools manualmente com parâmetros personalizados e inspecionar respostas — tudo sem precisar do Claude Desktop.

💎 Conceito Principal

O MCP Inspector atua como um client MCP visual. Ele inicia seu server, estabelece conexão via STDIO e apresenta uma interface web interativa onde você pode: ver a lista completa de tools (com descrições e parâmetros), resources (com URIs e tipos) e prompts (com argumentos). Você pode executar qualquer tool preenchendo os parâmetros na interface e ver a resposta formatada em tempo real. É essencial durante o desenvolvimento.

📊 Dados e Pesquisa

O Inspector é mantido pela equipe oficial do MCP no repositório modelcontextprotocol/inspector no GitHub. Ele suporta todas as versões do protocolo MCP e é atualizado junto com a especificação. Desenvolvedores que usam o Inspector durante o desenvolvimento reportam redução de 50% no tempo de debug comparado a testar diretamente via Claude Desktop, porque o ciclo de feedback é instantâneo.

💡 Dica Prática

Use o Inspector como seu primeiro passo de teste — antes mesmo de configurar o Claude Desktop. Se sua tool funciona no Inspector, vai funcionar no Claude. Se não funciona no Inspector, o problema está no seu server, não na configuração do client. O Inspector é sua ferramenta de isolamento de problemas.

2

📥 Instalando o Inspector

A instalação do MCP Inspector é surpreendentemente simples — basta um único comando npx que baixa e executa tudo automaticamente. Não precisa instalar globalmente nem configurar nada. A interface abre no navegador e está pronta para uso.

💎 Conceito Principal

O comando para executar o Inspector é:

npx @modelcontextprotocol/inspector

O npx baixa o pacote temporariamente e o executa sem instalação global. O Inspector abre automaticamente no navegador em http://localhost:5173 (porta padrão). Na primeira execução pode demorar alguns segundos para baixar as dependências.

📋 Passos para instalar e executar
Passo 1

Certifique-se de ter Node.js instalado (versão 18 ou superior). Verifique com node --version.

Passo 2

Execute npx @modelcontextprotocol/inspector uv run server.py — isso inicia o Inspector E seu server simultaneamente.

Passo 3

O navegador abre automaticamente. Se não abrir, acesse manualmente http://localhost:5173.

🚨 Alerta

Node.js é obrigatório para executar o Inspector. Se você não tem Node.js instalado, acesse nodejs.org e instale a versão LTS. No Linux, você pode usar sudo apt install nodejs npm ou instalar via nvm para gerenciar múltiplas versões.

3

🔌 Conectando ao Server

O Inspector precisa saber como iniciar seu server MCP. Você especifica o comando de execução do server e o Inspector cuida de iniciar o processo, estabelecer a conexão STDIO e manter a comunicação ativa durante toda a sessão de debug.

💎 Conceito Principal

O comando completo para conectar ao seu server:

npx @modelcontextprotocol/inspector uv run server.py

O Inspector inicia o processo uv run server.py como subprocesso e se conecta via STDIO — o mesmo mecanismo que o Claude Desktop usa. Isso significa que se funcionar no Inspector, funcionará no Claude. Qualquer output que seu server envie para stdout é interpretado como mensagens MCP; logs devem ir para stderr.

💡 Dica Prática

Se você usa python diretamente em vez de uv, o comando seria npx @modelcontextprotocol/inspector python server.py. O Inspector aceita qualquer comando que inicie um processo MCP via STDIO. Certifique-se de que o ambiente virtual correto está ativado se estiver usando python diretamente.

❌ Evitar
  • Usar print() para debug (interfere com STDIO)
  • Executar o Inspector sem especificar o server
  • Esquecer de ativar o ambiente virtual
  • Rodar o server em outra porta esperando conexão
✅ Fazer
  • Usar logging para stderr em vez de print
  • Passar o comando completo do server ao Inspector
  • Usar uv run para gerenciar dependências
  • Verificar que o server funciona antes de conectar
4

🧪 Testando Tools

A interface do Inspector mostra todas as tools registradas no seu server com suas descrições e parâmetros. Você pode preencher os campos de parâmetros, executar a tool e ver a resposta imediatamente — um ciclo de feedback rápido que acelera enormemente o desenvolvimento.

💎 Conceito Principal

Na aba "Tools" do Inspector, você vê a lista completa de tools do server. Cada tool mostra seu nome, descrição (da docstring) e os parâmetros esperados (dos type hints). Ao clicar em uma tool, campos de formulário aparecem para cada parâmetro. Preencha os valores, clique em "Run Tool" e a resposta aparece formatada abaixo — incluindo o conteúdo retornado, tipo MIME e possíveis erros. Isso permite testar cada tool isoladamente, com diferentes combinações de parâmetros.

📋 Fluxo de teste de uma tool
Passo 1 — Localizar

Na aba "Tools", encontre a tool que deseja testar na lista. Verifique se o nome e a descrição estão corretos.

Passo 2 — Preencher

Preencha os campos de parâmetros com valores de teste. Comece com valores válidos, depois teste edge cases.

Passo 3 — Executar

Clique em "Run Tool" e observe a resposta. Verifique formato, conteúdo e tratamento de erros.

Passo 4 — Iterar

Ajuste o código do server, salve o arquivo. Reconecte o Inspector para testar as mudanças.

💡 Dica Prática

Crie uma lista de cenários de teste para cada tool: valores válidos normais, valores vazios, valores no limite do range, caracteres especiais, strings muito longas. Execute cada cenário pelo Inspector e verifique que a resposta é adequada em todos os casos. Isso é especialmente importante para tools que fazem requisições HTTP ou acessam arquivos.

5

📊 Analisando Respostas

O Inspector mostra as respostas das tools em formato estruturado, incluindo o JSON bruto da comunicação MCP. Isso permite verificar não apenas o conteúdo da resposta, mas também se o formato e os tipos estão corretos — informações essenciais para garantir que o modelo vai interpretar a resposta corretamente.

💎 Conceito Principal

Ao executar uma tool no Inspector, a resposta é exibida em duas visões: a visão formatada (texto legível, imagens renderizadas) e o JSON bruto (a mensagem MCP exata que seria enviada ao client). O JSON bruto mostra o array de content com cada bloco tendo type e text. Comparar o JSON bruto com o resultado esperado é a forma mais confiável de validar que sua tool funciona corretamente.

❌ Evitar
  • Verificar apenas a visão formatada
  • Ignorar o campo isError na resposta
  • Testar apenas com um cenário (happy path)
  • Assumir que a resposta está correta sem verificar
✅ Fazer
  • Inspecionar o JSON bruto de cada resposta
  • Verificar tipos, formato e estrutura
  • Testar cenários de sucesso e de erro
  • Comparar resposta real vs esperada
📊 Dados e Pesquisa

Uma resposta MCP bem formatada segue a estrutura: {"content": [{"type": "text", "text": "..."}]}. O campo isError indica se a tool encontrou um erro. Quando retorna True, o modelo sabe que deve informar o erro ao usuário em vez de usar a resposta como dado válido. O Inspector mostra isso visualmente com cores diferentes.

6

🐛 Debugando Problemas

Quando algo não funciona como esperado, o Inspector é seu melhor aliado para diagnosticar o problema. Desde servers que não conectam até tools que retornam erros inesperados, existe um processo sistemático de debug que resolve a maioria dos problemas em poucos minutos.

💎 Conceito Principal

Os problemas mais comuns e suas soluções: Server não conecta — verifique se o comando está correto e se as dependências estão instaladas. Tool não aparece na lista — verifique se o decorator @mcp.tool() está presente e se a função não tem erros de sintaxe. Tool retorna erro — verifique os logs do server no terminal onde o Inspector está rodando; o stderr do server aparece ali. Resposta vazia — verifique se a função retorna algo (não é None).

📋 Checklist de debug
1. Verificar conexão

O Inspector mostra "Connected" no topo? Se não, o comando do server está errado ou o server tem erro de importação.

2. Verificar tools registradas

A aba "Tools" mostra suas tools? Se não, verifique decorators, imports e se o server não crasha na inicialização.

3. Verificar parâmetros

Os parâmetros estão corretos na interface? Se faltam, verifique type hints na assinatura da função.

4. Verificar logs

Se a tool executa mas retorna erro, olhe os logs no terminal. O stderr do server tem o stack trace completo.

5. Reconectar após mudanças

Após editar o código, é necessário reconectar o Inspector para que as mudanças tenham efeito.

🚨 Alerta

O erro mais comum e mais difícil de diagnosticar: print() no código do server. Como o MCP usa stdout para comunicação, qualquer print() no seu código corrompe o protocolo e causa desconexão imediata. Substitua todos os prints por logging.info() ou logging.debug() que vão para stderr.

📝 Resumo do Módulo

  • O MCP Inspector é a ferramenta oficial de debug — interface web para testar servers MCP sem Claude Desktop.
  • Instalação simples com npx @modelcontextprotocol/inspector — requer Node.js.
  • Conecta ao server via STDIO — mesmo mecanismo do Claude Desktop.
  • Permite testar tools preenchendo parâmetros e executando manualmente.
  • Mostra JSON bruto das respostas para validação detalhada de formato e conteúdo.
  • Checklist de debug: conexão, tools registradas, parâmetros, logs e reconexão após mudanças.

Este é o último módulo da Trilha 3! Próxima Trilha: Trilha 4 — Projetos do Mundo Real