ZIP MCP Server
Comprimir e descomprimir arquivos ZIP, com suporte para empacotamento de múltiplos arquivos, proteção por senha e criptografia.
Documentação
ZIP MCP Server
中文 | Inglês
Introdução ao Projeto
O ZIP MCP Server é um servidor de compressão baseado em fastMCP e zip.js, implementando o Model Context Protocol (MCP). Este projeto fornece funções de compressão, descompressão e consulta de informações de pacotes de compressão totalmente controladas por parâmetros.
Recursos
- Suporta compressão e descompressão de arquivos e dados
- Suporta compressão de empacotamento de múltiplos arquivos
- Fornece controle de nível de compressão (0-9)
- Suporta proteção por senha e configurações de força de criptografia
- Fornece função de consulta para metadados de pacotes comprimidos
- Valida caminhos de entrada ZIP na descompressão para prevenir escritas de travessia de caminho
Segurança
As versões 1.0.6 e posteriores corrigem um problema de escrita arbitrária de arquivos na ferramenta decompress: nomes de entrada ZIP maliciosos (por exemplo, ../outside.txt) podiam anteriormente ser unidos ao diretório de saída e gravados fora da raiz de extração pretendida. A extração agora resolve a raiz de saída uma vez, valida cada caminho de entrada e rejeita caminhos absolutos, caminhos com letra de unidade, segmentos .. e qualquer caminho que escape do diretório de saída.
Agradecimentos a Ryan (vonbrubeck@gmail.com) por relatar este problema de forma responsável.
Estrutura do Projeto
zip-mcp
├── src
│ ├── index.ts # Application entry point
│ ├── utils
│ │ ├── compression.ts # Compression and decompression implementation
│ │ └── safePath.ts # Safe ZIP entry path validation
├── tsconfig.json # TypeScript configuration file
├── package.json # npm configuration file
└── README.md # Project documentation
Instalação
Você pode instalar o ZIP MCP Server globalmente usando npm:
npm install -g zip-mcp
Configuração MCP
Após a instalação, você pode configurar o ZIP MCP na sua configuração JSON MCP:
{
"mcpServers": {
"zip-mcp": {
"command": "zip-mcp",
"args": []
}
}
}
Configure o JSON MCP no Cliente de IA
- Claude Client: https://modelcontextprotocol.io/quickstart/user
- Raycast: requer a instalação do plugin MCP
- Cursor: https://docs.cursor.com/context/model-context-protocol#configuring-mcp-servers
Descrição das Ferramentas MCP
O ZIP MCP Server fornece as seguintes ferramentas, que podem ser chamadas através do protocolo MCP:
Ferramenta de Compressão (compress)
Comprima arquivos ou diretórios locais em um arquivo ZIP.
Parâmetros:
input: Caminho do arquivo ou diretório a ser comprimido (string ou array de strings)output: Caminho do arquivo ZIP de saídaoptions: Opções de compressão (opcional)level: Nível de compressão (0-9, padrão é 5)password: Proteção por senhaencryptionStrength: Força de criptografia (1-3)overwrite: Se deve sobrescrever arquivos existentes (booleano)
Retornos:
- Sucesso: Conteúdo de texto contendo informações de sucesso
- Falha: Conteúdo de texto contendo informações de erro
Ferramenta de Descompressão (decompress)
Descomprima arquivos ZIP locais para o diretório especificado. Os caminhos de entrada são validados antes da gravação para que os arquivos não possam ser extraídos fora de output via .. ou caminhos absolutos.
Parâmetros:
input: Caminho do arquivo ZIPoutput: Caminho do diretório de saídaoptions: Opções de descompressão (opcional)password: Senha de descompressãooverwrite: Se deve sobrescrever arquivos existentes (booleano)createDirectories: Se deve criar diretórios inexistentes (booleano)
Retornos:
- Sucesso: Conteúdo de texto contendo informações do resultado da descompressão
- Falha: Conteúdo de texto contendo informações de erro
Ferramenta de Informações ZIP (getZipInfo)
Obtenha informações de metadados de arquivos ZIP locais.
Parâmetros:
input: Caminho do arquivo ZIPoptions: Opções (opcional)password: Senha de descompressão
Retornos:
- Sucesso: Conteúdo de texto contendo informações detalhadas do arquivo ZIP, incluindo:
- Número total de arquivos
- Tamanho total
- Tamanho comprimido
- Taxa de compressão
- Informações detalhadas de cada arquivo
- Falha: Conteúdo de texto contendo informações de erro
Ferramenta de Teste (echo)
Retorna a mensagem de entrada para testar se o serviço está funcionando normalmente.
Parâmetros:
message: Mensagem a ser retornada
Retornos:
- Conteúdo de texto contendo a mensagem de entrada e o timestamp atual
Exemplos
Exemplos de chamada de ferramentas usando o cliente MCP:
// Compress files
await client.executeTool("compress", {
input: "/path/to/files/or/directory",
output: "/path/to/output.zip",
options: {
level: 9,
comment: "Test compression",
password: "secret",
overwrite: true,
},
});
// Decompress files
await client.executeTool("decompress", {
input: "/path/to/archive.zip",
output: "/path/to/extract/directory",
options: {
password: "secret",
overwrite: true,
createDirectories: true,
},
});
// Get ZIP info
await client.executeTool("getZipInfo", {
input: "/path/to/archive.zip",
options: {
password: "secret",
},
});
// Test service
await client.executeTool("echo", {
message: "Hello, ZIP MCP Server!",
});
Contato
- E-mail: gz7gugu@qq.com
- Blog: https://7gugu.com