Corrigindo crashes de GPU/display no Windows usando MCP Server e IA (#ai #mcp #windows #troubleshoot #nvidia)

Criando um MCP Server que lê do Windows EventLog, consegui corrigir crashes da NVIDIA na minha máquina

Overview

Há algum tempo, os monitores do meu desktop começaram a ficar pretos (como se estivessem desligados). Isso ia e voltava, até o ponto onde os monitores ficavam pretos, eu conseguia ouvir o áudio do computador, mas o vídeo nunca voltava. Foi aí que eu percebi que procrastinar não era mais uma opção.

Antes de entrar nos detalhes do MCP Server, vamos entender o problema e o contexto.

Troubleshooting no Windows

Se você é usuário de Windows, talvez conheça o Event Viewer, uma ferramenta que permite visualizar logs de eventos do sistema, aplicações e de segurança. Esses logs contêm informações sobre eventos do sistema, como erros, avisos e mensagens informativas. Parece simples, né? O problema é que é absolutamente exaustivo vasculhar todos os logs pra encontrar a informação relevante, especialmente se você não sabe exatamente o que está procurando, como era o meu caso. Eu sabia os sintomas, mas não sabia o que estava causando.

Outro problema com o Event Viewer é que alguns logs podem conter informações sensíveis. Isso não era exatamente relevante pro meu problema, mas se eu quisesse colocar uma IA pra me ajudar, precisava levar isso em conta.

IA realmente ajudaria a resolver esse problema?

Os modelos de IA atuais são bons em vasculhar grandes volumes de dados rapidamente e (com sorte) identificar padrões e correlações. Porém, para permitir que a IA fizesse seu trabalho, eu precisaria deixá-la rodar comandos PowerShell para extrair informações, e depois rodar mais scripts para transformar os dados em um formato que ela consiga entender.

Além da questão de segurança, havia outro problema: O volume absurdo de dados nesses logs atrapalharia a IA (enchendo as janelas de contexto bem rápido) e aumentando o uso de tokens a um nível absurdo.

Parece que estou exagerando, mas se você já precisou encontrar algo no Event Viewer, sabe do que estou falando. 😅

Chamando o OS-Doctor!

Com tudo isso em mente, parecia que MCP Servers foram feitos exatamente para esse tipo de caso de uso. Pensei em simplesmente procurar um MCP Server já existente que fizesse isso, porque hoje em dia provavelmente tem um monte pronto pra usar por aí. Porém, eu também estava curioso pra aprender mais sobre ai-tools, como funcionam e o que faz elas rodarem.

E aí, funcionou?

Melhor do que eu esperava! Integrei com o Claude Code, e ele rapidamente conseguiu passar por todos os dados, identificar as possíveis causas dos crashes, sugerir correções e monitorar o sistema enquanto eu testava. No geral, fiquei bem satisfeito com o resultado, especialmente porque consegui corrigir o problema antes que se tornasse algo maior.

Como usar?

Primeiro você precisa informar ao seu agente de IA que ele existe. No meu caso, eu estava usando o Claude Code e configurei essa ferramenta para ficar disponível globalmente, ou seja, no arquivo c:\Users\<meu usuário>\.claude.json eu adicionei:

 1{
 2  "mcpServers": {
 3    "os-doctor": {
 4      "command": "gsudo",
 5      "args": [
 6        "C:/path/to/published/McpOsDoctor.exe"
 7      ]
 8    }
 9  }
10}

Depois é só iniciar o agente e perguntar algo como Quais ferramentas de diagnóstico você tem disponíveis?, e ele vai listar o que o MCP os-doctor tem disponível.

A partir daí, é só fazer perguntas de diagnóstico, e ele vai usar o MCP server. Por exemplo:

  • "Por que meu computador está lento?": O Claude vai verificar processos, informações do sistema e logs de eventos
  • "Me mostra erros recentes do sistema": consulta o log de eventos por entradas de Erro/Crítico
  • "O serviço do Windows Update está rodando?": verifica o status do serviço
  • "Meu computador travou recentemente?": inspeciona o histórico de boot por desligamentos inesperados
  • "O que está usando toda a minha memória?": lista os processos que mais consomem memória
  • "Monitora a temperatura da minha CPU e GPU": inicia o monitoramento de sensores e reporta dados térmicos

Quais ferramentas o os-doctor tem?

FerramentaDescrição
get_capabilitiesReporta ferramentas disponíveis, plataforma, status de elevação e dicas de parâmetros
query_system_logBusca entradas no Windows Event Log por tempo, severidade, fonte e palavras-chave
list_log_sourcesLista fontes de log disponíveis
get_service_statusConsulta serviços do Windows por nome, padrão ou status
list_top_processesLista os processos que mais consomem CPU ou memória
get_system_infoSnapshot de hardware e SO (hostname, CPU, memória, discos, uptime)
get_boot_historyEventos de boot, desligamento, crash e sleep/wake com timestamps
get_gpu_infoInfo da GPU NVIDIA: modelo, driver, uso de VRAM, temperatura, utilização, consumo via nvidia-smi
get_directx_infoVersão do DirectX, adaptadores de vídeo (VRAM, drivers, feature levels) e dispositivos de som via dxdiag
start_sensor_monitoringInicia polling de sensores de hardware em background (temperatura, ventoinha, voltagem, clock, carga, energia)
stop_sensor_monitoringPara o monitoramento de sensores; dados coletados continuam disponíveis via get_sensor_data
get_sensor_dataRecupera resultados do monitoramento com estatísticas min/max/média/atual por sensor

Nota: get_gpu_info requer que o nvidia-smi esteja instalado e acessível no PATH do sistema, e get_directx_info requer que o dxdiag esteja instalado e acessível no PATH do sistema.

Como instalar esse MCP Server?

Se você quer algo pronto pra usar, pode baixar o binário pré-compilado na página de releases, colocar em qualquer diretório e configurar seu agente de IA pra usá-lo.

Se preferir compilar do código-fonte, pode clonar o repositório e seguir a partir daí. Foi escrito em C# (.NET10).

Tem planos de suportar outros sistemas operacionais?

Achou o projeto legal, mas você é um dos sortudos que não usa Windows? Bom, eu construí esse MCP Server pensando em compatibilidade cross-platform, então deveria ser bem simples adicionar suporte para Linux e MacOS. Dito isso, não tenho planos concretos de adicionar essa funcionalidade no momento.

Conclusão

No geral, foi um projeto bem divertido de trabalhar, e funcionou muito bem. Mostra que IA pode ser uma ferramenta poderosa e útil se você sabe qual problema está tentando resolver.

Se quiser dar uma olhada no código, pode visitar o repositório no GitHub.

Espero ter ajudado! :)

Traduções: