You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
When using witsy-mcp-client, I'm having this error :
14:39:50.999 [DefaultDispatcher-worker-16] INFO io.modelcontextprotocol.kotlin.sdk.server.McpKtorServerPlugin -- New SSE connection established with sessionId: ec3fa6b0-d2d2-4485-845b-2bf75a3f3132
14:39:51.002 [DefaultDispatcher-worker-16] DEBUG io.modelcontextprotocol.kotlin.sdk.server.Server -- Initializing MCP server with capabilities: ServerCapabilities(experimental={}, sampling={}, logging={}, prompts=null, resources=null, tools=Tools(listChanged=true))
14:39:51.002 [DefaultDispatcher-worker-16] INFO io.modelcontextprotocol.kotlin.sdk.server.Server -- Registering tool: test
14:39:51.002 [DefaultDispatcher-worker-16] DEBUG io.modelcontextprotocol.kotlin.sdk.server.McpKtorServerPlugin -- Server instance created and stored for sessionId: ec3fa6b0-d2d2-4485-845b-2bf75a3f3132
14:39:51.006 [DefaultDispatcher-worker-18] DEBUG io.modelcontextprotocol.kotlin.sdk.server.McpKtorServerPlugin -- Received message for sessionId: ec3fa6b0-d2d2-4485-845b-2bf75a3f3132
14:39:51.036 [DefaultDispatcher-worker-18] INFO io.modelcontextprotocol.kotlin.sdk.server.Server -- Handling initialize request from client Implementation(name=witsy-mcp-client, version=1.0.0)
14:39:51.045 [DefaultDispatcher-worker-16] DEBUG io.modelcontextprotocol.kotlin.sdk.server.McpKtorServerPlugin -- Received message for sessionId: ec3fa6b0-d2d2-4485-845b-2bf75a3f3132
14:39:51.047 [DefaultDispatcher-worker-16] ERROR io.modelcontextprotocol.kotlin.sdk.shared.Protocol -- Error handling notification: notifications/initialized
java.util.NoSuchElementException: Key method is missing in the map.
at kotlin.collections.MapsKt__MapWithDefaultKt.getOrImplicitDefaultNullable(MapWithDefault.kt:24)
at kotlin.collections.MapsKt__MapsKt.getValue(Maps.kt:369)
at io.modelcontextprotocol.kotlin.sdk.Types_utilKt.selectClientNotificationDeserializer(types.util.kt:141)
at io.modelcontextprotocol.kotlin.sdk.Types_utilKt.access$selectClientNotificationDeserializer(types.util.kt:1)
at io.modelcontextprotocol.kotlin.sdk.NotificationPolymorphicSerializer.selectDeserializer(types.util.kt:191)
at kotlinx.serialization.json.JsonContentPolymorphicSerializer.deserialize(JsonContentPolymorphicSerializer.kt:93)
at kotlinx.serialization.json.internal.AbstractJsonTreeDecoder.decodeSerializableValue(TreeJsonDecoder.kt:345)
at kotlinx.serialization.json.internal.TreeJsonDecoderKt.readJson(TreeJsonDecoder.kt:25)
at kotlinx.serialization.json.Json.decodeFromJsonElement(Json.kt:170)
at io.modelcontextprotocol.kotlin.sdk.TypesKt.fromJSON(types.kt:1461)
at io.modelcontextprotocol.kotlin.sdk.shared.Protocol$setNotificationHandler$1.invokeSuspend(Protocol.kt:470)
at io.modelcontextprotocol.kotlin.sdk.shared.Protocol$setNotificationHandler$1.invoke(Protocol.kt)
at io.modelcontextprotocol.kotlin.sdk.shared.Protocol$setNotificationHandler$1.invoke(Protocol.kt)
at io.modelcontextprotocol.kotlin.sdk.shared.Protocol.onNotification(Protocol.kt:198)
at io.modelcontextprotocol.kotlin.sdk.shared.Protocol.access$onNotification(Protocol.kt:93)
at io.modelcontextprotocol.kotlin.sdk.shared.Protocol$connect$4.invokeSuspend(Protocol.kt:167)
at io.modelcontextprotocol.kotlin.sdk.shared.Protocol$connect$4.invoke(Protocol.kt)
at io.modelcontextprotocol.kotlin.sdk.shared.Protocol$connect$4.invoke(Protocol.kt)
at io.modelcontextprotocol.kotlin.sdk.server.SSEServerTransport.handleMessage(SSEServerTransport.kt:103)
at io.modelcontextprotocol.kotlin.sdk.server.SSEServerTransport.handlePostMessage(SSEServerTransport.kt:87)
at io.modelcontextprotocol.kotlin.sdk.server.McpKtorServerPluginKt$MCP$1$2.invokeSuspend(McpKtorServerPlugin.kt:50)
at io.modelcontextprotocol.kotlin.sdk.server.McpKtorServerPluginKt$MCP$1$2.invoke(McpKtorServerPlugin.kt)
at io.modelcontextprotocol.kotlin.sdk.server.McpKtorServerPluginKt$MCP$1$2.invoke(McpKtorServerPlugin.kt)
at io.ktor.server.routing.RoutingNode$buildPipeline$1$1.invokeSuspend(RoutingNode.kt:127)
at io.ktor.server.routing.RoutingNode$buildPipeline$1$1.invoke(RoutingNode.kt)
at io.ktor.server.routing.RoutingNode$buildPipeline$1$1.invoke(RoutingNode.kt)
at io.ktor.util.pipeline.PipelineJvmKt.pipelineStartCoroutineUninterceptedOrReturn(PipelineJvm.kt:15)
at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:131)
at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:89)
at io.ktor.util.pipeline.SuspendFunctionGun.execute$ktor_utils(SuspendFunctionGun.kt:109)
at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:92)
at io.ktor.server.routing.RoutingRoot$executeResult$$inlined$execute$1.invokeSuspend(Pipeline.kt:510)
at io.ktor.server.routing.RoutingRoot$executeResult$$inlined$execute$1.invoke(Pipeline.kt)
at io.ktor.server.routing.RoutingRoot$executeResult$$inlined$execute$1.invoke(Pipeline.kt)
at io.ktor.util.debug.ContextUtilsKt.initContextInDebugMode(ContextUtils.kt:19)
at io.ktor.server.routing.RoutingRoot.executeResult(RoutingRoot.kt:208)
at io.ktor.server.routing.RoutingRoot.interceptor(RoutingRoot.kt:71)
at io.ktor.server.routing.RoutingRoot$Plugin$install$1.invokeSuspend(RoutingRoot.kt:154)
at io.ktor.server.routing.RoutingRoot$Plugin$install$1.invoke(RoutingRoot.kt)
at io.ktor.server.routing.RoutingRoot$Plugin$install$1.invoke(RoutingRoot.kt)
at io.ktor.util.pipeline.PipelineJvmKt.pipelineStartCoroutineUninterceptedOrReturn(PipelineJvm.kt:15)
at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:131)
at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:89)
at io.ktor.server.engine.BaseApplicationEngineKt$installDefaultTransformationChecker$1.invokeSuspend(BaseApplicationEngine.kt:117)
at io.ktor.server.engine.BaseApplicationEngineKt$installDefaultTransformationChecker$1.invoke(BaseApplicationEngine.kt)
at io.ktor.server.engine.BaseApplicationEngineKt$installDefaultTransformationChecker$1.invoke(BaseApplicationEngine.kt)
at io.ktor.util.pipeline.PipelineJvmKt.pipelineStartCoroutineUninterceptedOrReturn(PipelineJvm.kt:15)
at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:131)
at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:89)
at io.ktor.util.pipeline.SuspendFunctionGun.execute$ktor_utils(SuspendFunctionGun.kt:109)
at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:92)
at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1$invokeSuspend$$inlined$execute$1.invokeSuspend(Pipeline.kt:510)
at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1$invokeSuspend$$inlined$execute$1.invoke(Pipeline.kt)
at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1$invokeSuspend$$inlined$execute$1.invoke(Pipeline.kt)
at io.ktor.util.debug.ContextUtilsKt.initContextInDebugMode(ContextUtils.kt:19)
at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1.invokeSuspend(DefaultEnginePipeline.kt:131)
at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1.invoke(DefaultEnginePipeline.kt)
at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1.invoke(DefaultEnginePipeline.kt)
at io.ktor.util.pipeline.PipelineJvmKt.pipelineStartCoroutineUninterceptedOrReturn(PipelineJvm.kt:15)
at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:131)
at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:89)
at io.ktor.util.pipeline.SuspendFunctionGun.execute$ktor_utils(SuspendFunctionGun.kt:109)
at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:92)
at io.ktor.server.cio.CIOApplicationEngine$handleRequest$2$invokeSuspend$$inlined$execute$1.invokeSuspend(Pipeline.kt:488)
at io.ktor.server.cio.CIOApplicationEngine$handleRequest$2$invokeSuspend$$inlined$execute$1.invoke(Pipeline.kt)
at io.ktor.server.cio.CIOApplicationEngine$handleRequest$2$invokeSuspend$$inlined$execute$1.invoke(Pipeline.kt)
at io.ktor.util.debug.ContextUtilsKt.initContextInDebugMode(ContextUtils.kt:19)
at io.ktor.server.cio.CIOApplicationEngine$handleRequest$2.invokeSuspend(CIOApplicationEngine.kt:229)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:113)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:820)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)
14:39:51.050 [DefaultDispatcher-worker-24] DEBUG io.modelcontextprotocol.kotlin.sdk.server.McpKtorServerPlugin -- Received message for sessionId: ec3fa6b0-d2d2-4485-845b-2bf75a3f3132
The text was updated successfully, but these errors were encountered:
I've also encountered this when Cursor is the client.
It looks like the server is expecting method to be present in the params map in the RPC event, whereas Cursor (and presumably other clients) only send it in the parent object.
tomakehurst
added a commit
to wiremock-inc/anthropic-mcp-kotlin-sdk
that referenced
this issue
Mar 20, 2025
This error will also occur when using the inspector connection. and cherry-studio, chatwise. This issue prevents all mcp-clients from using the server. https://github.com/modelcontextprotocol/inspector
Describe the bug
When using witsy-mcp-client, I'm having this error :
The text was updated successfully, but these errors were encountered: