Skip to main content
Glama

kubernetes-mcp-server

import os import platform import subprocess import sys from pathlib import Path import shutil import tempfile import urllib.request if sys.version_info >= (3, 8): from importlib.metadata import version else: from importlib_metadata import version __version__ = version("kubernetes-mcp-server") def get_platform_binary(): """Determine the correct binary for the current platform.""" system = platform.system().lower() arch = platform.machine().lower() # Normalize architecture names if arch in ["x86_64", "amd64"]: arch = "amd64" elif arch in ["arm64", "aarch64"]: arch = "arm64" else: raise RuntimeError(f"Unsupported architecture: {arch}") if system == "darwin": return f"kubernetes-mcp-server-darwin-{arch}" elif system == "linux": return f"kubernetes-mcp-server-linux-{arch}" elif system == "windows": return f"kubernetes-mcp-server-windows-{arch}.exe" else: raise RuntimeError(f"Unsupported operating system: {system}") def download_binary(binary_version="latest", destination=None): """Download the correct binary for the current platform.""" binary_name = get_platform_binary() if destination is None: destination = Path.home() / ".kubernetes-mcp-server" / "bin" / binary_version destination = Path(destination) destination.mkdir(parents=True, exist_ok=True) binary_path = destination / binary_name if binary_path.exists(): return binary_path base_url = "https://github.com/manusa/kubernetes-mcp-server/releases" if binary_version == "latest": release_url = f"{base_url}/latest/download/{binary_name}" else: release_url = f"{base_url}/download/v{binary_version}/{binary_name}" # Download the binary print(f"Downloading {binary_name} from {release_url}") with tempfile.NamedTemporaryFile(delete=False) as temp_file: try: with urllib.request.urlopen(release_url) as response: shutil.copyfileobj(response, temp_file) temp_file.close() # Move to destination and make executable shutil.move(temp_file.name, binary_path) binary_path.chmod(binary_path.stat().st_mode | 0o755) # Make executable return binary_path except Exception as e: os.unlink(temp_file.name) raise RuntimeError(f"Failed to download binary: {e}") def execute(args=None): """Download and execute the kubernetes-mcp-server binary.""" if args is None: args = [] try: binary_path = download_binary(binary_version=__version__) cmd = [str(binary_path)] + args # Execute the binary with the provided arguments process = subprocess.run(cmd) return process.returncode except Exception as e: print(f"Error executing kubernetes-mcp-server: {e}", file=sys.stderr) return 1 if __name__ == "__main__": sys.exit(execute(sys.argv[1:])) def main(): """Main function to execute the kubernetes-mcp-server binary.""" args = sys.argv[1:] if len(sys.argv) > 1 else [] return execute(args)

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/manusa/kubernetes-mcp-server'

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