feat: add notification for elicitation complete (#667)

closes #546 

## How Has This Been Tested?
unit

## Breaking Changes
none

## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update

## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
This commit is contained in:
Pavel Gorgulov 2026-04-02 12:37:33 +02:00 • committed by GitHub
commit e5e5ec206f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -7,6 +7,8 @@ import io.kotest.matchers.string.shouldNotBeBlank
import io.modelcontextprotocol.kotlin.sdk.types.CallToolRequest
import io.modelcontextprotocol.kotlin.sdk.types.CallToolRequestParams
import io.modelcontextprotocol.kotlin.sdk.types.ClientCapabilities
import io.modelcontextprotocol.kotlin.sdk.types.ElicitationCompleteNotification
import io.modelcontextprotocol.kotlin.sdk.types.ElicitationCompleteNotificationParams
import io.modelcontextprotocol.kotlin.sdk.types.GetPromptRequest
import io.modelcontextprotocol.kotlin.sdk.types.GetPromptRequestParams
import io.modelcontextprotocol.kotlin.sdk.types.ListRootsRequest
@ -77,6 +79,8 @@ class ClientConnectionTest : AbstractServerFeaturesTest() {
val loggingMessage = onClientNotification<LoggingMessageNotification>(Method.Defined.NotificationsMessage)
val resourceUpdated =
onClientNotification<ResourceUpdatedNotification>(Method.Defined.NotificationsResourcesUpdated)
val elicitationComplete =
onClientNotification<ElicitationCompleteNotification>(Method.Defined.NotificationsElicitationComplete)
init {
onClientRequest<ListRootsRequest, ListRootsResult>(Method.Defined.RootsList) {
@ -109,6 +113,12 @@ class ClientConnectionTest : AbstractServerFeaturesTest() {
withClue("sendResourceUpdated() delivered wrong URI") {
resourceUri shouldBe "test://res"
}
withClue("sendElicitationComplete() did not deliver a notification to the client") {
elicitationComplete.isCompleted shouldBe true
}
withClue("sendElicitationComplete() delivered wrong elicitationId") {
elicitationComplete.await().params.elicitationId shouldBe "elicit-123"
}
capturedSessionId.shouldNotBeBlank()
}
}
@ -128,6 +138,9 @@ class ClientConnectionTest : AbstractServerFeaturesTest() {
),
)
sendResourceUpdated(ResourceUpdatedNotification(ResourceUpdatedNotificationParams("test://res")))
sendElicitationComplete(
ElicitationCompleteNotification(ElicitationCompleteNotificationParams(elicitationId = "elicit-123")),
)
cap.sessionId.complete(sessionId)
}