From 57e08bdd6f4cbbde5bd0c38cd21c138dbb1cf694 Mon Sep 17 00:00:00 2001 From: Tim Date: Fri, 24 Oct 2025 17:57:12 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9server=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mcp/src/openisle_mcp/server.py | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/mcp/src/openisle_mcp/server.py b/mcp/src/openisle_mcp/server.py index a8f21062d..244c97996 100644 --- a/mcp/src/openisle_mcp/server.py +++ b/mcp/src/openisle_mcp/server.py @@ -150,6 +150,17 @@ def main() -> None: default=_env("OPENISLE_MCP_SSE_MOUNT_PATH", "/mcp"), help="Mount path when using the SSE transport", ) + parser.add_argument( + "--host", + default=_env("OPENISLE_MCP_HOST", "0.0.0.0"), + help="Host to bind when using SSE or Streamable HTTP", + ) + parser.add_argument( + "--port", + type=int, + default=int(_env("OPENISLE_MCP_PORT", "8000")), + help="Port to bind when using SSE or Streamable HTTP", + ) args = parser.parse_args() logging.basicConfig(level=os.getenv("OPENISLE_MCP_LOG_LEVEL", "INFO")) @@ -157,8 +168,21 @@ def main() -> None: "Starting OpenIsle MCP server", extra={"transport": args.transport, "backend": _BACKEND_CLIENT.base_url} ) - server.run(transport=args.transport, mount_path=args.mount_path) + if args.transport == "stdio": + # stdio 模式照旧 + server.run(transport="stdio") + return + # SSE / Streamable HTTP:手动跑 uvicorn,显式控制 host/port + import uvicorn + if args.transport == "sse": + app = server.sse_app(args.mount_path) + elif args.transport == "streamable-http": + app = server.streamable_http_app() + else: + raise RuntimeError(f"Unsupported transport: {args.transport}") + + uvicorn.run(app, host=args.host, port=args.port) if __name__ == "__main__": main()