Skip to main content
Glama

MCP Memory Service

#!/usr/bin/env python3 """Run the MCP Memory Service with HTTP/HTTPS/mDNS support via FastAPI.""" import os import sys import uvicorn import logging # Add src to path sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'src')) # Set up logging logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) if __name__ == "__main__": # Log configuration logger.info("Starting MCP Memory Service FastAPI server with the following configuration:") logger.info(f" Storage Backend: {os.environ.get('MCP_MEMORY_STORAGE_BACKEND', 'sqlite_vec')}") logger.info(f" HTTP Port: {os.environ.get('MCP_HTTP_PORT', '8000')}") logger.info(f" HTTPS Enabled: {os.environ.get('MCP_HTTPS_ENABLED', 'false')}") logger.info(f" HTTPS Port: {os.environ.get('MCP_HTTPS_PORT', '8443')}") logger.info(f" mDNS Enabled: {os.environ.get('MCP_MDNS_ENABLED', 'false')}") logger.info(f" API Key Set: {'Yes' if os.environ.get('MCP_API_KEY') else 'No'}") http_port = int(os.environ.get('MCP_HTTP_PORT', 8000)) # Check if HTTPS is enabled if os.environ.get('MCP_HTTPS_ENABLED', 'false').lower() == 'true': https_port = int(os.environ.get('MCP_HTTPS_PORT', 8443)) # Check for environment variable certificates first cert_file = os.environ.get('MCP_SSL_CERT_FILE') key_file = os.environ.get('MCP_SSL_KEY_FILE') if cert_file and key_file: # Use provided certificates if not os.path.exists(cert_file): logger.error(f"Certificate file not found: {cert_file}") sys.exit(1) if not os.path.exists(key_file): logger.error(f"Key file not found: {key_file}") sys.exit(1) logger.info(f"Using provided certificates: {cert_file}") else: # Generate self-signed certificate if needed cert_dir = os.path.expanduser("~/.mcp_memory_certs") os.makedirs(cert_dir, exist_ok=True) cert_file = os.path.join(cert_dir, "cert.pem") key_file = os.path.join(cert_dir, "key.pem") if not os.path.exists(cert_file) or not os.path.exists(key_file): logger.info("Generating self-signed certificate for HTTPS...") import subprocess subprocess.run([ "openssl", "req", "-x509", "-newkey", "rsa:4096", "-keyout", key_file, "-out", cert_file, "-days", "365", "-nodes", "-subj", "/C=US/ST=State/L=City/O=MCP/CN=localhost" ], check=True) logger.info(f"Certificate generated at {cert_dir}") # Run with HTTPS logger.info(f"Starting HTTPS server on port {https_port}") uvicorn.run( "mcp_memory_service.web.app:app", host="0.0.0.0", port=https_port, ssl_keyfile=key_file, ssl_certfile=cert_file, reload=False, log_level="info" ) else: # Run HTTP only logger.info(f"Starting HTTP server on port {http_port}") uvicorn.run( "mcp_memory_service.web.app:app", host="0.0.0.0", port=http_port, reload=False, log_level="info" )

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