Skip to main content
Glama
check_tools.py3.02 kB
#!/usr/bin/env python3 """ Check required tools for the OpenZIM MCP development environment. This script provides cross-platform compatibility for the make check-tools command. """ import subprocess import sys import shutil from pathlib import Path def check_command_exists(command: str) -> bool: """Check if a command exists in the system PATH.""" return shutil.which(command) is not None def get_command_version(command: str, version_arg: str = "--version") -> str: """Get the version of a command.""" try: result = subprocess.run( [command, version_arg], capture_output=True, text=True, timeout=10 ) if result.returncode == 0: return result.stdout.strip() else: return result.stderr.strip() except (subprocess.TimeoutExpired, FileNotFoundError, subprocess.SubprocessError): return "Unknown" def check_python_version() -> tuple[bool, str]: """Check if Python version meets requirements (3.12+).""" try: result = subprocess.run( [sys.executable, "--version"], capture_output=True, text=True, timeout=10 ) if result.returncode == 0: version_str = result.stdout.strip() # Extract version number (e.g., "Python 3.12.0" -> "3.12.0") version_parts = version_str.split() if len(version_parts) >= 2: version = version_parts[1] # Check if version is 3.12 or higher try: major, minor = map(int, version.split('.')[:2]) is_valid = (major > 3) or (major == 3 and minor >= 12) return is_valid, version_str except ValueError: return False, version_str return False, version_str else: return False, f"Error: {result.stderr.strip()}" except (subprocess.TimeoutExpired, FileNotFoundError, subprocess.SubprocessError) as e: return False, f"Error checking Python version: {e}" def main(): """Main function to check all required tools.""" print("Checking required tools...") all_good = True # Check uv if check_command_exists("uv"): version = get_command_version("uv") print(f"[OK] uv found: {version}") else: print("[FAIL] uv not found. Install from: https://docs.astral.sh/uv/") all_good = False # Check Python version python_ok, python_version = check_python_version() if python_ok: print(f"[OK] Python version: {python_version}") else: print(f"[FAIL] Python 3.12+ required. Current: {python_version}") all_good = False if all_good: print("[OK] All required tools are available") sys.exit(0) else: print("[FAIL] Some required tools are missing or incompatible") sys.exit(1) if __name__ == "__main__": 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/cameronrye/openzim-mcp'

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