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

  1. Clone o repositório

  2. Instale as dependências:

npm install
  1. Compile o projeto:
npm run build
  1. 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