diff --git a/plugins/mcp-server/src/com/intellij/mcpserver/toolsets/general/FileToolset.kt b/plugins/mcp-server/src/com/intellij/mcpserver/toolsets/general/FileToolset.kt index aa14314ae33a..8061368cd6cc 100644 --- a/plugins/mcp-server/src/com/intellij/mcpserver/toolsets/general/FileToolset.kt +++ b/plugins/mcp-server/src/com/intellij/mcpserver/toolsets/general/FileToolset.kt @@ -21,6 +21,7 @@ import com.intellij.openapi.fileEditor.impl.FileEditorOpenOptions import com.intellij.openapi.roots.ContentIterator import com.intellij.openapi.roots.ProjectRootManager import com.intellij.openapi.vfs.* +import com.intellij.openapi.vfs.transformer.TextPresentationTransformers import com.intellij.platform.ide.progress.withBackgroundProgress import com.intellij.psi.search.FilenameIndex import com.intellij.psi.search.GlobalSearchScope @@ -264,9 +265,11 @@ class FileToolset : McpToolset { val existing = parent.findChild(path.name) if (existing != null && !overwrite) mcpFail("File already exists: $pathInProject. Specify 'overwrite=true' to overwrite it") val createdFile = parent.findOrCreateFile(path.name) + if (text != null) { + val documentText = TextPresentationTransformers.fromPersistent(text, virtualFile = createdFile) val document = FileDocumentManager.getInstance().getDocument(createdFile) ?: mcpFail("Can't get document for created file: $pathInProject") - document.setText(text) + document.setText(documentText) } } }