Skip to main content
Glama
main.py2.65 kB
#!/usr/bin/env python3 """ Main entry point for memU MCP Server """ import argparse import asyncio import os import sys from pathlib import Path from .server import MemuMCPServer from .config import Config from .logger import setup_logger def main(): """Main function to start the memU MCP server""" parser = argparse.ArgumentParser(description="memU MCP Server") parser.add_argument( "--config", type=str, help="Path to configuration file", default=None ) parser.add_argument( "--log-level", type=str, choices=["DEBUG", "INFO", "WARNING", "ERROR"], default="INFO", help="Set the logging level" ) parser.add_argument( "--render-mode", action="store_true", help="Enable Render deployment mode" ) args = parser.parse_args() # Set Render environment flag if specified if args.render_mode: os.environ["RENDER_DEPLOYMENT"] = "true" # Load configuration config = Config.from_file(args.config) if args.config else Config() config.log_level = args.log_level # Setup logger early for better error reporting logger = setup_logger(config.log_level) # Check if running in Render environment is_render = os.getenv("RENDER_DEPLOYMENT", "false").lower() == "true" if is_render: logger.info("Starting memU MCP Server in Render deployment mode") # Validate required environment variables for Render required_vars = ["MEMU_API_KEY"] missing_vars = [var for var in required_vars if not os.getenv(var)] if missing_vars: logger.error(f"Missing required environment variables: {missing_vars}") sys.exit(1) # Set additional Render-specific configuration config.server_name = os.getenv("MCP_SERVER_NAME", "memu-mcp-server-render") logger.info(f"Render configuration loaded: server={config.server_name}") else: logger.info("Starting memU MCP Server in local development mode") # Create and run server server = MemuMCPServer(config) try: asyncio.run(server.run()) except KeyboardInterrupt: if is_render: logger.info("Received shutdown signal, stopping server...") else: print("\nShutting down memU MCP Server...") sys.exit(0) except Exception as e: if is_render: logger.error(f"Server error: {e}") else: print(f"Error running server: {e}") 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/MonsterOne1/memu-mcp'

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