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
Copy file name to clipboardExpand all lines: misk-mcp/README.md
+55-10Lines changed: 55 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -34,40 +34,44 @@ class MyAppModule : KAbstractModule() {
34
34
35
35
## Web Action Integration
36
36
37
-
To expose MCP functionality through HTTP endpoints, you need to create web actions using the MCP annotations and install the appropriate WebActionModule.
37
+
To expose MCP functionality through HTTP endpoints, you need to create web actions using the MCP annotations and install the appropriate WebActionModule. The misk-mcp module supports two transport protocols:
38
38
39
-
### Required and Optional Endpoints
39
+
### Transport Options
40
40
41
+
#### Server-Sent Events (SSE) Transport
42
+
Uses HTTP POST requests with SSE responses for real-time communication:
41
43
-**`@McpPost`** (Required): Handles incoming MCP requests from clients
42
-
-**`@McpGet`** (Optional): Enables out-of-band server-to-client notifications, typically used when a stateful session is present
Copy file name to clipboardExpand all lines: misk-mcp/api/misk-mcp.api
+71-11Lines changed: 71 additions & 11 deletions
Original file line number
Diff line number
Diff line change
@@ -114,9 +114,6 @@ public final class misk/mcp/MiskMcpServer : io/modelcontextprotocol/kotlin/sdk/s
114
114
public static final field Companion Lmisk/mcp/MiskMcpServer$Companion;
115
115
public final fun getConfig ()Lmisk/mcp/config/McpServerConfig;
116
116
public final fun getName ()Ljava/lang/String;
117
-
public final fun handleMessage (Lio/modelcontextprotocol/kotlin/sdk/JSONRPCMessage;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
118
-
public final fun handleMessage (Lio/modelcontextprotocol/kotlin/sdk/JSONRPCMessage;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
119
-
public static synthetic fun handleMessage$default (Lmisk/mcp/MiskMcpServer;Lio/modelcontextprotocol/kotlin/sdk/JSONRPCMessage;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
120
117
}
121
118
122
119
public final class misk/mcp/MiskMcpServer$Companion {
@@ -141,6 +138,21 @@ public final class misk/mcp/StructuredMcpTool$StructuredToolResult : misk/mcp/Mc
141
138
public fun toString ()Ljava/lang/String;
142
139
}
143
140
141
+
public final class misk/mcp/TypedCreateElicitationResult {
142
+
public fun <init> (Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationResult$Action;Ljava/lang/Object;Lkotlinx/serialization/json/JsonObject;)V
143
+
public final fun component1 ()Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationResult$Action;
144
+
public final fun component2 ()Ljava/lang/Object;
145
+
public final fun component3 ()Lkotlinx/serialization/json/JsonObject;
146
+
public final fun copy (Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationResult$Action;Ljava/lang/Object;Lkotlinx/serialization/json/JsonObject;)Lmisk/mcp/TypedCreateElicitationResult;
147
+
public static synthetic fun copy$default (Lmisk/mcp/TypedCreateElicitationResult;Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationResult$Action;Ljava/lang/Object;Lkotlinx/serialization/json/JsonObject;ILjava/lang/Object;)Lmisk/mcp/TypedCreateElicitationResult;
148
+
public fun equals (Ljava/lang/Object;)Z
149
+
public final fun getAction ()Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationResult$Action;
150
+
public final fun getContent ()Ljava/lang/Object;
151
+
public final fun get_meta ()Lkotlinx/serialization/json/JsonObject;
152
+
public fun hashCode ()I
153
+
public fun toString ()Ljava/lang/String;
154
+
}
155
+
144
156
public abstract interface annotation class misk/mcp/action/McpDelete : java/lang/annotation/Annotation {
145
157
}
146
158
@@ -150,6 +162,11 @@ public abstract interface annotation class misk/mcp/action/McpGet : java/lang/an
150
162
public abstract interface annotation class misk/mcp/action/McpPost : java/lang/annotation/Annotation {
151
163
}
152
164
165
+
public final class misk/mcp/action/McpServerSessionsKt {
166
+
public static final fun currentServerSession (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
167
+
public static final fun handleMessage (Lio/modelcontextprotocol/kotlin/sdk/server/ServerSession;Lio/modelcontextprotocol/kotlin/sdk/JSONRPCMessage;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
168
+
}
169
+
153
170
public final class misk/mcp/action/McpSessionId {
154
171
public fun <init> (Lmisk/scope/ActionScoped;)V
155
172
public final fun get ()Ljava/lang/String;
@@ -161,13 +178,17 @@ public final class misk/mcp/action/McpSessionIdKt {
161
178
162
179
public final class misk/mcp/action/McpStreamManager {
163
180
public static final field Companion Lmisk/mcp/action/McpStreamManager$Companion;
164
-
public fun <init> (Lmisk/scope/ActionScoped;Lcom/google/inject/Provider;)V
165
181
public final fun withResponseChannel (Lkotlinx/coroutines/channels/SendChannel;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
182
+
public final fun withSseChannel (Lkotlinx/coroutines/channels/SendChannel;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
183
+
public final fun withWebSocket (Lmisk/web/actions/WebSocket;)Lmisk/web/actions/WebSocketListener;
166
184
}
167
185
168
186
public final class misk/mcp/action/McpStreamManager$Companion {
169
187
}
170
188
189
+
public abstract interface annotation class misk/mcp/action/McpWebSocket : java/lang/annotation/Annotation {
190
+
}
191
+
171
192
public final class misk/mcp/config/McpConfig : java/util/LinkedHashMap, misk/config/Config {
172
193
public fun <init> ()V
173
194
public fun <init> (Ljava/util/Map;)V
@@ -231,14 +252,17 @@ public final class misk/mcp/config/McpServerConfig : misk/config/Config {
231
252
public fun <init> (Ljava/lang/String;Lmisk/mcp/config/McpPromptConfig;)V
232
253
public fun <init> (Ljava/lang/String;Lmisk/mcp/config/McpPromptConfig;Lmisk/mcp/config/McpResourceConfig;)V
233
254
public fun <init> (Ljava/lang/String;Lmisk/mcp/config/McpPromptConfig;Lmisk/mcp/config/McpResourceConfig;Lmisk/mcp/config/McpToolConfig;)V
234
-
public synthetic fun <init> (Ljava/lang/String;Lmisk/mcp/config/McpPromptConfig;Lmisk/mcp/config/McpResourceConfig;Lmisk/mcp/config/McpToolConfig;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
255
+
public fun <init> (Ljava/lang/String;Lmisk/mcp/config/McpPromptConfig;Lmisk/mcp/config/McpResourceConfig;Lmisk/mcp/config/McpToolConfig;Z)V
256
+
public synthetic fun <init> (Ljava/lang/String;Lmisk/mcp/config/McpPromptConfig;Lmisk/mcp/config/McpResourceConfig;Lmisk/mcp/config/McpToolConfig;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V
235
257
public final fun component1 ()Ljava/lang/String;
236
258
public final fun component2 ()Lmisk/mcp/config/McpPromptConfig;
237
259
public final fun component3 ()Lmisk/mcp/config/McpResourceConfig;
238
260
public final fun component4 ()Lmisk/mcp/config/McpToolConfig;
239
-
public final fun copy (Ljava/lang/String;Lmisk/mcp/config/McpPromptConfig;Lmisk/mcp/config/McpResourceConfig;Lmisk/mcp/config/McpToolConfig;)Lmisk/mcp/config/McpServerConfig;
240
-
public static synthetic fun copy$default (Lmisk/mcp/config/McpServerConfig;Ljava/lang/String;Lmisk/mcp/config/McpPromptConfig;Lmisk/mcp/config/McpResourceConfig;Lmisk/mcp/config/McpToolConfig;ILjava/lang/Object;)Lmisk/mcp/config/McpServerConfig;
261
+
public final fun component5 ()Z
262
+
public final fun copy (Ljava/lang/String;Lmisk/mcp/config/McpPromptConfig;Lmisk/mcp/config/McpResourceConfig;Lmisk/mcp/config/McpToolConfig;Z)Lmisk/mcp/config/McpServerConfig;
263
+
public static synthetic fun copy$default (Lmisk/mcp/config/McpServerConfig;Ljava/lang/String;Lmisk/mcp/config/McpPromptConfig;Lmisk/mcp/config/McpResourceConfig;Lmisk/mcp/config/McpToolConfig;ZILjava/lang/Object;)Lmisk/mcp/config/McpServerConfig;
241
264
public fun equals (Ljava/lang/Object;)Z
265
+
public final fun getEnforce_strict_capabilities ()Z
242
266
public final fun getPrompts ()Lmisk/mcp/config/McpPromptConfig;
243
267
public final fun getResources ()Lmisk/mcp/config/McpResourceConfig;
244
268
public final fun getTools ()Lmisk/mcp/config/McpToolConfig;
@@ -260,16 +284,52 @@ public final class misk/mcp/config/McpToolConfig : misk/config/Config {
260
284
public fun toString ()Ljava/lang/String;
261
285
}
262
286
287
+
public final class misk/mcp/internal/JsonSchemaExtensionsKt {
288
+
public static final fun generateJsonSchema (Lkotlin/reflect/KClass;ILjava/lang/String;)Lkotlinx/serialization/json/JsonObject;
289
+
public static synthetic fun generateJsonSchema$default (Lkotlin/reflect/KClass;ILjava/lang/String;ILjava/lang/Object;)Lkotlinx/serialization/json/JsonObject;
290
+
}
291
+
263
292
public final class misk/mcp/internal/McpJsonKt {
264
293
public static final fun getMcpJson ()Lkotlinx/serialization/json/Json;
265
294
}
266
295
296
+
public final class misk/mcp/internal/McpServerSession : kotlin/coroutines/AbstractCoroutineContextElement {
297
+
public static final field Key Lmisk/mcp/internal/McpServerSession$Key;
298
+
public fun <init> (Lio/modelcontextprotocol/kotlin/sdk/server/ServerSession;)V
299
+
public final fun component1 ()Lio/modelcontextprotocol/kotlin/sdk/server/ServerSession;
300
+
public final fun copy (Lio/modelcontextprotocol/kotlin/sdk/server/ServerSession;)Lmisk/mcp/internal/McpServerSession;
301
+
public static synthetic fun copy$default (Lmisk/mcp/internal/McpServerSession;Lio/modelcontextprotocol/kotlin/sdk/server/ServerSession;ILjava/lang/Object;)Lmisk/mcp/internal/McpServerSession;
302
+
public fun equals (Ljava/lang/Object;)Z
303
+
public final fun getServerSession ()Lio/modelcontextprotocol/kotlin/sdk/server/ServerSession;
304
+
public fun hashCode ()I
305
+
public fun toString ()Ljava/lang/String;
306
+
}
307
+
308
+
public final class misk/mcp/internal/McpServerSession$Key : kotlin/coroutines/CoroutineContext$Key {
309
+
}
310
+
311
+
public abstract class misk/mcp/internal/MiskServerTransport : io/modelcontextprotocol/kotlin/sdk/shared/AbstractTransport {
312
+
public fun <init> ()V
313
+
public abstract fun getCall ()Lmisk/web/HttpCall;
314
+
public abstract fun getStreamId ()Ljava/lang/String;
315
+
public abstract fun handleMessage (Lio/modelcontextprotocol/kotlin/sdk/JSONRPCMessage;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
316
+
}
317
+
267
318
public final class misk/mcp/testing/ClientExtensionsKt {
268
-
public static final fun asKtorClient (Lokhttp3/OkHttpClient;)Lio/ktor/client/HttpClient;
269
-
public static final fun asMcpClient (Lio/modelcontextprotocol/kotlin/sdk/client/StreamableHttpClientTransport;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
270
-
public static final fun asMcpClient (Lokhttp3/OkHttpClient;Lokhttp3/HttpUrl;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
271
-
public static synthetic fun asMcpClient$default (Lokhttp3/OkHttpClient;Lokhttp3/HttpUrl;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
319
+
public static final fun asKtorClient (Lokhttp3/OkHttpClient;Z)Lio/ktor/client/HttpClient;
320
+
public static synthetic fun asKtorClient$default (Lokhttp3/OkHttpClient;ZILjava/lang/Object;)Lio/ktor/client/HttpClient;
321
+
public static final fun asMcpClient (Lio/modelcontextprotocol/kotlin/sdk/shared/AbstractTransport;Ljava/lang/String;Ljava/lang/String;Lio/modelcontextprotocol/kotlin/sdk/client/ClientOptions;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
322
+
public static synthetic fun asMcpClient$default (Lio/modelcontextprotocol/kotlin/sdk/shared/AbstractTransport;Ljava/lang/String;Ljava/lang/String;Lio/modelcontextprotocol/kotlin/sdk/client/ClientOptions;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
323
+
public static final fun asMcpStreamableHttpClient (Lokhttp3/OkHttpClient;Lokhttp3/HttpUrl;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZZZZLkotlin/coroutines/Continuation;)Ljava/lang/Object;
324
+
public static synthetic fun asMcpStreamableHttpClient$default (Lokhttp3/OkHttpClient;Lokhttp3/HttpUrl;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZZZZLkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
272
325
public static final fun asMcpStreamableHttpTransport (Lio/ktor/client/HttpClient;Lokhttp3/HttpUrl;Ljava/lang/String;)Lio/modelcontextprotocol/kotlin/sdk/client/StreamableHttpClientTransport;
273
326
public static synthetic fun asMcpStreamableHttpTransport$default (Lio/ktor/client/HttpClient;Lokhttp3/HttpUrl;Ljava/lang/String;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/client/StreamableHttpClientTransport;
327
+
public static final fun asMcpWebSocketClient (Lokhttp3/OkHttpClient;Lokhttp3/HttpUrl;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZZZZLkotlin/coroutines/Continuation;)Ljava/lang/Object;
328
+
public static synthetic fun asMcpWebSocketClient$default (Lokhttp3/OkHttpClient;Lokhttp3/HttpUrl;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZZZZLkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
329
+
public static final fun asMcpWebSocketTransport (Lio/ktor/client/HttpClient;Lokhttp3/HttpUrl;Ljava/lang/String;)Lio/modelcontextprotocol/kotlin/sdk/client/WebSocketClientTransport;
330
+
public static synthetic fun asMcpWebSocketTransport$default (Lio/ktor/client/HttpClient;Lokhttp3/HttpUrl;Ljava/lang/String;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/client/WebSocketClientTransport;
331
+
public static final fun clientOptionsFor (ZZZZZ)Lio/modelcontextprotocol/kotlin/sdk/client/ClientOptions;
332
+
public static synthetic fun clientOptionsFor$default (ZZZZZILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/client/ClientOptions;
333
+
public static final fun normalizeWebSocketUrlString (Lokhttp3/HttpUrl;)Ljava/lang/String;
0 commit comments