DevoxxGenieIDEAPlugin
DevoxxGenieIDEAPlugin copied to clipboard
[Bug] NPE when adding a npx MCP
I'm using Ubuntu 22.04 have node installed with nvm and I'm using Intellij 2025. DevoxxGenie v0.0.6
I tried to add mcp server and I allways get a NPE when I try to connect and fecth, and some times it get freezed and i have to kill intellij.
Here is my configuration:
command: /home/user/.nvm/versions/node/v20.6.1/bin/npx
arguments: -y
@wonderwhy-er/desktop-commander
environmentVariables:
PATH: [content of the path variable]
I think this is the first mcp i tried to add and it gives me the error below, I added others MCP and they worked. Using this configuration i have been able to connect mcp's with codeGPT plugin but I can't with devoxxGenie
Failed to connect to MCP server
Root cause: Cannot invoke "com.fasterxml.jackson.databind.JsonNode.getNodeType()" because the return value of "com.fasterxml.jackson.databind.JsonNode.get(String)" is null
Stack trace:
java.lang.NullPointerException: Cannot invoke "com.fasterxml.jackson.databind.JsonNode.getNodeType()" because the return value of "com.fasterxml.jackson.databind.JsonNode.get(String)" is null
at dev.langchain4j.mcp.client.ToolSpecificationHelper.jsonNodeToJsonSchemaElement(ToolSpecificationHelper.java:48)
at dev.langchain4j.mcp.client.ToolSpecificationHelper.jsonNodeToJsonSchemaElement(ToolSpecificationHelper.java:68)
at dev.langchain4j.mcp.client.ToolSpecificationHelper.toolSpecificationListFromMcpResponse(ToolSpecificationHelper.java:37)
at dev.langchain4j.mcp.client.DefaultMcpClient.obtainToolList(DefaultMcpClient.java:266)
at dev.langchain4j.mcp.client.DefaultMcpClient.listTools(DefaultMcpClient.java:139)
at com.devoxx.genie.ui.settings.mcp.dialog.MCPServerDialog.testConnection(MCPServerDialog.java:281)
at com.devoxx.genie.ui.settings.mcp.dialog.MCPServerDialog.lambda$initUI$1(MCPServerDialog.java:86)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2314)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:407)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6673)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3394)
at java.desktop/java.awt.Component.processEvent(Component.java:6438)
at java.desktop/java.awt.Container.processEvent(Container.java:2266)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5043)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4871)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4963)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4577)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4518)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2810)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4871)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:783)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:728)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:98)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:755)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:753)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:752)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:585)
at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.kt:530)
at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$16(IdeEventQueue.kt:473)
at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteIntentReadAction$lambda$6(AnyThreadWriteThreadingSupport.kt:274)
at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWithTemporaryThreadLocal(AnyThreadWriteThreadingSupport.kt:204)
at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteIntentReadAction(AnyThreadWriteThreadingSupport.kt:274)
at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runPreventiveWriteIntentReadAction(AnyThreadWriteThreadingSupport.kt:218)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:473)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$12$lambda$11$lambda$10$lambda$9(IdeEventQueue.kt:307)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:864)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$12$lambda$11$lambda$10(IdeEventQueue.kt:306)
at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$3(IdeEventQueue.kt:958)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:109)
at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:958)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$12(IdeEventQueue.kt:301)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:341)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:121)
at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:191)
at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:236)
at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:234)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:319)
at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:234)
at java.desktop/java.awt.Dialog.show(Dialog.java:1079)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:871)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:458)
at com.intellij.openapi.ui.DialogWrapper.doShow(DialogWrapper.java:1815)
at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1764)
at com.intellij.openapi.ui.DialogWrapper.showAndGet(DialogWrapper.java:1778)
at com.devoxx.genie.ui.settings.mcp.MCPSettingsComponent.editMcpServer(MCPSettingsComponent.java:175)
at com.devoxx.genie.ui.settings.mcp.MCPSettingsComponent.lambda$new$3(MCPSettingsComponent.java:55)
at com.intellij.ui.ToolbarDecorator$3.doEdit(ToolbarDecorator.java:546)
at com.intellij.ui.CommonActionsPanel$EditButton.actionPerformed(CommonActionsPanel.java:432)
at com.intellij.openapi.actionSystem.impl.ActionButton.actionPerformed(ActionButton.java:239)
at com.intellij.openapi.actionSystem.impl.ActionButton.lambda$performAction$2(ActionButton.java:219)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.performWithActionCallbacks(ActionManagerImpl.kt:1167)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareWithCallbacks(ActionUtil.kt:405)
at com.intellij.openapi.actionSystem.impl.ActionButton.performAction(ActionButton.java:219)
at com.intellij.openapi.actionSystem.impl.ActionButton.processMouseEvent(ActionButton.java:535)
at java.desktop/java.awt.Component.processEvent(Component.java:6438)
at java.desktop/java.awt.Container.processEvent(Container.java:2266)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5043)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4871)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4963)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4577)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4518)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2810)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4871)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:783)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:728)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:98)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:755)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:753)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:752)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:585)
at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.kt:530)
at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$16(IdeEventQueue.kt:473)
at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteIntentReadAction$lambda$6(AnyThreadWriteThreadingSupport.kt:274)
at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWithTemporaryThreadLocal(AnyThreadWriteThreadingSupport.kt:204)
at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteIntentReadAction(AnyThreadWriteThreadingSupport.kt:274)
at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runPreventiveWriteIntentReadAction(AnyThreadWriteThreadingSupport.kt:218)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:473)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$12$lambda$11$lambda$10$lambda$9(IdeEventQueue.kt:307)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:864)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$12$lambda$11$lambda$10(IdeEventQueue.kt:306)
at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$3(IdeEventQueue.kt:958)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:109)
at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:958)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$12(IdeEventQueue.kt:301)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:341)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:121)
at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:191)
at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:236)
at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:234)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:319)
at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:234)
at java.desktop/java.awt.Dialog.show(Dialog.java:1079)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:871)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:458)
at com.intellij.openapi.ui.DialogWrapper.doShow(DialogWrapper.java:1815)
at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1764)
at com.intellij.ide.actions.ShowSettingsUtilImpl$Companion.showInternal(ShowSettingsUtilImpl.kt:73)
at com.intellij.ide.actions.ShowSettingsUtilImpl$Companion.showSettings(ShowSettingsUtilImpl.kt:56)
at com.intellij.ide.actions.ShowSettingsUtilImpl.showSettingsDialog(ShowSettingsUtilImpl.kt:169)
at com.devoxx.genie.ui.util.SettingsDialogUtil.showSettingsDialog(SettingsDialogUtil.java:9)
at com.devoxx.genie.ui.panel.conversation.ConversationUIController.lambda$new$0(ConversationUIController.java:57)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2314)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:407)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.focusLost(BasicButtonListener.java:222)
at java.desktop/java.awt.AWTEventMulticaster.focusLost(AWTEventMulticaster.java:237)
at java.desktop/java.awt.AWTEventMulticaster.focusLost(AWTEventMulticaster.java:237)
at java.desktop/java.awt.Component.processFocusEvent(Component.java:6565)
at java.desktop/java.awt.Component.processEvent(Component.java:6429)
at java.desktop/java.awt.Container.processEvent(Container.java:2266)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5043)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4871)
at java.desktop/java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954)
at java.desktop/java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:1073)
at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:739)
at com.intellij.ide.IdeKeyboardFocusManager.dispatchEvent$lambda$1(IdeKeyboardFocusManager.kt:48)
at com.intellij.ide.IdeKeyboardFocusManager.dispatchEvent$lambda$4$lambda$3(IdeKeyboardFocusManager.kt:58)
at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteIntentReadAction$lambda$6(AnyThreadWriteThreadingSupport.kt:274)
at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWithTemporaryThreadLocal(AnyThreadWriteThreadingSupport.kt:204)
at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteIntentReadAction(AnyThreadWriteThreadingSupport.kt:274)
at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runPreventiveWriteIntentReadAction(AnyThreadWriteThreadingSupport.kt:218)
at com.intellij.ide.IdeKeyboardFocusManager.dispatchEvent$lambda$4(IdeKeyboardFocusManager.kt:58)
at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$3(IdeEventQueue.kt:958)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:117)
at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:958)
at com.intellij.ide.IdeKeyboardFocusManager.dispatchEvent(IdeKeyboardFocusManager.kt:58)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4920)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4871)
at java.desktop/sun.awt.SunToolkit$1.run(SunToolkit.java:533)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:781)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:728)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:750)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:585)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:482)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$12$lambda$11$lambda$10$lambda$9(IdeEventQueue.kt:307)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:864)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$12$lambda$11$lambda$10(IdeEventQueue.kt:306)
at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$3(IdeEventQueue.kt:958)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:109)
at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:958)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$12(IdeEventQueue.kt:301)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:341)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
Thanks for reporting, will have a closer look.
Great, I have the same issue on my Mac so I can debug it further...
It's actually a Langchain4J MCP Bug, which I've fixed. You can manually install the fix and try it out from https://drive.google.com/file/d/1XCbngvy7gyRn1q9a4tHRPmGPFlIGA-OA/view?usp=share_link
Created and issue on the Langchain4J project @ https://github.com/langchain4j/langchain4j/issues/3118
Fantastic, It works now. Thank you very much.
Great! Out of interest, which LLMs are you using with this MCP ?
I'm trying to create a completely local environment, I'm testing with several from Qwen, Codellama, Dolphin and some more, but i'm not getting very good results :)
Was also not yet successful using a local environment, we need a bit patience I guess
Maybe the latest DeepSeek will do better? https://huggingface.co/deepseek-ai/DeepSeek-R1-0528/blob/main/README.md