47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
"""
|
|
Velxio MCP Server — HTTP/SSE entry point
|
|
|
|
Run this script to start the MCP server using the SSE transport, which is
|
|
compatible with HTTP-based MCP clients (e.g. web applications, Cursor IDE).
|
|
|
|
The SSE server runs on port 8002 by default (separate from the main FastAPI
|
|
backend on port 8001) to avoid Starlette version conflicts.
|
|
|
|
Usage:
|
|
python mcp_sse_server.py [--port 8002] [--host 0.0.0.0]
|
|
|
|
MCP client configuration (SSE transport):
|
|
{
|
|
"mcpServers": {
|
|
"velxio": {
|
|
"url": "http://localhost:8002/sse"
|
|
}
|
|
}
|
|
}
|
|
"""
|
|
|
|
import sys
|
|
import argparse
|
|
from pathlib import Path
|
|
|
|
import uvicorn
|
|
|
|
# Ensure the backend package is importable when run as a script
|
|
sys.path.insert(0, str(Path(__file__).parent))
|
|
|
|
from app.mcp.server import mcp # noqa: E402
|
|
|
|
if __name__ == "__main__":
|
|
parser = argparse.ArgumentParser(description="Velxio MCP SSE Server")
|
|
parser.add_argument("--host", default="0.0.0.0", help="Host to bind to")
|
|
parser.add_argument("--port", type=int, default=8002, help="Port to listen on")
|
|
args = parser.parse_args()
|
|
|
|
print(f"Starting Velxio MCP SSE server on {args.host}:{args.port}")
|
|
print(f"SSE endpoint: http://{args.host}:{args.port}/sse")
|
|
print(f"Tools: compile_project, run_project, import_wokwi_json, export_wokwi_json,")
|
|
print(f" create_circuit, update_circuit, generate_code_files")
|
|
|
|
sse_app = mcp.sse_app()
|
|
uvicorn.run(sse_app, host=args.host, port=args.port)
|