STRUCTURE.md•3.75 kB
# 📁 Estrutura do Projeto MCP Test Server
## 🏗️ **Organização por Domínios**
```
MCP-test/
├── 📄 mcp-server.js # Servidor MCP principal (refatorado)
├── 📄 server.js # Servidor HTTP (para testes)
├── 📄 test-client.js # Cliente de teste HTTP
├── 📄 warp-mcp-config.json # Configuração do Warp
├── 📄 package.json # Configuração Node.js
├── 📄 README.md # Documentação
└── 📁 src/ # Código fonte organizado
├── 📁 data/
│ └── 📄 mockData.js # Dados mockados centralizados
├── 📁 domains/ # Domínios de negócio
│ ├── 📄 users.js # Serviço e schemas de usuários
│ ├── 📄 tasks.js # Serviço e schemas de tarefas
│ └── 📄 search.js # Serviço e schema de busca
└── 📁 utils/
└── 📄 mcpResponse.js # Utilitário para formatação MCP
```
## 🔄 **Separação de Responsabilidades**
### **📊 Data Layer** (`src/data/`)
- **`mockData.js`**: Dados centralizados
- Arrays de users, tasks e metrics
- Única fonte da verdade para dados
### **🏢 Domain Layer** (`src/domains/`)
- **`users.js`**: Domínio de usuários
- `UserService`: Lógica de negócio
- `userToolSchemas`: Schemas MCP
- Operações: getAll, getById, create, search
- **`tasks.js`**: Domínio de tarefas
- `TaskService`: Lógica de negócio
- `taskToolSchemas`: Schemas MCP
- Operações: getAll, getById, create, update, search
- **`search.js`**: Domínio de busca
- `SearchService`: Busca cross-domain
- `searchToolSchema`: Schema MCP
- Integra busca em users e tasks
### **🛠️ Utils Layer** (`src/utils/`)
- **`mcpResponse.js`**: Formatação de resposta
- Converte dados para formato MCP
- Padroniza estrutura de resposta
### **🖥️ Server Layer** (`mcp-server.js`)
- **Configuração MCP**: Setup do servidor
- **Registro de Tools**: Lista todas as ferramentas
- **Roteamento**: Direciona chamadas para serviços
- **Error Handling**: Tratamento de erros
## ✨ **Vantagens da Refatoração**
### **📖 Legibilidade**
- ✅ Código organizado por domínio
- ✅ Responsabilidades bem definidas
- ✅ Arquivos menores e focados
### **🔧 Manutenibilidade**
- ✅ Fácil adição de novos domínios
- ✅ Alterações isoladas por contexto
- ✅ Reutilização de código
### **🧪 Testabilidade**
- ✅ Serviços independentes
- ✅ Lógica de negócio isolada
- ✅ Mocks centralizados
### **📈 Escalabilidade**
- ✅ Estrutura preparada para crescimento
- ✅ Padrões consistentes
- ✅ Separação clara de camadas
## 🚀 **Como Usar**
### **Servidor MCP (Warp)**
```bash
npm run mcp
```
### **Servidor HTTP (Desenvolvimento)**
```bash
npm start
```
### **Modo Watch (Desenvolvimento)**
```bash
npm run mcp:dev # MCP Server
npm run dev # HTTP Server
```
## 🛠️ **Ferramentas Disponíveis**
| Tool | Domínio | Descrição |
|------|---------|-----------|
| `get_users` | Users | Lista usuários |
| `get_user` | Users | Busca usuário por ID |
| `create_user` | Users | Cria novo usuário |
| `get_tasks` | Tasks | Lista tarefas |
| `create_task` | Tasks | Cria nova tarefa |
| `search` | Search | Busca global |
## 📋 **Próximos Passos Sugeridos**
1. **🧪 Testes Unitários**: Adicionar testes para cada domínio
2. **📊 Validação**: Schemas de entrada mais robustos
3. **💾 Persistência**: Substituir mock por banco de dados
4. **🔐 Autenticação**: Sistema de usuário/permissões
5. **📈 Métricas**: Logs e monitoramento
6. **📚 Documentação**: JSDoc nos serviços