Skip to main content
Glama
validate_implementation.py9.13 kB
#!/usr/bin/env python3 """ Validation script to verify MCP Lifecycle Management implementation This script checks that all required functions are implemented and accessible. """ import sys def validate_imports(): """Validate that all required functions can be imported.""" print("Validating imports...") try: from resource_manager_mcp_server import ( MCPLifecycleManager, list_mcp_servers, get_mcp_status, start_mcp, stop_mcp, scale_mcp, get_manager ) print("✓ All required imports successful") return True except ImportError as e: print(f"✗ Import failed: {e}") return False def validate_class_structure(): """Validate MCPLifecycleManager class structure.""" print("\nValidating MCPLifecycleManager class structure...") try: from resource_manager_mcp_server import MCPLifecycleManager required_methods = [ '__init__', 'list_mcp_servers', 'get_mcp_status', 'start_mcp', 'stop_mcp', 'scale_mcp', '_validate_mcp_name', '_validate_replicas', '_get_deployment', '_get_service_endpoints', '_get_deployment_status', '_wait_for_ready', '_load_kubernetes_config' ] for method in required_methods: if not hasattr(MCPLifecycleManager, method): print(f"✗ Missing method: {method}") return False print(f" ✓ {method}") print("✓ All required methods present") return True except Exception as e: print(f"✗ Validation failed: {e}") return False def validate_function_signatures(): """Validate function signatures.""" print("\nValidating function signatures...") try: import inspect from resource_manager_mcp_server import ( list_mcp_servers, get_mcp_status, start_mcp, stop_mcp, scale_mcp ) # Check list_mcp_servers sig = inspect.signature(list_mcp_servers) params = list(sig.parameters.keys()) assert 'namespace' in params or len(params) >= 0 print(" ✓ list_mcp_servers signature valid") # Check get_mcp_status sig = inspect.signature(get_mcp_status) params = list(sig.parameters.keys()) assert 'name' in params print(" ✓ get_mcp_status signature valid") # Check start_mcp sig = inspect.signature(start_mcp) params = list(sig.parameters.keys()) assert 'name' in params assert 'wait_ready' in params or len(params) >= 1 print(" ✓ start_mcp signature valid") # Check stop_mcp sig = inspect.signature(stop_mcp) params = list(sig.parameters.keys()) assert 'name' in params assert 'force' in params or len(params) >= 1 print(" ✓ stop_mcp signature valid") # Check scale_mcp sig = inspect.signature(scale_mcp) params = list(sig.parameters.keys()) assert 'name' in params assert 'replicas' in params print(" ✓ scale_mcp signature valid") print("✓ All function signatures valid") return True except Exception as e: print(f"✗ Signature validation failed: {e}") return False def validate_documentation(): """Validate that functions have docstrings.""" print("\nValidating documentation...") try: from resource_manager_mcp_server import ( MCPLifecycleManager, list_mcp_servers, get_mcp_status, start_mcp, stop_mcp, scale_mcp ) functions = [ ('MCPLifecycleManager', MCPLifecycleManager), ('list_mcp_servers', list_mcp_servers), ('get_mcp_status', get_mcp_status), ('start_mcp', start_mcp), ('stop_mcp', stop_mcp), ('scale_mcp', scale_mcp) ] for name, func in functions: if not func.__doc__: print(f"✗ Missing docstring: {name}") return False print(f" ✓ {name} has docstring") print("✓ All functions documented") return True except Exception as e: print(f"✗ Documentation validation failed: {e}") return False def validate_type_hints(): """Validate that functions have type hints.""" print("\nValidating type hints...") try: import inspect from resource_manager_mcp_server import ( list_mcp_servers, get_mcp_status, start_mcp, stop_mcp, scale_mcp ) functions = [ ('list_mcp_servers', list_mcp_servers), ('get_mcp_status', get_mcp_status), ('start_mcp', start_mcp), ('stop_mcp', stop_mcp), ('scale_mcp', scale_mcp) ] for name, func in functions: sig = inspect.signature(func) if sig.return_annotation == inspect.Signature.empty: print(f" ⚠ {name} missing return type hint (optional)") else: print(f" ✓ {name} has return type hint") print("✓ Type hints validation complete") return True except Exception as e: print(f"✗ Type hints validation failed: {e}") return False def validate_error_handling(): """Validate that error handling is implemented.""" print("\nValidating error handling...") try: from resource_manager_mcp_server import MCPLifecycleManager import inspect # Check that validation methods exist manager_source = inspect.getsource(MCPLifecycleManager) checks = [ ('ValueError', 'ValueError exceptions raised'), ('ApiException', 'ApiException handling'), ('TimeoutError', 'TimeoutError handling'), ('try:', 'Try-except blocks used'), ] for check, description in checks: if check in manager_source: print(f" ✓ {description}") else: print(f" ⚠ {description} not found (may be ok)") print("✓ Error handling validation complete") return True except Exception as e: print(f"✗ Error handling validation failed: {e}") return False def validate_files_exist(): """Validate that all required files exist.""" print("\nValidating file structure...") import os base_path = "/Users/ryandahlberg/Projects/resource-manager-mcp-server" required_files = [ "src/resource_manager_mcp_server/__init__.py", "requirements.txt", "setup.py", "README.md", "QUICKSTART.md", "example_usage.py", "config/example-mcp-deployment.yaml", "tests/test_lifecycle_manager.py", "Makefile", "pytest.ini" ] all_exist = True for file_path in required_files: full_path = os.path.join(base_path, file_path) if os.path.exists(full_path): print(f" ✓ {file_path}") else: print(f" ✗ {file_path} missing") all_exist = False if all_exist: print("✓ All required files present") else: print("✗ Some files missing") return all_exist def main(): """Run all validation checks.""" print("=" * 60) print("MCP Lifecycle Management Implementation Validation") print("=" * 60) checks = [ ("Imports", validate_imports), ("Class Structure", validate_class_structure), ("Function Signatures", validate_function_signatures), ("Documentation", validate_documentation), ("Type Hints", validate_type_hints), ("Error Handling", validate_error_handling), ("File Structure", validate_files_exist), ] results = [] for name, check_func in checks: try: result = check_func() results.append((name, result)) except Exception as e: print(f"\n✗ {name} check failed with exception: {e}") results.append((name, False)) # Summary print("\n" + "=" * 60) print("Validation Summary") print("=" * 60) passed = sum(1 for _, result in results if result) total = len(results) for name, result in results: status = "PASS" if result else "FAIL" symbol = "✓" if result else "✗" print(f"{symbol} {name}: {status}") print(f"\nTotal: {passed}/{total} checks passed") if passed == total: print("\n🎉 All validation checks passed!") print("Implementation is complete and ready to use.") return 0 else: print(f"\n⚠ {total - passed} validation check(s) failed.") print("Review the output above for details.") return 1 if __name__ == "__main__": sys.exit(main())

Latest Blog Posts

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/ry-ops/cortex-resource-manager'

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