diff --git a/plugins/mcp-server/src/com/intellij/mcpserver/ToolCallListener.kt b/plugins/mcp-server/src/com/intellij/mcpserver/ToolCallListener.kt index a33d91ffc829..729d15cb7df2 100644 --- a/plugins/mcp-server/src/com/intellij/mcpserver/ToolCallListener.kt +++ b/plugins/mcp-server/src/com/intellij/mcpserver/ToolCallListener.kt @@ -1,6 +1,7 @@ package com.intellij.mcpserver import com.intellij.openapi.vfs.VirtualFile +import com.intellij.util.application import com.intellij.util.messages.Topic interface ToolCallListener { @@ -12,6 +13,8 @@ interface ToolCallListener { fun beforeMcpToolCall(mcpToolDescriptor: McpToolDescriptor) {} fun afterMcpToolCall(mcpToolDescriptor: McpToolDescriptor, events: List) {} + + fun toolActivity(toolDescription: String) {} } sealed interface McpToolSideEffectEvent @@ -22,3 +25,7 @@ class FileCreatedEvent(val file: VirtualFile, val content: String) : FileEvent class FileDeletedEvent(val file: VirtualFile, val content: String?) : FileEvent class FileMovedEvent(val file: VirtualFile, val oldParent: VirtualFile, val newParent: VirtualFile) : FileEvent class FileContentChangeEvent(val file: VirtualFile, val oldContent: String?, val newContent: String) : FileEvent + +fun reportToolActivity(toolDescription: String) { + application.messageBus.syncPublisher(ToolCallListener.TOPIC).toolActivity(toolDescription) +} \ No newline at end of file diff --git a/plugins/mcp-server/src/com/intellij/mcpserver/toolsets/general/AnalysisToolset.kt b/plugins/mcp-server/src/com/intellij/mcpserver/toolsets/general/AnalysisToolset.kt index 40ea2e24b911..f489e3de1784 100644 --- a/plugins/mcp-server/src/com/intellij/mcpserver/toolsets/general/AnalysisToolset.kt +++ b/plugins/mcp-server/src/com/intellij/mcpserver/toolsets/general/AnalysisToolset.kt @@ -7,12 +7,9 @@ import com.intellij.analysis.problemsView.ProblemsCollector import com.intellij.codeInsight.daemon.impl.DaemonCodeAnalyzerEx import com.intellij.codeInsight.daemon.impl.HighlightInfo import com.intellij.lang.annotation.HighlightSeverity -import com.intellij.mcpserver.McpServerBundle -import com.intellij.mcpserver.McpToolset +import com.intellij.mcpserver.* import com.intellij.mcpserver.annotations.McpDescription import com.intellij.mcpserver.annotations.McpTool -import com.intellij.mcpserver.mcpFail -import com.intellij.mcpserver.project import com.intellij.mcpserver.toolsets.Constants import com.intellij.mcpserver.util.projectDirectory import com.intellij.mcpserver.util.resolveInProject @@ -54,6 +51,7 @@ class AnalysisToolset : McpToolset { @McpDescription(Constants.TIMEOUT_MILLISECONDS_DESCRIPTION) timeout: Int = Constants.MEDIUM_TIMEOUT_MILLISECONDS_VALUE, ): FileProblemsResult { + reportToolActivity("Collecting problems in file $filePath") val project = currentCoroutineContext().project val projectDir = project.projectDirectory