Skip to content

Commit 4833672

Browse files
committed
adds support for server instructions
1 parent cf41689 commit 4833672

File tree

3 files changed

+20
-7
lines changed

3 files changed

+20
-7
lines changed

misk-mcp/api/misk-mcp.api

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,14 @@ public final class misk/mcp/McpResourceModule$Companion {
4141

4242
public final class misk/mcp/McpServerModule : misk/inject/KAbstractModule {
4343
public static final field Companion Lmisk/mcp/McpServerModule$Companion;
44-
public synthetic fun <init> (Ljava/lang/String;Lmisk/mcp/config/McpConfig;Lkotlin/reflect/KClass;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
44+
public synthetic fun <init> (Ljava/lang/String;Lmisk/mcp/config/McpConfig;Lcom/google/inject/Provider;Lkotlin/reflect/KClass;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
4545
}
4646

4747
public final class misk/mcp/McpServerModule$Companion {
48-
public final fun create (Ljava/lang/String;Lmisk/mcp/config/McpConfig;Lkotlin/reflect/KClass;)Lmisk/mcp/McpServerModule;
49-
public static synthetic fun create$default (Lmisk/mcp/McpServerModule$Companion;Ljava/lang/String;Lmisk/mcp/config/McpConfig;Lkotlin/reflect/KClass;ILjava/lang/Object;)Lmisk/mcp/McpServerModule;
50-
public final fun createWithNoGroup (Ljava/lang/String;Lmisk/mcp/config/McpConfig;)Lmisk/mcp/McpServerModule;
48+
public final fun create (Ljava/lang/String;Lmisk/mcp/config/McpConfig;Lcom/google/inject/Provider;Lkotlin/reflect/KClass;)Lmisk/mcp/McpServerModule;
49+
public static synthetic fun create$default (Lmisk/mcp/McpServerModule$Companion;Ljava/lang/String;Lmisk/mcp/config/McpConfig;Lcom/google/inject/Provider;Lkotlin/reflect/KClass;ILjava/lang/Object;)Lmisk/mcp/McpServerModule;
50+
public final fun createWithNoGroup (Ljava/lang/String;Lmisk/mcp/config/McpConfig;Lcom/google/inject/Provider;)Lmisk/mcp/McpServerModule;
51+
public static synthetic fun createWithNoGroup$default (Lmisk/mcp/McpServerModule$Companion;Ljava/lang/String;Lmisk/mcp/config/McpConfig;Lcom/google/inject/Provider;ILjava/lang/Object;)Lmisk/mcp/McpServerModule;
5152
}
5253

5354
public abstract interface class misk/mcp/McpSessionHandler {

misk-mcp/src/main/kotlin/misk/mcp/McpServerModule.kt

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import kotlin.reflect.KClass
3131
class McpServerModule private constructor(
3232
private val name: String,
3333
private val config: McpConfig,
34+
private val instructionsProvider: Provider<String>?,
3435
private val groupAnnotationClass: KClass<out Annotation>?,
3536
) : KAbstractModule() {
3637

@@ -68,6 +69,7 @@ class McpServerModule private constructor(
6869
tools = toolsProvider.get().toSet(),
6970
resources = resourcesProvider.get().toSet(),
7071
prompts = promptsProvider.get().toSet(),
72+
instructionsProvider = instructionsProvider
7173
)
7274
}
7375
bind(serverKey).toProvider(serverProvider).asSingleton()
@@ -90,13 +92,20 @@ class McpServerModule private constructor(
9092
fun create(
9193
name: String,
9294
config: McpConfig,
95+
instructionsProvider: Provider<String>? = null,
9396
groupAnnotation: KClass<out Annotation>? = null,
94-
) = McpServerModule(name, config, groupAnnotation)
97+
) = McpServerModule(name, config, instructionsProvider, groupAnnotation)
9598

96-
inline fun <reified GA : Annotation> create(name: String, config: McpConfig) = create(name, config, GA::class)
99+
inline fun <reified GA : Annotation> create(
100+
name: String,
101+
config: McpConfig,
102+
instructionsProvider: Provider<String>? = null
103+
) =
104+
create(name, config, instructionsProvider, GA::class)
97105

98106
@JvmName("createWithNoGroup")
99-
fun create(name: String, config: McpConfig) = create(name, config, null)
107+
fun create(name: String, config: McpConfig, instructionsProvider: Provider<String>? = null) =
108+
create(name, config, instructionsProvider, null)
100109
}
101110

102111
private class CommonModule() : KInstallOnceModule() {

misk-mcp/src/main/kotlin/misk/mcp/MiskMcpServer.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package misk.mcp
22

3+
import com.google.inject.Provider
34
import io.modelcontextprotocol.kotlin.sdk.Implementation
45
import io.modelcontextprotocol.kotlin.sdk.JSONRPCMessage
56
import io.modelcontextprotocol.kotlin.sdk.JSONRPCNotification
@@ -106,6 +107,7 @@ class MiskMcpServer internal constructor(
106107
tools: Set<McpTool<*>>,
107108
resources: Set<McpResource>,
108109
prompts: Set<McpPrompt>,
110+
instructionsProvider: Provider<String>? = null,
109111
) : Server(
110112
Implementation(
111113
name = name,
@@ -121,6 +123,7 @@ class MiskMcpServer internal constructor(
121123
tools = if (tools.isNotEmpty()) config.tools.asTools() else null,
122124
),
123125
),
126+
// TODO: propagate instructionsProvider once supported in MCP SDK
124127
) {
125128

126129
init {

0 commit comments

Comments
 (0)