MCP Directory Share
Um servidor MCP (Model Context Protocol) que permite compartilhar conteúdos de diretórios como contexto para agentes de AI.
🎯 Funcionalidades
- Compartilhamento de Diretórios: Adicione e gerencie diretórios que podem ser acessados por agentes de AI
- Listagem de Conteúdo: Navegue pela estrutura de arquivos e diretórios
- Leitura de Arquivos: Leia o conteúdo de arquivos em diferentes codificações
- Metadados: Obtenha informações detalhadas sobre arquivos e diretórios
- Configuração Flexível: Controle de arquivos ocultos, profundidade máxima e padrões de exclusão
🚀 Instalação
Pré-requisitos
- Node.js (versão 18 ou superior)
- npm ou yarn
Instalação Local
- Clone o repositório:
git clone https://github.com/GleidsonFerSanP/mcp-expose-directory.git
cd mcp-expose-directory- Instale as dependências:
npm install- Compile o projeto:
npm run buildNota: O diretório build/ não está incluído no repositório e será criado automaticamente durante a compilação.Instalação Global
npm install -g mcp-directory-share⚙️ Configuração
Para VS Code com GitHub Copilot
O servidor MCP já está configurado para integração com o VS Code através do arquivo .vscode/mcp.json .
Configuração Automática (Recomendado)
Se você está usando este projeto localmente, a configuração já está pronta em .vscode/mcp.json :
{
"servers": {
"mcp-directory-share": {
"type": "stdio",
"command": "node",
"args": [
"/Users/gleidsonfersanp/workspace/AI/mcp-directory-share/build/index.js"
]
}
}
}Configuração Manual
- Certifique-se de que o projeto está compilado:
npm run build- Configure o servidor MCP no VS Code:
* Abra o VS Code * Vá para View > Command Palette (Cmd+Shift+P) * Digite "MCP: Configure Server" * Ou crie/edite o arquivo .vscode/mcp.json na raiz do seu workspace
- Adicione a configuração:
{
"servers": {
"mcp-directory-share": {
"type": "stdio",
"command": "node",
"args": ["caminho/absoluto/para/build/index.js"]
}
}
}Usando com GitHub Copilot
Após a configuração, o servidor estará disponível para o GitHub Copilot:
- Inicie o servidor: O VS Code iniciará automaticamente o servidor MCP
- Adicione diretórios: Use a ferramenta
add_shared_directorypara compartilhar diretórios - Use o Copilot: O GitHub Copilot terá acesso aos contextos dos diretórios compartilhados
Verificação da Configuração
Para verificar se está funcionando:
- Abra o terminal integrado do VS Code
- Execute:
npm run build(se não estiver compilado) - O Copilot deve conseguir acessar as ferramentas MCP automaticamente
Instalação Global (Alternativa)
Se preferir instalar globalmente:
npm install -g .E usar a configuração simplificada:
{
"servers": {
"mcp-directory-share": {
"type": "stdio",
"command": "mcp-directory-share"
}
}
}Para Claude Desktop
Adicione ao seu arquivo claude_desktop_config.json :
{
"mcpServers": {
"directory-share": {
"command": "node",
"args": ["caminho/para/build/index.js"]
}
}
}🔧 Uso
Ferramentas Disponíveis
1. add_shared_directory
Adiciona um diretório à lista de diretórios compartilhados.
Parâmetros:
path(string): Caminho absoluto para o diretórioname(string, opcional): Nome amigável para o diretóriodescription(string, opcional): Descrição do diretórioincludeHidden(boolean, opcional): Incluir arquivos e pastas ocultosmaxDepth(number, opcional): Profundidade máxima de buscaexcludePatterns(array, opcional): Padrões de arquivos a excluir
Exemplo:
{
"path": "/Users/usuario/projetos",
"name": "Projetos",
"description": "Diretório com todos os projetos de desenvolvimento",
"includeHidden": false,
"maxDepth": 3,
"excludePatterns": ["node_modules", "*.log"]
}2. remove_shared_directory
Remove um diretório da lista de compartilhados.
Parâmetros:
path(string): Caminho do diretório a ser removido
3. list_shared_directories
Lista todos os diretórios compartilhados configurados.
4. list_directory_contents
Lista o conteúdo de um diretório compartilhado.
Parâmetros:
path(string): Caminho do diretóriorecursive(boolean): Busca recursivashowHidden(boolean): Mostrar arquivos ocultosmaxDepth(number, opcional): Profundidade máxima
5. read_file_content
Lê o conteúdo de um arquivo.
Parâmetros:
filePath(string): Caminho completo do arquivoencoding(string): Codificação ('utf8', 'base64', 'hex')
6. get_path_metadata
Obtém metadados de um arquivo ou diretório.
Parâmetros:
path(string): Caminho do arquivo ou diretório
Recursos Disponíveis
shared-directories-list
Recurso contendo a lista de todos os diretórios compartilhados em formato JSON.
URI: mcp://directory-share/shared-directories
🛡️ Segurança
- Controle de Acesso: Apenas diretórios explicitamente adicionados podem ser acessados
- Validação de Caminhos: Todos os caminhos são validados para garantir que estão dentro dos diretórios compartilhados
- Tratamento de Erros: Erros são tratados de forma segura, evitando vazamento de informações do sistema
📝 Exemplo de Uso
// Exemplo de uso com o agente AI:
// 1. Adicionar um diretório compartilhado
await callTool("add_shared_directory", {
path: "/Users/usuario/documentos",
name: "Documentos",
description: "Pasta de documentos pessoais",
includeHidden: false,
maxDepth: 2
});
// 2. Listar conteúdo do diretório
await callTool("list_directory_contents", {
path: "/Users/usuario/documentos",
recursive: true,
showHidden: false
});
// 3. Ler um arquivo específico
await callTool("read_file_content", {
filePath: "/Users/usuario/documentos/readme.txt",
encoding: "utf8"
});
// 4. Obter metadados
await callTool("get_path_metadata", {
path: "/Users/usuario/documentos/projeto"
});🔨 Desenvolvimento
Executar em Modo Desenvolvimento
npm run devExecutar Testes
npm testBuild
npm run build🤝 Contribuição
Contribuições são bem-vindas! Por favor, leia o arquivo CONTRIBUTING.md para mais informações.
📄 Licença
Este projeto está licenciado sob a Licença MIT.
🆘 Suporte
Se você encontrar algum problema ou tiver dúvidas:
- Verifique os Issues existentes
- Crie um novo Issue com detalhes do problema
- Forneça logs de erro quando possível
🚧 Roadmap
- [ ] Suporte a observação de mudanças em tempo real
- [ ] Interface web para configuração
- [ ] Suporte a filtros mais avançados
- [ ] Cache inteligente de listagens
- [ ] Integração com sistemas de controle de versão
- [ ] Suporte a múltiplos transportes (HTTP, WebSocket)
