MCP Code Analyzer

  • mcp_code_analyzer
# __main__.py import sys import logging import asyncio import locale from pathlib import Path from .server.handlers import main def configure_encoding(): """Configure system encoding settings""" if sys.platform == 'win32': import io import codecs if isinstance(sys.stdout, io.TextIOWrapper): sys.stdout = codecs.getwriter('utf-8')(sys.stdout.buffer) sys.stderr = codecs.getwriter('utf-8')(sys.stderr.buffer) try: locale.setlocale(locale.LC_ALL, 'Turkish_Turkey.utf8') except locale.Error: try: locale.setlocale(locale.LC_ALL, 'tr_TR.UTF-8') except locale.Error: pass # Configure logging with encoding support logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S', encoding='utf-8' ) logger = logging.getLogger(__name__) def run(): """Main entry point""" configure_encoding() analyze_paths = [] try: path_start = sys.argv.index('--analyze-paths') + 1 while path_start < len(sys.argv) and not sys.argv[path_start].startswith('--'): path = Path(sys.argv[path_start]).resolve() analyze_paths.append(str(path)) path_start += 1 except ValueError: analyze_paths = [str(Path.cwd())] except Exception as e: logger.error(f"Error parsing arguments: {e}") sys.exit(1) logger.info(f"Starting analysis with paths: {analyze_paths}") try: asyncio.run(main(analyze_paths)) except KeyboardInterrupt: logger.info("Analysis interrupted by user") except Exception as e: logger.error(f"Error during analysis: {e}", exc_info=True) sys.exit(1) if __name__ == '__main__': run()