When I was writing the MCP extension plugin, I encountered the following problem:
My code:
import com.intellij.mcpserver.McpToolset
import com.intellij.mcpserver.annotations.McpDescription
import com.intellij.mcpserver.annotations.McpTool
import com.intellij.mcpserver.mcpFail
import com.intellij.mcpserver.util.resolveInProject
My build.gracle.kts:
dependencies {
intellijPlatform {
compileOnly(project(":openapi"))
intellijIdeaUltimate(prop("platformVersion")) {
useCache = true
}
bundledPlugins("com.intellij.mcpServer")
}
}
When the plugin verified by 1.395, both local or on the Marketplace , it report :
#Invocation of unresolved method com.intellij.mcpserver.McpToolKt.mcpFail(String) : Void
Method vanstudio.sequence.mcp.SdGeneratorToolset.generate_sequence_diagram$lambda$1(vanstudio.sequence.mcp.SdGeneratorToolset arg0, com.intellij.psi.PsiFile arg1, java.lang.String arg2) : com.intellij.psi.PsiElement contains an *invokestatic* instruction referencing an unresolved method com.intellij.mcpserver.McpToolKt.mcpFail(java.lang.String) : java.lang.Void. This can lead to **NoSuchMethodError** exception at runtime.
Method vanstudio.sequence.mcp.SdGeneratorToolset.resolveProjectFilePath(java.lang.String arg0) : kotlin.Pair contains an *invokestatic* instruction referencing an unresolved method com.intellij.mcpserver.McpToolKt.mcpFail(java.lang.String) : java.lang.Void. This can lead to **NoSuchMethodError** exception at runtime.
Method vanstudio.sequence.mcp.SdGeneratorToolset.generate_sequence_diagram$lambda$0(com.intellij.openapi.vfs.VirtualFile arg0) : com.intellij.openapi.editor.Document contains an *invokestatic* instruction referencing an unresolved method com.intellij.mcpserver.McpToolKt.mcpFail(java.lang.String) : java.lang.Void. This can lead to **NoSuchMethodError** exception at runtime.
Method vanstudio.sequence.mcp.SdGeneratorToolset.generate_sequence_diagram(java.lang.String arg0, java.lang.String arg1, int arg2, kotlin.coroutines.Continuation arg3) : java.lang.Object contains an *invokestatic* instruction referencing an unresolved method com.intellij.mcpserver.McpToolKt.mcpFail(java.lang.String) : java.lang.Void. This can lead to **NoSuchMethodError** exception at runtime.
Why the com.intellij.mcpserver.McpToolKt.mcpFail(String) can not resolved by verifier cli, while it is at the same packate com.intellij.mcpserver.McpToolset?