diff --git a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/util/LspEditorUtil.kt b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/util/LspEditorUtil.kt index dd35c32e719..bdd2f33f1a5 100644 --- a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/util/LspEditorUtil.kt +++ b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/util/LspEditorUtil.kt @@ -45,15 +45,10 @@ object LspEditorUtil { } private fun toUri(file: File): URI { - try { - // URI scheme specified by language server protocol - val uri = URI("file", "", file.absoluteFile.toURI().path, null) - val fallback = file.toPath().toAbsolutePath().normalize().toUri() - return if (uri.isCompliant()) uri else fallback - } catch (e: URISyntaxException) { - LOG.warn { "${e.localizedMessage}: $e" } - return file.absoluteFile.toURI() - } + // Use Path.toUri() for proper cross-platform URI handling + // Fixes Windows MCP workspace configuration bug where malformed URIs + // get interpreted as literal file paths during directory creation + return file.toPath().toAbsolutePath().normalize().toUri() } private fun URI.isCompliant(): Boolean {