Skip to main content
Glama

MCP Memory Service

service-installation.md10 kB
# Cross-Platform Service Installation Guide This guide provides instructions for installing MCP Memory Service as a native service on Windows, macOS, and Linux systems. The service will automatically start when your system boots or when you log in. ## Overview The MCP Memory Service can be installed as a system service to: - Start automatically on boot/login - Run in the background without a terminal window - Restart automatically if it crashes - Integrate with system service management tools ## Quick Start ### Universal Installation Use the cross-platform installer that automatically detects your operating system: ```bash # Clone the repository git clone https://github.com/doobidoo/mcp-memory-service.git cd mcp-memory-service # Install dependencies (if not already done) pip install -e . # Install as a service python install_service.py ``` The installer will: 1. Detect your operating system 2. Check dependencies 3. Generate a secure API key 4. Install the appropriate service type 5. Provide platform-specific management commands ### Service Management After installation, you can manage the service using: ```bash # Check service status python install_service.py --status # Start the service python install_service.py --start # Stop the service python install_service.py --stop # Uninstall the service python install_service.py --uninstall ``` ## Platform-Specific Instructions ### Windows #### Installation ```powershell # Run as Administrator python install_service.py # Or install directly python scripts/install_windows_service.py ``` This creates a Windows Service that: - Runs under the current user account - Starts automatically on system boot - Can be managed via Services console or `net` commands #### Management Commands ```powershell # Using Windows commands net start MCPMemoryService # Start service net stop MCPMemoryService # Stop service sc query MCPMemoryService # Check status # Using convenience scripts .\scripts\windows\start_service.bat .\scripts\windows\stop_service.bat .\scripts\windows\service_status.bat ``` #### Requirements - Administrator privileges for installation - Python 3.10 or newer - `pywin32` package (auto-installed if missing) ### macOS #### Installation ```bash # Install as user LaunchAgent (default) python install_service.py # Install as system LaunchDaemon (requires sudo) sudo python install_service.py --system # Or install directly python scripts/install_macos_service.py ``` This creates a LaunchAgent/LaunchDaemon that: - Runs on login (user) or boot (system) - Restarts automatically if it crashes - Integrates with macOS launchd system #### Management Commands ```bash # Using launchctl launchctl load ~/Library/LaunchAgents/com.mcp.memory-service.plist launchctl unload ~/Library/LaunchAgents/com.mcp.memory-service.plist launchctl list | grep com.mcp.memory-service # Using convenience scripts ./scripts/macos/start_service.sh ./scripts/macos/stop_service.sh ./scripts/macos/service_status.sh ``` #### Viewing Logs - Check Console.app for service logs - Or tail the log files directly: ```bash tail -f ~/.mcp_memory_service/logs/mcp-memory-service.log ``` ### Linux #### Installation ```bash # Install as user service (default) python install_service.py # Install as system service (requires sudo) sudo python install_service.py --system # Or install directly python scripts/install_linux_service.py ``` This creates a systemd service that: - Runs on login (user) or boot (system) - Integrates with systemd and journald - Supports automatic restart and resource limits #### Management Commands ```bash # For user service systemctl --user start mcp-memory systemctl --user stop mcp-memory systemctl --user status mcp-memory journalctl --user -u mcp-memory -f # For system service sudo systemctl start mcp-memory sudo systemctl stop mcp-memory sudo systemctl status mcp-memory sudo journalctl -u mcp-memory -f # Using convenience scripts ./scripts/linux/start_service.sh ./scripts/linux/stop_service.sh ./scripts/linux/service_status.sh ./scripts/linux/view_logs.sh ``` ## Configuration ### Service Configuration All platforms store configuration in: - **Config directory**: `~/.mcp_memory_service/` - **Config file**: `~/.mcp_memory_service/service_config.json` - **Log directory**: `~/.mcp_memory_service/logs/` ### Environment Variables The service inherits these environment variables: - `MCP_MEMORY_STORAGE_BACKEND`: Storage backend (default: `sqlite_vec`) - `MCP_HTTP_ENABLED`: Enable HTTP interface (default: `true`) - `MCP_HTTP_PORT`: HTTP port (default: `8000`) - `MCP_HTTPS_ENABLED`: Enable HTTPS (default: `true`) - `MCP_MDNS_ENABLED`: Enable mDNS discovery (default: `true`) - `MCP_CONSOLIDATION_ENABLED`: Enable memory consolidation (default: `true`) - `MCP_API_KEY`: API key for HTTP authentication (optional, auto-generated during install) ### API Key The installer automatically generates a secure API key for HTTP authentication. This key protects your memory service from unauthorized access when running as a service. #### Finding Your API Key You can find your API key in several ways: 1. **Installation Output**: The key is displayed during installation 2. **Config File**: Located in `~/.mcp_memory_service/service_config.json` 3. **Status Command**: Run `python install_service.py --status` 4. **Service File**: Check the systemd/service configuration file directly #### Generating a New API Key To generate a new secure API key: ```bash # Generate a 32-byte base64 encoded key openssl rand -base64 32 # Or generate a hex key openssl rand -hex 32 ``` #### Updating the API Key To change your API key after installation: 1. **Stop the service**: ```bash python install_service.py --stop ``` 2. **Edit the service configuration**: - **Linux**: Edit `/etc/systemd/system/mcp-memory.service` or `~/.config/systemd/user/mcp-memory.service` - **macOS**: Edit `~/Library/LaunchAgents/com.mcp.memory-service.plist` - **Windows**: Use `sc config` or Services Manager 3. **Update the environment variable**: ```bash # Find the line with MCP_API_KEY and replace the value Environment=MCP_API_KEY=your-new-api-key-here ``` 4. **Reload and restart the service**: ```bash # Linux (system service) sudo systemctl daemon-reload sudo systemctl restart mcp-memory # Linux (user service) systemctl --user daemon-reload systemctl --user restart mcp-memory # macOS launchctl unload ~/Library/LaunchAgents/com.mcp.memory-service.plist launchctl load ~/Library/LaunchAgents/com.mcp.memory-service.plist # Or use the installer python install_service.py --restart ``` #### Security Best Practices - **Keep it Secret**: Never share your API key in logs, emails, or version control - **Regular Rotation**: Consider rotating your API key periodically - **Secure Storage**: Ensure proper file permissions on configuration files - **Environment-Specific Keys**: Use different keys for development, staging, and production ## User vs System Services ### User Services - **Pros**: No admin privileges required, runs in user context - **Cons**: Only runs when user is logged in - **Best for**: Desktop systems, development ### System Services - **Pros**: Runs independently of user login, available to all users - **Cons**: Requires admin privileges, runs as specific user - **Best for**: Servers, shared systems ## Troubleshooting ### Service Won't Start 1. **Check dependencies**: ```bash python scripts/verify_environment.py ``` 2. **Check logs**: - Windows: Event Viewer → Windows Logs → Application - macOS: Console.app or `~/.mcp_memory_service/logs/` - Linux: `journalctl -u mcp-memory` or `journalctl --user -u mcp-memory` 3. **Verify configuration**: ```bash cat ~/.mcp_memory_service/service_config.json ``` ### Permission Errors - **Windows**: Run as Administrator - **macOS/Linux**: Use `sudo` for system services - Check file ownership in `~/.mcp_memory_service/` ### Port Already in Use If port 8000 is already in use: 1. Change the port in environment variables 2. Reinstall the service 3. Or stop the conflicting service ### Service Not Found - Ensure the service was installed successfully - Check the correct service name: - Windows: `MCPMemoryService` - macOS: `com.mcp.memory-service` - Linux: `mcp-memory` ## Uninstalling To completely remove the service: ```bash # Uninstall service python install_service.py --uninstall # Remove configuration (optional) rm -rf ~/.mcp_memory_service/ # Remove the repository (optional) cd .. rm -rf mcp-memory-service/ ``` ## Advanced Usage ### Custom Service Names For multiple instances, you can modify the service name in the platform-specific installer scripts before installation. ### Custom Startup Commands Edit the service configuration after installation: 1. Stop the service 2. Edit `~/.mcp_memory_service/service_config.json` 3. Modify the `command` array 4. Restart the service ### Integration with Claude Desktop After service installation, update your Claude Desktop configuration: ```json { "mcpServers": { "memory": { "url": "http://localhost:8000/mcp", "headers": { "Authorization": "Bearer YOUR_API_KEY_HERE" } } } } ``` Replace `YOUR_API_KEY_HERE` with the API key from the installation. ## Security Considerations - The API key is stored in plain text in the configuration file - Ensure proper file permissions on configuration files - Use system services with caution on shared systems - Consider firewall rules if exposing the service beyond localhost ## Getting Help If you encounter issues: 1. Check the troubleshooting section above 2. Review platform-specific documentation in `docs/platforms/` 3. Check logs for detailed error messages 4. Open an issue on GitHub with: - Your operating system and version - Python version - Error messages from logs - Steps to reproduce the issue

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