README.md•6.87 kB
# MCP - Padronização de Dados do Projeto
Este MCP garante que o modelo sempre siga a padronização de dados do projeto, evitando confusões em nomes de variáveis, tabelas e colunas do banco de dados.
## 🚀 Funcionalidades
### 🔍 Validação de Variáveis
- Verifica se nomes de variáveis seguem a convenção do projeto
- Suporta camelCase, snake_case e PascalCase
- Valida prefixos obrigatórios por tipo
- Identifica nomes proibidos
### 🗄️ Validação de Banco de Dados
- Valida nomes de tabelas e colunas
- Mantém registro da estrutura do banco
- Verifica consistência na nomenclatura
### 📁 Validação de Estrutura de Arquivos
- Valida nomes de arquivos e pastas
- Verifica extensões apropriadas
- Sugere melhorias na organização
### 💡 Sugestões Inteligentes
- Gera nomes de variáveis baseados em descrições
- Segue os padrões configurados do projeto
- Aplica prefixos automaticamente
## 📦 Instalação
1. **Clone ou baixe os arquivos:**
```bash
git clone <seu-repositorio>
cd mcp
```
2. **Instale as dependências:**
```bash
pip install -r requirements.txt
```
3. **Teste o MCP:**
```bash
python demo.py
```
## 🛠️ Ferramentas Disponíveis
### `validate_variable_name`
Valida se um nome de variável segue os padrões do projeto.
**Parâmetros:**
- `variable_name` (obrigatório): Nome da variável a ser validada
- `variable_type` (opcional): Tipo da variável para verificar prefixos
**Exemplo:**
```python
# ✅ Válido
userName = "João"
isActive = True
handleSubmit = () => {}
# ❌ Inválido
user_name = "João" # Não segue camelCase
data = [] # Nome proibido
submit = () => {} # Falta prefixo 'handle'
```
### `validate_database_structure`
Valida estrutura de tabelas e colunas do banco de dados.
**Parâmetros:**
- `table_name` (obrigatório): Nome da tabela
- `columns` (opcional): Lista de colunas da tabela
**Exemplo:**
```python
# ✅ Válido
user_profiles: ["id", "user_id", "first_name", "last_name", "email", "created_at"]
# ❌ Inválido
UserProfiles: ["ID", "UserID", "FirstName", "LastName"]
```
### `set_project_standards`
Define os padrões de nomenclatura do projeto.
**Parâmetros:**
- `variable_naming`: Padrão (camelCase, snake_case, PascalCase)
- `forbidden_names`: Lista de nomes proibidos
- `required_prefixes`: Prefixos obrigatórios por tipo
**Exemplo:**
```python
set_project_standards({
"variable_naming": "snake_case",
"forbidden_names": ["data", "temp", "user"],
"required_prefixes": {
"boolean": "has",
"function": "process"
}
})
```
### `get_project_standards`
Retorna os padrões atuais do projeto.
### `suggest_variable_name`
Sugere um nome de variável seguindo os padrões.
**Parâmetros:**
- `description` (obrigatório): Descrição do que a variável representa
- `variable_type` (opcional): Tipo da variável
**Exemplo:**
```python
# Entrada: "nome completo do usuário"
# Saída: "nomeCompletoDoUsuário" (camelCase)
# Entrada: "usuário está ativo" (boolean)
# Saída: "isUsuárioEstáAtivo" (com prefixo)
```
### `validate_file_structure`
Valida a estrutura de arquivos e pastas do projeto.
**Parâmetros:**
- `file_path` (obrigatório): Caminho do arquivo a ser validado
## ⚙️ Configuração
### Padrões Padrão
O MCP vem com configurações padrão que você pode personalizar:
- **Convenção de variáveis**: camelCase
- **Nomes proibidos**: data, temp, tmp, var, obj
- **Prefixos obrigatórios**:
- boolean: is
- function: handle
- event: on
### Personalização
Edite o arquivo `config.json` para personalizar os padrões:
```json
{
"project_standards": {
"variable_naming": "camelCase",
"forbidden_names": ["data", "temp", "tmp", "var", "obj"],
"required_prefixes": {
"boolean": "is",
"function": "handle",
"event": "on"
}
}
}
```
## 🔧 Integração com Clientes MCP
### Configuração do Cliente
Adicione ao seu cliente MCP:
```json
{
"mcpServers": {
"project-standards": {
"command": "python",
"args": ["project_standards_mcp.py"],
"env": {
"PYTHONPATH": "."
}
}
}
}
```
### Uso no Cursor/VS Code
1. Configure o MCP no seu cliente
2. Use as ferramentas diretamente no chat
3. O modelo automaticamente validará e sugerirá nomes
## 🧪 Testando
### Demonstração Rápida
```bash
python demo.py
```
### Testes Completos
```bash
python test_examples.py
```
### Exemplo de Saída
```
🎯 MCP - Padronização de Dados do Projeto
==================================================
📋 Ferramentas disponíveis:
• validate_variable_name: Valida se um nome de variável segue os padrões do projeto
• validate_database_structure: Valida estrutura de tabelas e colunas do banco de dados
• set_project_standards: Define os padrões de nomenclatura do projeto
• get_project_standards: Retorna os padrões atuais do projeto
• suggest_variable_name: Sugere um nome de variável seguindo os padrões do projeto
• validate_file_structure: Valida a estrutura de arquivos e pastas do projeto
🔍 Exemplo 1: Validação de Variáveis
------------------------------
userName (string): ✅ Nome 'userName' é válido!
user_name (string): ❌ Nome 'user_name' não é válido!
isActive (boolean): ✅ Nome 'isActive' é válido!
active (boolean): ⚠️ Variáveis do tipo 'boolean' devem começar com 'is'
data (array): ❌ Nome 'data' está na lista de nomes proibidos!
💡 Exemplo 2: Sugestões de Nomes
------------------------------
'nome completo do usuário' → nomeCompletoDoUsuário
'usuário está ativo' → isUsuárioEstáAtivo
'enviar formulário de login' → handleEnviarFormulárioDeLogin
```
## 🎯 Benefícios
1. **Consistência**: Garante que todos os nomes sigam o mesmo padrão
2. **Prevenção de Erros**: Evita confusões entre variáveis similares
3. **Manutenibilidade**: Código mais limpo e organizado
4. **Produtividade**: Sugestões automáticas de nomes
5. **Documentação**: Mantém registro da estrutura do projeto
## 🔄 Fluxo de Trabalho
1. **Configure os padrões** do seu projeto
2. **Valide variáveis** antes de usar
3. **Use sugestões** para nomes consistentes
4. **Mantenha o banco** organizado
5. **Valide arquivos** para estrutura limpa
## 🤝 Contribuição
Para adicionar novas funcionalidades ou melhorar o MCP:
1. Fork o projeto
2. Crie uma branch para sua feature
3. Implemente as mudanças
4. Teste as funcionalidades
5. Envie um pull request
## 📄 Licença
MIT License - veja o arquivo LICENSE para detalhes.
## 🆘 Suporte
Se encontrar problemas:
1. Verifique se todas as dependências estão instaladas
2. Execute `python demo.py` para testar
3. Consulte os exemplos em `test_examples.py`
4. Abra uma issue no repositório
---
**🎉 Agora seu modelo sempre seguirá os padrões do projeto!**