82 lines
2.2 KiB
Python
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()
|