Windows Screenshots
Um servidor Model Context Protocol (MCP) que fornece funcionalidade de captura de tela em sistemas Windows.
Documentação
MCP Windows Screenshots
Um servidor Model Context Protocol (MCP) que fornece funcionalidade de captura de tela em sistemas Windows.
Recursos
- Capturas de tela em tela cheia: Capture monitores inteiros ou todos os monitores
- Capturas de região: Seleção interativa de área para capturas direcionadas
- Gerenciamento de capturas: Liste e gerencie capturas de tela salvas
- Incorporação de imagens: Incorporação opcional de imagens em base64 nas respostas do MCP
- Suporte a múltiplos monitores: Lida com configurações de vários monitores
Pré-requisitos
- Sistema operacional Windows (atualmente apenas Windows)
- Node.js >= 18.0.0
- Executável auxiliar: Um executável Windows (RegionSnip.exe) que realiza a captura de tela real
Instalação
-
Clone o repositório
-
Instale as dependências:
npm install
- Compile o projeto:
npm run build
- Garanta que o executável auxiliar exista em
bin/RegionSnip.exe
Uso
Como um servidor MCP
Este servidor se comunica via stdio e pode ser usado com qualquer cliente compatível com MCP (como o Claude Desktop).
Inicie o servidor:
npm start
Ou com o inspetor MCP para depuração:
npm run inspector
Uso com npx
Você pode executar este servidor MCP diretamente usando npx sem instalá-lo globalmente:
Cursor
Adicione ao seu .cursor/mcp.json:
{
"mcpServers": {
"windows-screenshots": {
"command": "npx",
"args": ["mcp-windows-screenshot"]
}
}
}
Claude Desktop
Adicione ao seu claude_desktop_config.json:
{
"mcpServers": {
"windows-screenshots": {
"command": "npx",
"args": ["mcp-windows-screenshot"]
}
}
}
Windsurf
Adicione ao seu ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"windows-screenshots": {
"command": "npx",
"args": ["mcp-windows-screenshot"]
}
}
}
Ferramentas disponíveis
takeScreenshot
Captura uma captura de tela em tela cheia.
Parâmetros:
mode: Sempre "full" (padrão)allMonitors: Capturar todos os monitores (padrão: true)monitor: Número específico do monitor (opcional)includeImage: Incorporar imagem como base64 na resposta (padrão: false)timeoutMs: Tempo limite em milissegundos (padrão: 60000)
Exemplo:
{
"mode": "full",
"allMonitors": true,
"includeImage": true
}
Resposta:
{
"ok": true,
"cancelled": false,
"path": "screenshots/full-2024-01-14T10-53-52-000Z.png",
"rect": {"x": 0, "y": 0, "width": 1920, "height": 1080},
"width": 1920,
"height": 1080,
"mode": "full",
"allMonitors": true,
"monitor": null
}
takeSelectedAreaScreenshot
Permite a seleção interativa de uma região da tela para captura.
Parâmetros:
mode: Sempre "region" (padrão)includeImage: Incorporar imagem como base64 na resposta (padrão: false)timeoutMs: Tempo limite em milissegundos (padrão: 120000)
Exemplo:
{
"includeImage": true
}
Resposta:
{
"ok": true,
"cancelled": false,
"path": "screenshots/region-2024-01-14T10-53-52-000Z.png",
"rect": {"x": 100, "y": 100, "width": 800, "height": 600},
"width": 800,
"height": 600,
"mode": "region"
}
listScreenshots
Lista as capturas de tela salvas no diretório de capturas.
Parâmetros:
limit: Número máximo de capturas de tela a retornar (padrão: 50, máximo: 200)
Exemplo:
{
"limit": 10
}
Resposta:
{
"items": [
{
"path": "screenshots/region-2024-01-14T10-53-52-000Z.png",
"sizeBytes": 245760,
"createdAt": "2024-01-14T10:53:52.000Z"
}
]
}
Configuração
Executável auxiliar
O servidor requer um executável auxiliar em bin/RegionSnip.exe que suporte os seguintes argumentos de linha de comando:
--mode full|region: Modo de captura--out <path>: Caminho do arquivo de saída--all: Capturar todos os monitores (somente modo full)--monitor <n>: Número específico do monitor (somente modo full)
O executável deve gerar JSON na saída padrão com a seguinte estrutura:
{
"ok": true,
"cancelled": false,
"rect": {"x": 0, "y": 0, "width": 1920, "height": 1080},
"width": 1920,
"height": 1080
}
Diretório de capturas
As capturas de tela são salvas automaticamente no diretório screenshots/ na raiz do projeto. Este diretório é criado automaticamente se não existir.
Desenvolvimento
Compilação
npm run build
Testes
O servidor pode ser testado usando o inspetor MCP:
npm run inspector
Isso inicia o servidor e abre uma interface de depuração para testar as ferramentas disponíveis.
Estrutura do projeto
├── src/
│ └── index.ts # Main server implementation
├── build/ # Compiled JavaScript output
├── screenshots/ # Screenshot storage directory
├── bin/
│ └── RegionSnip.exe # Helper executable (not included)
├── package.json
└── README.md