Screenshot MCP Server
Capture screenshots do Windows a partir de assistentes de IA no WSL, com opções para monitores ou janelas específicas.
Documentação
Este repositório está em modo Somente Leitura e foi substituído
Use o repositório WSLSnapIt-MCP em vez deste (funciona melhor, com mais recursos!)
Screenshot MCP Server
Um servidor Model Context Protocol (MCP) que permite que assistentes de IA executados no WSL capturem capturas de tela do Windows com recursos avançados, como seleção de monitor e captura de janelas específicas.
Recursos
- 📸 Captura de Tela Completa - Captura todos os monitores (comportamento padrão)
- 🖥️ Seleção de Monitor - Captura monitores específicos (primário, 1, 2, etc.)
- 🪟 Captura de Janela - Captura janelas específicas por correspondência de título com reconhecimento de DPI
- 🚀 Captura por Processo - Captura janelas por nome do processo (ex.: notepad.exe)
- 📂 Locais de Salvamento Personalizados - Salva em qualquer pasta usando caminhos WSL ou Windows
- 🔄 Conversão Automática de Caminhos - Converte caminhos WSL para caminhos Windows
- 📁 Armazenamento Organizado - Capturas de tela salvas em
workspace/screenshots/por padrão - 🎯 Reconhecimento de DPI - Escala adequada para monitores de alta densidade de pixels
- 🖼️ Captura Completa de Janela - Inclui sombras e bordas da janela sem cortes
Pré-requisitos
- Windows com WSL (Subsistema Windows para Linux)
- Node.js instalado no WSL
- Claude Desktop ou Claude Code com suporte a MCP
Instalação
- Clone este repositório:
git clone https://github.com/peterparker57/screenshot-mcp.git
cd screenshot-mcp
- Instale as dependências:
npm install
# or with bun:
bun install
- Adicione à sua configuração do Claude (
~/.claude.jsonou~/.claude/claude_desktop_config.json):
{
"mcpServers": {
"screenshot": {
"command": "node",
"args": [
"/path/to/screenshot-mcp/index.js"
],
"disabled": false,
"alwaysAllow": [
"take_screenshot"
]
}
}
}
- Reinicie o Claude Desktop/Code
Uso
Após a instalação, você pode pedir ao Claude para tirar capturas de tela:
Uso Básico
Take a screenshot
Capturar Monitor Específico
Take a screenshot of monitor 1
Take a screenshot of the primary monitor
Capturar Janela Específica por Título
Take a screenshot of the "Chrome" window
Take a screenshot of window titled "Visual Studio Code"
Capturar Janela Específica por Nome do Processo
Take a screenshot of notepad.exe
Take a screenshot of the chrome process
Take a screenshot of process "Code"
Nome de Arquivo Personalizado
Take a screenshot and save it as "test.png"
Salvar em Pasta Personalizada
Take a screenshot and save it to /mnt/c/Users/username/Pictures/
Take a screenshot and save to C:\Users\username\Desktop\
Take a screenshot of monitor 1 and save to folder "../docs/images"
Referência da API
O servidor MCP fornece uma única ferramenta:
take_screenshot
Parâmetros:
filename(opcional): Nome do arquivo de captura de tela (padrão: "screenshot.png")monitor(opcional): Qual monitor capturar"all"- Captura todos os monitores (padrão)"primary"- Captura apenas o monitor primário1,2, etc. - Captura monitor específico por índice
windowTitle(opcional): Captura uma janela específica pelo título (correspondência parcial suportada)processName(opcional): Captura uma janela específica pelo nome do processo (ex.: "notepad.exe" ou "notepad")folder(opcional): Caminho de pasta personalizado para salvar a captura de tela- Suporta caminhos WSL:
/mnt/c/Users/... - Suporta caminhos Windows:
C:\Users\... - Suporta caminhos relativos:
../images - Padrão:
workspace/screenshots/
- Suporta caminhos WSL:
Retornos:
- Mensagem de sucesso com o caminho do arquivo
- Mensagem de erro se a captura falhar
Observações:
- Se ambos
windowTitleeprocessNameforem fornecidos,windowTitletem precedência - Pastas personalizadas são criadas automaticamente se não existirem
- Os formatos de caminho são convertidos automaticamente entre WSL e Windows conforme necessário
Detalhes Técnicos
Arquitetura
- Servidor MCP: Node.js com
@modelcontextprotocol/sdk - Captura de Tela: PowerShell com .NET Windows Forms
- Comunicação: Executa comandos PowerShell a partir do WSL
- Codificação: Codificação Base64 para execução confiável de comandos
Recursos de Captura de Janela
- Reconhecimento de DPI: Lida automaticamente com monitores de alta densidade de pixels para capturas nítidas
- Preenchimento de Janela: Adiciona 10px de preenchimento para capturar sombras e bordas da janela
- Aguardar Renderização: Aguarda 200ms após focar a janela para garantir renderização completa
- Verificação de Limites: Evita coordenadas negativas quando as janelas estão próximas às bordas da tela
- Correspondência de Processo: Correspondência inteligente de nomes de processo (remove a extensão .exe automaticamente)
Como Funciona
- O servidor MCP recebe a solicitação de captura de tela do Claude
- Determina o local de salvamento (pasta personalizada ou padrão)
- Converte caminhos entre formatos WSL e Windows conforme necessário
- Constrói o script PowerShell apropriado com base nos parâmetros
- Codifica o script em base64 para evitar problemas de escape
- Executa o comando PowerShell a partir do WSL
- O PowerShell captura a tela usando APIs do Windows Forms
- A imagem é salva no local especificado
Tratamento de Erros
- Filtra a saída CLIXML do PowerShell (logs detalhados, não erros)
- Valida índices de monitor
- Fornece mensagens de erro claras para janelas ou processos ausentes
- Lista janelas disponíveis quando a captura falha
- Cria diretórios automaticamente se necessário
- Lida com formatos de caminho WSL e Windows
Solução de Problemas
Pasta de capturas de tela não criada
O servidor cria pastas automaticamente conforme necessário. Certifique-se de ter permissões de escrita no local de destino.
Erros de execução do PowerShell
Verifique sua política de execução do PowerShell:
Get-ExecutionPolicy
Erros de janela não encontrada
- Certifique-se de que a janela está aberta e não minimizada
- A correspondência de título não diferencia maiúsculas de minúsculas e suporta correspondências parciais
- Tente usar um título de janela mais específico
- Ao pesquisar por processo, a ferramenta listará todas as janelas disponíveis para ajudar a identificar a correta
Captura de janela cortada
A versão mais recente inclui preenchimento automático e reconhecimento de DPI. Se ainda houver cortes:
- Certifique-se de estar usando a versão mais recente
- Tente maximizar a janela antes da captura
- Verifique se a janela tem renderização incomum (alguns aplicativos usam bordas personalizadas)
Problemas de conversão de caminho
O servidor converte automaticamente entre formatos de caminho WSL e Windows:
- Caminhos WSL como
/mnt/c/...são convertidos paraC:\...para o PowerShell - Caminhos Windows como
C:\...são convertidos para/mnt/c/...para verificação de arquivos - Certifique-se de que seus caminhos sejam acessíveis tanto pelo WSL quanto pelo Windows
Atualizações Recentes
v1.2.0
- Adicionado suporte a pasta personalizada com o parâmetro
folder - Suporta caminhos WSL (
/mnt/...) e caminhos Windows (C:\...) - Conversão automática de caminhos entre formatos WSL e Windows
- Cria diretórios personalizados automaticamente se não existirem
- Mantém compatibilidade retroativa com a pasta padrão de capturas de tela
v1.1.0
- Adicionado suporte a captura por nome de processo
- Agora é possível capturar janelas por nome do processo (ex.: "notepad.exe")
- Tratamento inteligente da extensão .exe
- Mensagens de erro aprimoradas mostrando janelas disponíveis
v1.0.1
- Corrigidos problemas de corte na captura de janelas
- Adicionado reconhecimento de DPI para monitores de alta densidade de pixels
- Adicionado preenchimento para capturar sombras da janela
- Melhorado o tempo de espera de renderização da janela
- Adicionada verificação de limites para casos extremos
Contribuições
Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.
Licença
Licença MIT - consulte o arquivo LICENSE para detalhes
Agradecimentos
- Desenvolvido para uso com Claude Desktop e Claude Code
- Usa o Model Context Protocol
- Agradecimento especial à equipe do WSL por tornar possível a integração Windows/Linux