Skip to main content
Glama

Project Data Standardization MCP

by 999luan
test_examples.py6.56 kB
#!/usr/bin/env python3 """ Exemplos de teste para o MCP de Padronização de Dados Demonstra como usar as ferramentas do MCP """ import asyncio import json from project_standards_mcp import server, project_standards async def test_validation_examples(): """Exemplos de validação de variáveis""" print("🧪 Testando Validação de Variáveis\n") # Teste 1: Variável válida result = server.call_tool("validate_variable_name", { "variable_name": "userName", "variable_type": "string" }) print("✅ userName:", result) # Teste 2: Variável inválida (não segue camelCase) result = server.call_tool("validate_variable_name", { "variable_name": "user_name", "variable_type": "string" }) print("❌ user_name:", result) # Teste 3: Nome proibido result = server.call_tool("validate_variable_name", { "variable_name": "data", "variable_type": "array" }) print("🚫 data:", result) # Teste 4: Boolean sem prefixo result = server.call_tool("validate_variable_name", { "variable_name": "active", "variable_type": "boolean" }) print("⚠️ active (boolean):", result) # Teste 5: Boolean com prefixo correto result = server.call_tool("validate_variable_name", { "variable_name": "isActive", "variable_type": "boolean" }) print("✅ isActive:", result) async def test_database_examples(): """Exemplos de validação de banco de dados""" print("\n🗄️ Testando Validação de Banco de Dados\n") # Teste 1: Tabela válida result = server.call_tool("validate_database_structure", { "table_name": "user_profiles", "columns": ["id", "user_id", "first_name", "last_name", "email", "created_at"] }) print("✅ Tabela user_profiles:", result) # Teste 2: Tabela com colunas inválidas result = server.call_tool("validate_database_structure", { "table_name": "UserProfiles", "columns": ["ID", "UserID", "FirstName", "LastName"] }) print("❌ Tabela UserProfiles:", result) async def test_suggestions(): """Exemplos de sugestões de nomes""" print("\n💡 Testando Sugestões de Nomes\n") # Teste 1: Sugestão para string result = server.call_tool("suggest_variable_name", { "description": "nome completo do usuário", "variable_type": "string" }) print("📝 Nome completo:", result) # Teste 2: Sugestão para boolean result = server.call_tool("suggest_variable_name", { "description": "usuário está ativo", "variable_type": "boolean" }) print("🔘 Usuário ativo:", result) # Teste 3: Sugestão para função result = server.call_tool("suggest_variable_name", { "description": "enviar formulário de login", "variable_type": "function" }) print("⚡ Função de login:", result) async def test_configuration(): """Exemplos de configuração""" print("\n⚙️ Testando Configuração\n") # Teste 1: Mudar para snake_case result = server.call_tool("set_project_standards", { "variable_naming": "snake_case", "forbidden_names": ["data", "temp", "user"], "required_prefixes": { "boolean": "has", "function": "process" } }) print("🔄 Mudando para snake_case:", result) # Teste 2: Ver padrões atuais result = server.call_tool("get_project_standards", {}) print("📋 Padrões atuais:", result) # Teste 3: Validar variável com novo padrão result = server.call_tool("validate_variable_name", { "variable_name": "user_name", "variable_type": "string" }) print("✅ user_name (snake_case):", result) async def test_file_validation(): """Exemplos de validação de arquivos""" print("\n📁 Testando Validação de Arquivos\n") # Teste 1: Arquivo válido result = server.call_tool("validate_file_structure", { "file_path": "src/components/UserProfile.jsx" }) print("✅ UserProfile.jsx:", result) # Teste 2: Arquivo com nome inválido result = server.call_tool("validate_file_structure", { "file_path": "src/components/userProfile.jsx" }) print("❌ userProfile.jsx:", result) async def test_interactive_demo(): """Demonstração interativa das funcionalidades""" print("\n🎯 Demonstração Interativa\n") # Mostra ferramentas disponíveis print("📋 Ferramentas disponíveis:") tools = server.list_tools() for i, tool in enumerate(tools, 1): print(f" {i}. {tool['name']}: {tool['description']}") print("\n🔧 Exemplos práticos:") # Exemplo 1: Validar variáveis print("\n1️⃣ Validação de variáveis:") examples = [ ("userName", "string", "✅ Válido"), ("user_name", "string", "❌ Inválido (deve ser camelCase)"), ("isActive", "boolean", "✅ Válido"), ("active", "boolean", "⚠️ Deve começar com 'is'"), ("data", "array", "🚫 Nome proibido") ] for var_name, var_type, expected in examples: result = server.call_tool("validate_variable_name", { "variable_name": var_name, "variable_type": var_type }) print(f" {var_name} ({var_type}): {expected}") print(f" Resultado: {result.split('!')[0]}!") # Exemplo 2: Sugestões print("\n2️⃣ Sugestões de nomes:") suggestions = [ ("nome completo do usuário", "string"), ("usuário está ativo", "boolean"), ("enviar formulário", "function") ] for desc, var_type in suggestions: result = server.call_tool("suggest_variable_name", { "description": desc, "variable_type": var_type }) print(f" '{desc}' → {result.split('**')[1].split('**')[0]}") async def main(): """Executa todos os testes""" print("🚀 Iniciando Testes do MCP de Padronização\n") print("=" * 50) await test_validation_examples() await test_database_examples() await test_suggestions() await test_configuration() await test_file_validation() await test_interactive_demo() print("\n" + "=" * 50) print("✅ Todos os testes concluídos!") print("\n🎉 MCP de Padronização funcionando perfeitamente!") if __name__ == "__main__": asyncio.run(main())

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/999luan/mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server