Skip to main content
Glama

mcp-optimizer

main.pyโ€ข2.38 kB
#!/usr/bin/env python3 """Main entry point for MCP Optimizer server.""" import asyncio import logging import sys from mcp_optimizer.config import TransportMode, settings from mcp_optimizer.mcp_server import create_mcp_server def setup_logging() -> None: """Setup logging configuration.""" # Use centralized settings instead of direct os.getenv log_level = settings.log_level.value if settings.log_format.value == "json": log_format = '{"timestamp": "%(asctime)s", "level": "%(levelname)s", "module": "%(name)s", "message": "%(message)s"}' else: log_format = "%(asctime)s - %(name)s - %(levelname)s - %(message)s" logging.basicConfig( level=getattr(logging, log_level), format=log_format, datefmt="%Y-%m-%dT%H:%M:%S", handlers=[ logging.StreamHandler(sys.stderr), ], ) async def run_mcp_sse() -> None: """Run MCP server with SSE transport.""" logging.info(f"Starting MCP SSE server on {settings.server_host}:{settings.server_port}") mcp = create_mcp_server() # FastMCP SSE mode is actually async await asyncio.get_event_loop().run_in_executor( None, lambda: mcp.run(transport="sse", host=settings.server_host, port=settings.server_port) ) def run_mcp_stdio() -> None: """Run MCP server with stdio transport.""" logging.info("Starting MCP stdio server for local MCP clients") mcp = create_mcp_server() mcp.run(transport="stdio") async def main() -> None: """Main entry point for the MCP server.""" setup_logging() try: if settings.transport_mode == TransportMode.SSE: # MCP over HTTP SSE - proper MCP protocol via HTTP Server-Sent Events await run_mcp_sse() else: # Default: MCP over stdio - for local MCP clients (Claude Desktop, VS Code, etc.) run_mcp_stdio() except KeyboardInterrupt: logging.info("Server stopped by user") except Exception as e: logging.error(f"Server error: {e}") sys.exit(1) # Export mcp object for FastMCP CLI compatibility mcp = create_mcp_server() if __name__ == "__main__": # Run async main if needed for SSE, otherwise sync for stdio if settings.transport_mode == TransportMode.SSE: asyncio.run(main()) else: # For stdio mode, run sync run_mcp_stdio()

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/dmitryanchikov/mcp-optimizer'

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