Sync: Complete project state with all MEGA SPRINT V1-V3 features and Codex stubs
This commit is contained in:
@@ -1,17 +1,63 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Wrapper para mantener el servidor MCP vivo
|
||||
"""
|
||||
import sys
|
||||
"""Stable launcher for the AbletonMCP-AI FastMCP server."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import asyncio
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
# Añadir el path del proyecto
|
||||
sys.path.insert(0, r'C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI')
|
||||
|
||||
# Importar el servidor
|
||||
from MCP_Server.server import mcp
|
||||
def _resolve_code_root() -> Path:
|
||||
wrapper_dir = Path(__file__).resolve().parent
|
||||
candidates = []
|
||||
|
||||
for base in (wrapper_dir, wrapper_dir.parent):
|
||||
candidates.extend(
|
||||
[
|
||||
base / "AbletonMCP_AI" / "AbletonMCP_AI",
|
||||
base / "AbletonMCP_AI",
|
||||
base,
|
||||
]
|
||||
)
|
||||
|
||||
seen = set()
|
||||
for code_root in candidates:
|
||||
key = str(code_root).lower()
|
||||
if key in seen:
|
||||
continue
|
||||
seen.add(key)
|
||||
if (code_root / "MCP_Server" / "server.py").exists():
|
||||
return code_root
|
||||
|
||||
raise FileNotFoundError("Could not locate MCP_Server/server.py from wrapper")
|
||||
|
||||
|
||||
def main() -> int:
|
||||
parser = argparse.ArgumentParser(description="Launch AbletonMCP-AI")
|
||||
parser.add_argument("--transport", default="stdio", choices=["stdio", "sse"])
|
||||
args = parser.parse_args()
|
||||
|
||||
code_root = _resolve_code_root()
|
||||
server_dir = code_root / "MCP_Server"
|
||||
|
||||
os.environ.setdefault("PYTHONUNBUFFERED", "1")
|
||||
os.environ.setdefault("PYTHONIOENCODING", "utf-8")
|
||||
os.environ.setdefault("ABLETON_MCP_LAZY_STARTUP", "1")
|
||||
existing_pythonpath = os.environ.get("PYTHONPATH", "")
|
||||
pythonpath_parts = [part for part in [str(code_root), existing_pythonpath] if part]
|
||||
os.environ["PYTHONPATH"] = os.pathsep.join(pythonpath_parts)
|
||||
|
||||
for path in (str(server_dir), str(code_root)):
|
||||
if path not in sys.path:
|
||||
sys.path.insert(0, path)
|
||||
|
||||
from MCP_Server.server import mcp
|
||||
|
||||
mcp.run(transport=args.transport)
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Iniciar el servidor MCP con stdio
|
||||
mcp.run(transport="stdio")
|
||||
raise SystemExit(main())
|
||||
|
||||
Reference in New Issue
Block a user