CtrEditor/start_mcp_proxy.py

82 lines
2.2 KiB
Python

#!/usr/bin/env python3
"""
Proxy MCP específico para el proyecto CtrEditor
Este script inicia un proxy que conecta GitHub Copilot con el servidor MCP de CtrEditor
"""
import sys
import os
import subprocess
import argparse
import logging
from pathlib import Path
# Configuración de logging
logging.basicConfig(
level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s"
)
logger = logging.getLogger(__name__)
def main():
parser = argparse.ArgumentParser(description="Proxy MCP para CtrEditor")
parser.add_argument(
"--ctreditor-host",
default="localhost",
help="Host del servidor MCP de CtrEditor",
)
parser.add_argument(
"--ctreditor-port", default="5006", help="Puerto del servidor MCP de CtrEditor"
)
parser.add_argument(
"--proxy-port", default="8080", help="Puerto del proxy para Copilot"
)
parser.add_argument("--verbose", "-v", action="store_true", help="Modo verbose")
args = parser.parse_args()
if args.verbose:
logging.getLogger().setLevel(logging.DEBUG)
# Ruta al proxy principal
script_dir = Path(__file__).parent
main_proxy_path = script_dir.parent / "Scripts" / "MCP_Proxy" / "mcp_proxy.py"
if not main_proxy_path.exists():
logger.error(f"No se encontró el proxy principal en: {main_proxy_path}")
sys.exit(1)
# Comando para ejecutar el proxy
cmd = [
sys.executable,
str(main_proxy_path),
"--host",
args.ctreditor_host,
"--port",
args.ctreditor_port,
"--proxy-port",
args.proxy_port,
]
if args.verbose:
cmd.append("--verbose")
logger.info(f"Iniciando proxy MCP para CtrEditor...")
logger.info(f"Servidor CtrEditor: {args.ctreditor_host}:{args.ctreditor_port}")
logger.info(f"Proxy para Copilot: localhost:{args.proxy_port}")
logger.info(f"Comando: {' '.join(cmd)}")
try:
# Ejecutar el proxy
subprocess.run(cmd, check=True)
except subprocess.CalledProcessError as e:
logger.error(f"Error al ejecutar el proxy: {e}")
sys.exit(1)
except KeyboardInterrupt:
logger.info("Proxy detenido por el usuario")
sys.exit(0)
if __name__ == "__main__":
main()