Files
tianxuan/analysis/management/commands/start_mcp.py
T

35 lines
1.2 KiB
Python

"""Django management command: ``python manage.py start_mcp``
Starts the embedded TLS Analyzer MCP server on stdio transport.
IMPORTANT: All log output goes to stderr (stdout is the MCP protocol transport).
"""
import os
import sys
from django.core.management.base import BaseCommand, CommandError
class Command(BaseCommand):
help = 'Start the embedded TLS Analyzer MCP server on stdio transport'
def handle(self, *args, **options):
# Ensure Django is fully initialised before importing server code
import django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'tianxuan.settings')
django.setup()
# CRITICAL: MCP uses stdio for protocol transport.
# All log messages MUST go to stderr, NOT stdout.
print('Starting TLS Analyzer MCP server...', file=sys.stderr)
print('Transport: stdio', file=sys.stderr)
sys.stderr.flush()
try:
from analysis.mcp_server import TLSAnalyzerMCPServer
server = TLSAnalyzerMCPServer()
server.run_sync()
except KeyboardInterrupt:
print('\nMCP server stopped.', file=sys.stderr)
except Exception as e:
raise CommandError(f'MCP server failed: {e}') from e