Initial commit: AbletonMCP_AI v3.0 Senior Architecture
This commit is contained in:
37
mcp_wrapper.py
Normal file
37
mcp_wrapper.py
Normal file
@@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Launcher for the AbletonMCP-AI FastMCP server."""
|
||||
import builtins
|
||||
import os
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
WRAPPER_DIR = Path(__file__).resolve().parent
|
||||
MCP_SERVER_DIR = WRAPPER_DIR / "AbletonMCP_AI" / "mcp_server"
|
||||
|
||||
# Add the mcp_server directory to path so "from server import mcp" works
|
||||
if str(MCP_SERVER_DIR) not in sys.path:
|
||||
sys.path.insert(0, str(MCP_SERVER_DIR))
|
||||
if str(WRAPPER_DIR / "AbletonMCP_AI") not in sys.path:
|
||||
sys.path.insert(0, str(WRAPPER_DIR / "AbletonMCP_AI"))
|
||||
|
||||
os.environ["PYTHONUNBUFFERED"] = "1"
|
||||
os.environ["PYTHONIOENCODING"] = "utf-8"
|
||||
|
||||
# Protect the MCP stdio channel from accidental prints inside engines/modules.
|
||||
_original_print = builtins.print
|
||||
|
||||
|
||||
def _stderr_print(*args, **kwargs):
|
||||
if "file" not in kwargs or kwargs["file"] is None:
|
||||
kwargs["file"] = sys.stderr
|
||||
if "flush" not in kwargs:
|
||||
kwargs["flush"] = True
|
||||
return _original_print(*args, **kwargs)
|
||||
|
||||
|
||||
builtins.print = _stderr_print
|
||||
|
||||
# Import mcp instance from server.py
|
||||
from server import mcp
|
||||
|
||||
mcp.run(transport="stdio")
|
||||
Reference in New Issue
Block a user