AI-generated tasks
Critical Missing Features
1. Protocol Version ❌
Current: LATEST_PROTOCOL_VERSION = "2025-06-18"
Required: LATEST_PROTOCOL_VERSION = "2025-11-25"
Files:
kotlin-sdk-core/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/types/common.kt:13
2. Task Augmentation System ❌ (Complete Feature Missing)
The entire task system is absent from the Kotlin SDK.
2.1 Missing Core Types
2.2 Missing RequestParams Field
2.3 Missing Request/Response Types
2.4 Missing Notifications
2.5 Missing DSL Builders
3. Tool Use in Sampling ❌
3.1 Missing CreateMessageRequestParams Fields
File: kotlin-sdk-core/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/types/sampling.kt:191
// Current implementation missing:
public data class CreateMessageRequestParams (
// ... existing fields ...
// ❌ Missing: val tools: List<Tool>? = null,
// ❌ Missing: val toolChoice: ToolChoice? = null,
) : RequestParams
Required:
3.2 Missing ToolChoice Type
Required TypeScript Definition:
export interface ToolChoice {
mode ?: "auto" | "required" | "none" ;
}
3.3 Missing Content Types for Tool Use
File: kotlin-sdk-core/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/types/content.kt
Current ContentTypes enum:
public enum class ContentTypes (public val value : String ) {
TEXT (" text" ),
IMAGE (" image" ),
AUDIO (" audio" ),
RESOURCE_LINK (" resource_link" ),
EMBEDDED_RESOURCE (" resource" ),
// ❌ Missing: TOOL_USE("tool_use"),
// ❌ Missing: TOOL_RESULT("tool_result"),
}
Required:
3.4 Missing StopReason Value
File: kotlin-sdk-core/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/types/sampling.kt:248
Current:
public value class StopReason (public val value : String ) {
public companion object {
public val EndTurn : StopReason = StopReason (" endTurn" )
public val StopSequence : StopReason = StopReason (" stopSequence" )
public val MaxTokens : StopReason = StopReason (" maxTokens" )
// ❌ Missing: public val ToolUse: StopReason = StopReason("toolUse")
}
}
4. Structured Capabilities ⚠️ (Partially Implemented)
4.1 ClientCapabilities - Needs Nested Structures
File: kotlin-sdk-core/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/types/capabilities.kt:50
Current (Flat):
public data class ClientCapabilities (
public val sampling : JsonObject ? = null , // ⚠️ Should be structured
public val roots : Roots ? = null , // ✓ OK
public val elicitation : JsonObject ? = null , // ⚠️ Should be structured
public val experimental : JsonObject ? = null , // ✓ OK
// ❌ Missing: public val tasks: Tasks? = null
)
Required:
Create SamplingCapability data class:
data class SamplingCapability (
val context : JsonObject ? = null ,
val tools : JsonObject ? = null ,
)
Create ElicitationCapability data class:
data class ElicitationCapability (
val form : JsonObject ? = null ,
val url : JsonObject ? = null ,
)
Create TasksCapability with nested structure:
data class TasksCapability (
val list : JsonObject ? = null ,
val cancel : JsonObject ? = null ,
val requests : TasksRequestCapability ? = null ,
)
data class TasksRequestCapability (
val sampling : TasksSamplingCapability ? = null ,
val elicitation : TasksElicitationCapability ? = null ,
)
data class TasksSamplingCapability (
val createMessage : JsonObject ? = null ,
)
data class TasksElicitationCapability (
val create : JsonObject ? = null ,
)
Update ClientCapabilities to use these types
Update ClientCapabilitiesBuilder in capabilities.dsl.kt
4.2 ServerCapabilities - Missing Tasks
File: kotlin-sdk-core/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/types/capabilities.kt:94
Current:
public data class ServerCapabilities (
val tools : Tools ? = null ,
val resources : Resources ? = null ,
val prompts : Prompts ? = null ,
val logging : JsonObject ? = null ,
val completions : JsonObject ? = null ,
val experimental : JsonObject ? = null ,
// ❌ Missing: val tasks: Tasks? = null,
)
Required:
Implementation Checklist Summary
Phase 1: Core Types (High Priority)
Phase 2: Request/Response Types (High Priority)
Phase 3: Capabilities (Medium Priority)
Phase 4: DSL Builders (Medium Priority)
Phase 5: Testing & Documentation
Quick Reference: What's Already Implemented ✓
✓ CallToolResult.structuredContent - Already present
✓ CreateMessageResult.stopReason - Already present (but missing "toolUse" value)
✓ Tool.outputSchema - Already present
✓ Basic content types (text, image, audio, resource_link, embedded_resource)
✓ Tool annotations with hints (readOnlyHint, destructiveHint, etc.)
Breaking Changes Warning
Implementing full spec compliance will require breaking changes to:
RequestParams interface (adding task field)
ClientCapabilities structure (changing from JsonObject to nested types)
ServerCapabilities structure (adding tasks)
CreateMessageRequestParams (adding tools/toolChoice)
ContentTypes enum (adding new variants)
SamplingMessage content type (supporting tool content)
Consider versioning strategy before implementation.
References
Spec Version: DRAFT-2025-v3 (TypeScript specification)
Current SDK Version: 2025-06-18
Related PR: Proposal: DSL Builders for request types #399 (DSL builders - does not include spec alignment)
Key Files: kotlin-sdk-core/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/types/
Overview
The Kotlin SDK currently implements protocol version
2025-06-18but is missing several features defined in the2025-11TypeScript specification. This issue tracks the discrepancies and required implementations.AI-generated tasks
Critical Missing Features
1. Protocol Version ❌
Current:
LATEST_PROTOCOL_VERSION = "2025-06-18"Required:
LATEST_PROTOCOL_VERSION = "2025-11-25"Files:
kotlin-sdk-core/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/types/common.kt:132. Task Augmentation System ❌ (Complete Feature Missing)
The entire task system is absent from the Kotlin SDK.
2.1 Missing Core Types
TaskMetadata- Metadata for task-augmented requestsTask- Task state data (taskId, status, createdAt, ttl, etc.)TaskStatus- Enum:working | input_required | completed | failed | cancelledRelatedTaskMetadata- For associating messages with tasks2.2 Missing RequestParams Field
task: TaskMetadata?field toRequestParamsinterfacekotlin-sdk-core/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/types/request.kt:292.3 Missing Request/Response Types
CreateTaskResult- Response to task-augmented requestsGetTaskRequest/GetTaskResult- Retrieve task stateGetTaskPayloadRequest/GetTaskPayloadResult- Retrieve completed task resultCancelTaskRequest/CancelTaskResult- Cancel a running taskListTasksRequest/ListTasksResult- List all tasks2.4 Missing Notifications
TaskStatusNotification- Notification of task status changesTaskStatusNotificationParams2.5 Missing DSL Builders
RequestBuilderto support task metadataGetTaskRequestBuilderListTasksRequestBuilderCancelTaskRequestBuilder3. Tool Use in Sampling ❌
3.1 Missing CreateMessageRequestParams Fields
File:
kotlin-sdk-core/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/types/sampling.kt:191Required:
tools: List<Tool>?parametertoolChoice: ToolChoice?parameterCreateMessageRequestBuilderDSL to support these fields3.2 Missing ToolChoice Type
Required TypeScript Definition:
ToolChoicedata class3.3 Missing Content Types for Tool Use
File:
kotlin-sdk-core/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/types/content.ktCurrent ContentTypes enum:
Required:
TOOL_USEto ContentTypes enumTOOL_RESULTto ContentTypes enumToolUseContentdata class with fields:type: "tool_use"id: Stringname: Stringinput: JsonObject_metaToolResultContentdata class with fields:type: "tool_result"toolUseId: Stringcontent: List<ContentBlock>structuredContent: JsonObject?isError: Boolean?_metaSamplingMessage.contenttype to support tool content blockscontent.dsl.kt3.4 Missing StopReason Value
File:
kotlin-sdk-core/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/types/sampling.kt:248Current:
ToolUsestop reason value4. Structured Capabilities⚠️ (Partially Implemented)
4.1 ClientCapabilities - Needs Nested Structures
File:
kotlin-sdk-core/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/types/capabilities.kt:50Current (Flat):
Required:
SamplingCapabilitydata class:ElicitationCapabilitydata class:TasksCapabilitywith nested structure:ClientCapabilitiesto use these typesClientCapabilitiesBuilderincapabilities.dsl.kt4.2 ServerCapabilities - Missing Tasks
File:
kotlin-sdk-core/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/types/capabilities.kt:94Current:
Required:
ServerTasksCapabilitydata class:tasksfield toServerCapabilitiesImplementation Checklist Summary
Phase 1: Core Types (High Priority)
"DRAFT-2025-v3"RequestParams.taskfieldPhase 2: Request/Response Types (High Priority)
toolsandtoolChoiceto CreateMessageRequestParamsPhase 3: Capabilities (Medium Priority)
Phase 4: DSL Builders (Medium Priority)
Phase 5: Testing & Documentation
Quick Reference: What's Already Implemented ✓
CallToolResult.structuredContent- Already presentCreateMessageResult.stopReason- Already present (but missing "toolUse" value)Tool.outputSchema- Already presentBreaking Changes Warning
Implementing full spec compliance will require breaking changes to:
RequestParamsinterface (addingtaskfield)ClientCapabilitiesstructure (changing from JsonObject to nested types)ServerCapabilitiesstructure (adding tasks)CreateMessageRequestParams(adding tools/toolChoice)ContentTypesenum (adding new variants)SamplingMessagecontent type (supporting tool content)Consider versioning strategy before implementation.
References
DRAFT-2025-v3(TypeScript specification)2025-06-18kotlin-sdk-core/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/types/