Skip to content

Commit c5a0f26

Browse files
committed
Add optional title property for tool object (#191)
1 parent 61dfab9 commit c5a0f26

File tree

5 files changed

+351
-15
lines changed

5 files changed

+351
-15
lines changed

api/kotlin-sdk.api

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2558,20 +2558,22 @@ public final class io/modelcontextprotocol/kotlin/sdk/TextResourceContents$Compa
25582558

25592559
public final class io/modelcontextprotocol/kotlin/sdk/Tool {
25602560
public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/Tool$Companion;
2561-
public fun <init> (Ljava/lang/String;Ljava/lang/String;Lio/modelcontextprotocol/kotlin/sdk/Tool$Input;Lio/modelcontextprotocol/kotlin/sdk/Tool$Output;Lio/modelcontextprotocol/kotlin/sdk/ToolAnnotations;)V
2561+
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/modelcontextprotocol/kotlin/sdk/Tool$Input;Lio/modelcontextprotocol/kotlin/sdk/Tool$Output;Lio/modelcontextprotocol/kotlin/sdk/ToolAnnotations;)V
25622562
public final fun component1 ()Ljava/lang/String;
25632563
public final fun component2 ()Ljava/lang/String;
2564-
public final fun component3 ()Lio/modelcontextprotocol/kotlin/sdk/Tool$Input;
2565-
public final fun component4 ()Lio/modelcontextprotocol/kotlin/sdk/Tool$Output;
2566-
public final fun component5 ()Lio/modelcontextprotocol/kotlin/sdk/ToolAnnotations;
2567-
public final fun copy (Ljava/lang/String;Ljava/lang/String;Lio/modelcontextprotocol/kotlin/sdk/Tool$Input;Lio/modelcontextprotocol/kotlin/sdk/Tool$Output;Lio/modelcontextprotocol/kotlin/sdk/ToolAnnotations;)Lio/modelcontextprotocol/kotlin/sdk/Tool;
2568-
public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/Tool;Ljava/lang/String;Ljava/lang/String;Lio/modelcontextprotocol/kotlin/sdk/Tool$Input;Lio/modelcontextprotocol/kotlin/sdk/Tool$Output;Lio/modelcontextprotocol/kotlin/sdk/ToolAnnotations;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/Tool;
2564+
public final fun component3 ()Ljava/lang/String;
2565+
public final fun component4 ()Lio/modelcontextprotocol/kotlin/sdk/Tool$Input;
2566+
public final fun component5 ()Lio/modelcontextprotocol/kotlin/sdk/Tool$Output;
2567+
public final fun component6 ()Lio/modelcontextprotocol/kotlin/sdk/ToolAnnotations;
2568+
public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/modelcontextprotocol/kotlin/sdk/Tool$Input;Lio/modelcontextprotocol/kotlin/sdk/Tool$Output;Lio/modelcontextprotocol/kotlin/sdk/ToolAnnotations;)Lio/modelcontextprotocol/kotlin/sdk/Tool;
2569+
public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/Tool;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/modelcontextprotocol/kotlin/sdk/Tool$Input;Lio/modelcontextprotocol/kotlin/sdk/Tool$Output;Lio/modelcontextprotocol/kotlin/sdk/ToolAnnotations;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/Tool;
25692570
public fun equals (Ljava/lang/Object;)Z
25702571
public final fun getAnnotations ()Lio/modelcontextprotocol/kotlin/sdk/ToolAnnotations;
25712572
public final fun getDescription ()Ljava/lang/String;
25722573
public final fun getInputSchema ()Lio/modelcontextprotocol/kotlin/sdk/Tool$Input;
25732574
public final fun getName ()Ljava/lang/String;
25742575
public final fun getOutputSchema ()Lio/modelcontextprotocol/kotlin/sdk/Tool$Output;
2576+
public final fun getTitle ()Ljava/lang/String;
25752577
public fun hashCode ()I
25762578
public fun toString ()Ljava/lang/String;
25772579
}
@@ -3045,8 +3047,8 @@ public class io/modelcontextprotocol/kotlin/sdk/server/Server : io/modelcontextp
30453047
public static synthetic fun addResource$default (Lio/modelcontextprotocol/kotlin/sdk/server/Server;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)V
30463048
public final fun addResources (Ljava/util/List;)V
30473049
public final fun addTool (Lio/modelcontextprotocol/kotlin/sdk/Tool;Lkotlin/jvm/functions/Function2;)V
3048-
public final fun addTool (Ljava/lang/String;Ljava/lang/String;Lio/modelcontextprotocol/kotlin/sdk/Tool$Input;Lio/modelcontextprotocol/kotlin/sdk/Tool$Output;Lio/modelcontextprotocol/kotlin/sdk/ToolAnnotations;Lkotlin/jvm/functions/Function2;)V
3049-
public static synthetic fun addTool$default (Lio/modelcontextprotocol/kotlin/sdk/server/Server;Ljava/lang/String;Ljava/lang/String;Lio/modelcontextprotocol/kotlin/sdk/Tool$Input;Lio/modelcontextprotocol/kotlin/sdk/Tool$Output;Lio/modelcontextprotocol/kotlin/sdk/ToolAnnotations;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)V
3050+
public final fun addTool (Ljava/lang/String;Ljava/lang/String;Lio/modelcontextprotocol/kotlin/sdk/Tool$Input;Ljava/lang/String;Lio/modelcontextprotocol/kotlin/sdk/Tool$Output;Lio/modelcontextprotocol/kotlin/sdk/ToolAnnotations;Lkotlin/jvm/functions/Function2;)V
3051+
public static synthetic fun addTool$default (Lio/modelcontextprotocol/kotlin/sdk/server/Server;Ljava/lang/String;Ljava/lang/String;Lio/modelcontextprotocol/kotlin/sdk/Tool$Input;Ljava/lang/String;Lio/modelcontextprotocol/kotlin/sdk/Tool$Output;Lio/modelcontextprotocol/kotlin/sdk/ToolAnnotations;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)V
30503052
public final fun addTools (Ljava/util/List;)V
30513053
protected fun assertCapabilityForMethod (Lio/modelcontextprotocol/kotlin/sdk/Method;)V
30523054
protected fun assertNotificationCapability (Lio/modelcontextprotocol/kotlin/sdk/Method;)V

src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/server/Server.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,7 @@ public open class Server(
206206
* Registers a single tool. The client can then call this tool.
207207
*
208208
* @param name The name of the tool.
209+
* @param title An optional human-readable name of the tool for display purposes.
209210
* @param description A human-readable description of what the tool does.
210211
* @param inputSchema The expected input schema for the tool.
211212
* @param outputSchema The optional expected output schema for the tool.
@@ -217,11 +218,12 @@ public open class Server(
217218
name: String,
218219
description: String,
219220
inputSchema: Tool.Input = Tool.Input(),
221+
title: String? = null,
220222
outputSchema: Tool.Output? = null,
221223
toolAnnotations: ToolAnnotations? = null,
222224
handler: suspend (CallToolRequest) -> CallToolResult
223225
) {
224-
val tool = Tool(name, description, inputSchema, outputSchema, toolAnnotations)
226+
val tool = Tool(name, title, description, inputSchema, outputSchema, toolAnnotations)
225227
addTool(tool, handler)
226228
}
227229

src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/types.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1110,6 +1110,10 @@ public data class Tool(
11101110
* The name of the tool.
11111111
*/
11121112
val name: String,
1113+
/**
1114+
* The title of the tool.
1115+
*/
1116+
val title: String?,
11131117
/**
11141118
* A human-readable description of the tool.
11151119
*/

0 commit comments

Comments
 (0)