3838
3939# Also write logs to a rotating file so logs are available when launched via stdio
4040try :
41- _log_dir = os .path .join (os .path .expanduser (
42- "~/Library/Application Support/UnityMCP" ), "Logs" )
41+ if os .name == 'nt' :
42+ _base_dir = os .environ .get ('APPDATA' ) or os .path .expanduser ('~\\ AppData\\ Roaming' )
43+ _log_dir = os .path .join (_base_dir , "UnityMCP" , "Logs" )
44+ else :
45+ _log_dir = os .path .join (os .path .expanduser (
46+ "~/Library/Application Support/UnityMCP" ), "Logs" )
4347 os .makedirs (_log_dir , exist_ok = True )
4448 _file_path = os .path .join (_log_dir , "unity_mcp_server.log" )
4549 _fh = RotatingFileHandler (
@@ -378,8 +382,11 @@ def main():
378382 # Allow individual host/port to override URL components
379383 http_host = args .http_host or os .environ .get (
380384 "UNITY_MCP_HTTP_HOST" ) or parsed_url .hostname or "localhost"
381- http_port = args .http_port or (int (os .environ .get ("UNITY_MCP_HTTP_PORT" )) if os .environ .get (
382- "UNITY_MCP_HTTP_PORT" ) else None ) or parsed_url .port or 8080
385+ # Parse HTTP port safely
386+ env_port = os .environ .get ("UNITY_MCP_HTTP_PORT" )
387+ parsed_port = int (env_port ) if env_port else None
388+
389+ http_port = args .http_port or parsed_port or parsed_url .port or 8080
383390
384391 os .environ ["UNITY_MCP_HTTP_HOST" ] = http_host
385392 os .environ ["UNITY_MCP_HTTP_PORT" ] = str (http_port )
@@ -400,8 +407,12 @@ def main():
400407 parsed_url = urlparse (http_url )
401408 host = args .http_host or os .environ .get (
402409 "UNITY_MCP_HTTP_HOST" ) or parsed_url .hostname or "localhost"
403- port = args .http_port or (int (os .environ .get ("UNITY_MCP_HTTP_PORT" )) if os .environ .get (
404- "UNITY_MCP_HTTP_PORT" ) else None ) or parsed_url .port or 8080
410+
411+ # Safe port parsing for transport logic
412+ env_port_t = os .environ .get ("UNITY_MCP_HTTP_PORT" )
413+ env_port_val = int (env_port_t ) if env_port_t else None
414+
415+ port = args .http_port or env_port_val or parsed_url .port or 8080
405416
406417 logger .info (f"Starting FastMCP with SSE transport on { host } :{ port } " )
407418 mcp .run (transport = transport , host = host , port = port )
0 commit comments