ClipToWSL
Permite que agentes de codificação de IA leiam o conteúdo da área de transferência do Windows, incluindo texto e imagens, de dentro do Subsistema Windows para Linux (WSL).
Documentação
Servidor MCP ClipToWSL
O ClipToWSL é um servidor Model Context Protocol (MCP) que permite que agentes de codificação de IA, como o Claude Code, leiam o conteúdo da área de transferência do Windows a partir do WSL (Subsistema Windows para Linux). Isso permite acesso contínuo aos dados da área de transferência, incluindo texto e imagens, ao trabalhar em ambientes WSL.
Início Rápido: Para instalação fácil, baixe o pacote de lançamento que inclui binários pré-compilados e scripts de configuração automatizados.
Recursos
- Acesso à área de transferência entre plataformas: Leia a área de transferência do Windows a partir do WSL
- Múltiplos tipos de conteúdo: Suporte para dados de texto e imagem na área de transferência
- Codificação de imagem Base64: Conversão automática para PNG e codificação Base64 para imagens
- Conformidade com o protocolo MCP: Integração completa com o Claude Code e outros clientes MCP
- Gerenciamento robusto de processos: Gerenciamento automático do ciclo de vida de processos com verificações de integridade
- Tratamento de erros: Mecanismos abrangentes de tratamento e recuperação de erros
Arquitetura
O sistema consiste em dois componentes principais:
- Leitor de Área de Transferência do Windows (
clipboard-reader/): Um executável C++ que usa APIs Win32 para acessar a área de transferência do Windows - Servidor MCP (
mcp-server/): Um servidor TypeScript/Node.js que gerencia o executável do Windows e expõe a funcionalidade da área de transferência via protocolo MCP
A comunicação entre os componentes usa JSON-RPC por pipes stdin/stdout.
Pré-requisitos
Para Desenvolvimento/Compilação:
- WSL (Subsistema Windows para Linux)
- Distribuição WSL baseada em Ubuntu/Debian
- Compilador cruzado MinGW-w64 para Windows
- Node.js 18+
- TypeScript
Para Uso:
- Ambiente WSL
- Node.js 18+
- Claude Code ou outro cliente compatível com MCP
Instalação
Opção 1: Instalação Rápida (Recomendada)
Baixe o pacote de lançamento que inclui binários pré-compilados:
# 1. Download and extract the release package
wget https://github.com/CarlosGtrz/ClipToWslMcp/releases/download/v1.0.0/clip-to-wsl-mcp-v1.0.0.zip
unzip clip-to-wsl-mcp-v1.0.0.zip
cd clip-to-wsl-mcp-v1.0.0/
# 2. Run the automated installer
./install.sh
# 3. Follow the configuration instructions printed by the installer
O instalador irá:
- Instalar dependências do Node.js
- Definir permissões de execução
- Gerar modelo de configuração do Claude Code
- Fornecer próximos passos para a configuração
Opção 2: Compilar a partir do Código Fonte
Para desenvolvimento ou personalização:
# 1. Clone the repository
git clone <repository-url>
cd ClipToWslMcp
# 2. Install build dependencies
sudo apt update
sudo apt install gcc-mingw-w64-x86-64-posix g++-mingw-w64-x86-64-posix
npm install -g typescript
# 3. Install Node.js dependencies
cd mcp-server && npm install && cd ..
# 4. Build the project
./create-release.sh # Creates optimized release build
Configuração
Integração com Claude Code
Adicione a seguinte configuração às suas configurações do Claude Code:
Linux/WSL: ~/.claude.json
Para Instalação com Pacote de Lançamento:
{
"mcpServers": {
"clip-to-wsl": {
"command": "node",
"args": ["/path/to/release/index.js"],
"env": {
"CLIPBOARD_EXE_PATH": "/path/to/release/clipreader.exe"
}
}
}
}
Para Instalação com Compilação do Código Fonte:
{
"mcpServers": {
"clip-to-wsl": {
"command": "node",
"args": ["/full/path/to/ClipToWslMcp/mcp-server/dist/index.js"],
"env": {
"CLIPBOARD_EXE_PATH": "/full/path/to/ClipToWslMcp/clipboard-reader/clipreader.exe"
}
}
}
}
Importante: Substitua os caminhos pelo seu diretório de instalação real. O instalador automatizado cria um arquivo claude-config-example.json com os caminhos corretos para o seu sistema.
Variáveis de Ambiente
CLIPBOARD_EXE_PATH: Caminho para o executável do leitor de área de transferência do Windows (obrigatório)
Uso
Uma vez configurado, a ferramenta read_clipboard estará disponível no Claude Code:
Área de Transferência de Texto
Quando você copia texto para a área de transferência do Windows, pode perguntar ao Claude Code:
- "O que está na minha área de transferência?"
- "Leia o conteúdo da área de transferência"
- "Use o texto da minha área de transferência"
Área de Transferência de Imagem
Quando você copia uma imagem (captura de tela, imagem copiada, etc.), o Claude Code pode:
- Visualizar e analisar a imagem
- Descrever o que está na imagem
- Processar os dados da imagem
Parâmetros da Ferramenta
A ferramenta read_clipboard aceita um parâmetro opcional format:
"auto"(padrão): Detecta automaticamente e retorna o melhor formato disponível"text": Força a leitura apenas como texto"image": Força a leitura apenas como imagem
Testes
Testar o Executável do Windows
cd clipboard-reader
echo '{"jsonrpc":"2.0","method":"read_clipboard","id":1}' | ./clipreader.exe
Testar o Servidor MCP
node test-server.js
Testar a Integração
cd mcp-server
npm start
# In another terminal, send MCP requests to test functionality
Solução de Problemas
Problemas Comuns
-
Erros de "Comando não encontrado"
- Certifique-se de que o MinGW-w64 está instalado corretamente:
x86_64-w64-mingw32-g++ --version - Verifique se todos os caminhos na configuração são caminhos absolutos
- Certifique-se de que o MinGW-w64 está instalado corretamente:
-
Tempo limite de comunicação do processo
- Verifique se o caminho do executável está correto e acessível
- Verifique se o executável do Windows tem permissões adequadas
- Certifique-se de que o executável pode ser executado (teste com execução direta)
-
Ferramenta MCP não aparecendo no Claude Code
- Verifique o caminho e a sintaxe da configuração
- Verifique os logs do Claude Code para erros de inicialização do servidor MCP
- Reinicie o Claude Code após alterações na configuração
-
Falhas no acesso à área de transferência
- Certifique-se de que está executando a partir do WSL com acesso à área de transferência do Windows
- Verifique se a área de transferência do Windows contém dados
- Verifique se outros aplicativos não estão bloqueando o acesso à área de transferência
Comandos de Depuração
# Check if executable was built successfully
ls -la clipboard-reader/clipreader.exe
# Test executable directly
echo '{"method":"read_clipboard","id":1}' | /path/to/clipreader.exe
# Check MCP server startup
cd mcp-server && node dist/index.js
# Monitor process communication
ps aux | grep clipreader
Logs
O servidor MCP fornece registro em console para depuração:
- Eventos de inicialização e encerramento de processos
- Resultados de verificações de integridade
- Mensagens de erro e rastreamentos de pilha
- Logs de comunicação de solicitação/resposta
Desenvolvimento
Estrutura do Projeto
ClipToWslMcp/
├── clipboard-reader/ # C++ Windows executable
│ ├── src/
│ │ ├── main.cpp # JSON-RPC communication
│ │ ├── clipboard.cpp # Windows clipboard access
│ │ ├── clipboard.h
│ │ ├── base64.cpp # Base64 encoding
│ │ └── base64.h
│ ├── Makefile # Build configuration with optimizations
│ └── clipreader.exe # Built executable (after build)
├── mcp-server/ # TypeScript MCP server
│ ├── src/
│ │ ├── index.ts # Main server
│ │ ├── clipboard-manager.ts # Process management
│ │ └── types.ts # Type definitions
│ ├── dist/ # Compiled JavaScript (after build)
│ ├── package.json
│ └── tsconfig.json
├── release/ # Ready-to-use release package
│ ├── index.js # Compiled MCP server
│ ├── clipreader.exe # Optimized Windows executable
│ ├── package.json # Runtime dependencies only
│ ├── install.sh # Automated installer
│ └── README.md # Installation instructions
├── create-release.sh # Automated release builder
├── shared/ # Shared configuration
│ └── config.json # Claude Code config template
└── docs/ # Documentation
Compilação a partir do Código Fonte
- Instale as dependências de desenvolvimento (MinGW-w64, Node.js, TypeScript)
- Compile o executável do Windows usando MinGW-w64
- Compile o servidor MCP TypeScript
- Use
./create-release.shpara criar pacote de lançamento otimizado - Teste a integração entre os componentes
Criando Pacote de Lançamento
O construtor automatizado de lançamentos cria um pacote pronto para distribuição:
./create-release.sh
Este script:
- Compila executável otimizado do Windows com otimização de tamanho
- Compila TypeScript para JavaScript
- Cria pacote de lançamento apenas com dependências de execução
- Gera scripts de instalação e documentação
- Produz um pacote independente pronto para distribuição
Contribuindo
- Faça um fork do repositório
- Crie um branch de funcionalidade
- Faça suas alterações
- Teste minuciosamente
- Envie uma solicitação de pull
Considerações de Segurança
- O executável do Windows é executado com permissões mínimas
- Os dados da área de transferência são processados localmente sem transmissão pela rede
- O isolamento de processos impede o acesso ao ambiente WSL sensível
- A validação de entrada impede ataques de injeção
- Os limites de recursos impedem o esgotamento de memória
Desempenho
- Uso de memória: Otimizado para imagens grandes com processamento em fluxo
- Tempo de inicialização: A reutilização de processos minimiza a sobrecarga de inicialização
- Manipulação de imagens: Compressão PNG eficiente e codificação Base64
- Recuperação de erros: Reinício automático de processos em caso de falhas
Licença
Licença MIT - consulte o arquivo LICENSE para detalhes.
Suporte
Para problemas, relatórios de bugs ou solicitações de recursos, crie um problema no repositório.