diff --git a/MCPForUnity/Editor/Services/Transport/Transports/WebSocketTransportClient.cs b/MCPForUnity/Editor/Services/Transport/Transports/WebSocketTransportClient.cs index 4588e4a60..65b4e4873 100644 --- a/MCPForUnity/Editor/Services/Transport/Transports/WebSocketTransportClient.cs +++ b/MCPForUnity/Editor/Services/Transport/Transports/WebSocketTransportClient.cs @@ -682,9 +682,14 @@ private static Uri BuildWebSocketUri(string baseUrl) throw new InvalidOperationException($"Invalid MCP base URL: {baseUrl}"); } - // Replace 0.0.0.0 with localhost for client connections - // 0.0.0.0 is only valid for server binding, not client connections - string host = httpUri.Host == "0.0.0.0" ? "localhost" : httpUri.Host; + // Replace bind-only addresses with localhost for client connections + // 0.0.0.0 and :: are only valid for server binding, not client connections + string host = httpUri.Host; + if (host == "0.0.0.0" || host == "::") + { + McpLog.Warn($"[WebSocket] Base URL host '{host}' is bind-only; using 'localhost' for client connection."); + host = "localhost"; + } var builder = new UriBuilder(httpUri) { diff --git a/Server/Dockerfile b/Server/Dockerfile index 60453c6aa..202e2397a 100644 --- a/Server/Dockerfile +++ b/Server/Dockerfile @@ -28,4 +28,9 @@ EXPOSE 8080 ENV PYTHONPATH=/app/Server/src -CMD ["uv", "run", "python", "src/main.py", "--transport", "http", "--http-host", "0.0.0.0", "--http-port", "8080"] +# ENTRYPOINT allows override via docker run arguments +# Default: stdio transport (Docker MCP Gateway compatible) +# For HTTP: docker run -p 8080:8080 --transport http --http-host 0.0.0.0 --http-port 8080 +# If hosting remotely, you should add the --project-scoped-tools flag +ENTRYPOINT ["uv", "run", "mcp-for-unity"] +CMD []