Project Data Standardization MCP
This MCP ensures consistent naming conventions for variables, database structures, and file organization by validating against project standards and providing smart naming suggestions.
README Documentation
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
- Clone ou baixe os arquivos:
git clone <seu-repositorio>
cd mcp
- Instale as dependências:
pip install -r requirements.txt
- Teste o MCP:
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 validadavariable_type
(opcional): Tipo da variável para verificar prefixos
Exemplo:
# ✅ 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 tabelacolumns
(opcional): Lista de colunas da tabela
Exemplo:
# ✅ 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 proibidosrequired_prefixes
: Prefixos obrigatórios por tipo
Exemplo:
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 representavariable_type
(opcional): Tipo da variável
Exemplo:
# 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:
{
"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:
{
"mcpServers": {
"project-standards": {
"command": "python",
"args": ["project_standards_mcp.py"],
"env": {
"PYTHONPATH": "."
}
}
}
}
Uso no Cursor/VS Code
- Configure o MCP no seu cliente
- Use as ferramentas diretamente no chat
- O modelo automaticamente validará e sugerirá nomes
🧪 Testando
Demonstração Rápida
python demo.py
Testes Completos
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
- Consistência: Garante que todos os nomes sigam o mesmo padrão
- Prevenção de Erros: Evita confusões entre variáveis similares
- Manutenibilidade: Código mais limpo e organizado
- Produtividade: Sugestões automáticas de nomes
- Documentação: Mantém registro da estrutura do projeto
🔄 Fluxo de Trabalho
- Configure os padrões do seu projeto
- Valide variáveis antes de usar
- Use sugestões para nomes consistentes
- Mantenha o banco organizado
- Valide arquivos para estrutura limpa
🤝 Contribuição
Para adicionar novas funcionalidades ou melhorar o MCP:
- Fork o projeto
- Crie uma branch para sua feature
- Implemente as mudanças
- Teste as funcionalidades
- Envie um pull request
📄 Licença
MIT License - veja o arquivo LICENSE para detalhes.
🆘 Suporte
Se encontrar problemas:
- Verifique se todas as dependências estão instaladas
- Execute
python demo.py
para testar - Consulte os exemplos em
test_examples.py
- Abra uma issue no repositório
🎉 Agora seu modelo sempre seguirá os padrões do projeto!