Skip to main content
Glama

MCP Memory Service

#!/usr/bin/env python3 """ Cross-platform service installer for MCP Memory Service. Automatically detects the operating system and installs the appropriate service. """ import os import sys import platform import argparse import subprocess from pathlib import Path def print_header(text): """Print a formatted header.""" print("\n" + "=" * 60) print(f" {text}") print("=" * 60) def print_error(text): """Print formatted error text.""" print(f"\n❌ ERROR: {text}") def print_info(text): """Print formatted info text.""" print(f"ℹ️ {text}") def detect_platform(): """Detect the current platform.""" system = platform.system().lower() platforms = { 'windows': 'Windows', 'darwin': 'macOS', 'linux': 'Linux' } return system, platforms.get(system, 'Unknown') def check_python_version(): """Check if Python version meets requirements.""" if sys.version_info < (3, 10): print_error(f"Python 3.10 or newer is required. Found: {sys.version}") sys.exit(1) def run_platform_installer(platform_name, args): """Run the appropriate platform-specific installer.""" # Get the directory where this script is located script_dir = Path(__file__).parent scripts_dir = script_dir / 'scripts' installers = { 'windows': scripts_dir / 'install_windows_service.py', 'darwin': scripts_dir / 'install_macos_service.py', 'linux': scripts_dir / 'install_linux_service.py' } installer = installers.get(platform_name) if not installer: print_error(f"No installer available for platform: {platform_name}") sys.exit(1) if not installer.exists(): print_error(f"Platform installer not found: {installer}") print_info("This installer may not be implemented yet.") # For Linux, fall back to the bash script if Python version doesn't exist if platform_name == 'linux': bash_installer = script_dir / 'install_service.sh' if bash_installer.exists(): print_info("Falling back to bash installer for Linux...") # Make sure the script is executable bash_installer.chmod(0o755) # Run the bash script try: subprocess.run([str(bash_installer)], check=True) return except subprocess.CalledProcessError as e: print_error(f"Installation failed: {e}") sys.exit(1) sys.exit(1) # Build command with arguments cmd = [sys.executable, str(installer)] # Pass through command-line arguments if args.command: cmd.extend(['--command', args.command]) if args.uninstall: cmd.append('--uninstall') if args.start: cmd.append('--start') if args.stop: cmd.append('--stop') if args.status: cmd.append('--status') if args.user: cmd.append('--user') if args.system: cmd.append('--system') # Run the platform-specific installer try: subprocess.run(cmd, check=True) except subprocess.CalledProcessError as e: print_error(f"Installation failed: {e}") sys.exit(1) except FileNotFoundError: print_error(f"Could not run installer: {installer}") sys.exit(1) def main(): """Main entry point.""" parser = argparse.ArgumentParser( description="Cross-platform service installer for MCP Memory Service" ) # Service operations parser.add_argument( '--command', choices=['install', 'uninstall', 'start', 'stop', 'restart', 'status'], help='Service command to execute' ) parser.add_argument('--uninstall', action='store_true', help='Uninstall the service') parser.add_argument('--start', action='store_true', help='Start the service after installation') parser.add_argument('--stop', action='store_true', help='Stop the service') parser.add_argument('--status', action='store_true', help='Check service status') # Installation options parser.add_argument('--user', action='store_true', help='Install as user service (default)') parser.add_argument('--system', action='store_true', help='Install as system service (requires admin)') args = parser.parse_args() # Print header print_header("MCP Memory Service - Cross-Platform Installer") # Check Python version check_python_version() # Detect platform platform_name, platform_display = detect_platform() print_info(f"Detected platform: {platform_display}") print_info(f"Python version: {sys.version.split()[0]}") # Check for virtual environment if hasattr(sys, 'real_prefix') or (hasattr(sys, 'base_prefix') and sys.base_prefix != sys.prefix): print_info(f"Virtual environment: {sys.prefix}") else: print_info("⚠️ Not running in a virtual environment (recommended)") # Run platform-specific installer print_info(f"Running {platform_display} service installer...") run_platform_installer(platform_name, args) if __name__ == '__main__': 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/doobidoo/mcp-memory-service'

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