-
Notifications
You must be signed in to change notification settings - Fork 3k
Closed
Labels
Milestone
Description
Describe the bug
I am trying to use the Quarkus DevUI MCP tools from Cursor with the following local configuration:
"local-quarkus-mcp": {
"url": "http://localhost:8080/q/dev-mcp",
"headers": {
"Content-Type": "application/json"
}
}
The tools are being loaded and shown in the UI but I can not get them to work. They are availble as context to the llm but it always tries to use it with a parameter set
{
"parameters": "{}"
}
That leads to the following exception on the serverside:
2025-09-29 06:07:20,170 ERROR [io.qua.dev.run.com.JsonRpcRouter] (vert.x-eventloop-thread-0) Unable to invoke method quarkus-agroal_getDataSources using JSON-RPC, request was: io.quarkus.devui.runtime.jsonrpc.JsonRpcRequest@47e3d64c: java.lang.NullPointerException: Cannot invoke "java.util.Map.entrySet()" because "parameters" is null
at io.quarkus.devui.runtime.comms.JsonRpcRouter.getArgsAsObjects(JsonRpcRouter.java:357)
at io.quarkus.devui.runtime.comms.JsonRpcRouter.routeToRuntimeMethod(JsonRpcRouter.java:193)
at io.quarkus.devui.runtime.comms.JsonRpcRouter.route(JsonRpcRouter.java:162)
at io.quarkus.devui.runtime.comms.JsonRpcRouter_ClientProxy.route(Unknown Source)
at io.quarkus.devui.runtime.mcp.McpHttpHandler.lambda$handleMCPJsonRPCRequest$1(McpHttpHandler.java:118)
at io.vertx.core.impl.ContextInternal.dispatch(ContextInternal.java:270)
at io.vertx.core.impl.ContextInternal.dispatch(ContextInternal.java:252)
at io.vertx.core.http.impl.HttpEventHandler.handleEnd(HttpEventHandler.java:76)
at io.vertx.core.http.impl.Http1xServerRequest.onEnd(Http1xServerRequest.java:645)
at io.vertx.core.http.impl.Http1xServerRequest.lambda$pendingHandler$0(Http1xServerRequest.java:380)
at io.vertx.core.streams.impl.InboundBuffer.handleEvent(InboundBuffer.java:279)
at io.vertx.core.streams.impl.InboundBuffer.drain(InboundBuffer.java:266)
at io.vertx.core.streams.impl.InboundBuffer.lambda$asyncDrain$1(InboundBuffer.java:317)
at io.vertx.core.impl.ContextInternal.dispatch(ContextInternal.java:270)
at io.vertx.core.impl.ContextInternal.dispatch(ContextInternal.java:252)
at io.vertx.core.impl.ContextInternal.lambda$runOnContext$0(ContextInternal.java:50)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:998)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1583)
I am not sure if this is a configuration issue or if the implementation should be more resiliant to handle a null parameter array.
Expected behavior
No response
Actual behavior
No response
How to Reproduce?
No response
Output of uname -a
or ver
No response
Output of java -version
No response
Quarkus version or git rev
No response
Build tool (ie. output of mvnw --version
or gradlew --version
)
No response
Additional information
No response