Create Ktor extensions for StreamableHttpServerTransport.
Server should support both stateful and stateless operation mode.
1. Application-level extensions.
API might look like. Naming is an open question
application {
routing {
mcpStreamableHttp(config: StreamableHttpServerTransport.Configuration) { mcpServer }
}
}
2. Route-level extensions. API might look like
application {
install(SSE)
routing {
route("/mcp") {
mcpStreamableHttp(config: StreamableHttpServerTransport.Configuration) { mcpServer }
}
}
}
Definition of Done:
For both (Application+Route level extensions) x (Statefull+stateless mode) = (4 combinations):
- Routes implemented
- Integration test for happy scenario
- Unit tests for route initialization, like this
Related PRs:
Create Ktor extensions for StreamableHttpServerTransport.
Server should support both stateful and stateless operation mode.
1. Application-level extensions.
API might look like. Naming is an open question
application { routing { mcpStreamableHttp(config: StreamableHttpServerTransport.Configuration) { mcpServer } } }2. Route-level extensions. API might look like
application { install(SSE) routing { route("/mcp") { mcpStreamableHttp(config: StreamableHttpServerTransport.Configuration) { mcpServer } } } }Definition of Done:
For both (Application+Route level extensions) x (Statefull+stateless mode) = (4 combinations):
Related PRs:
StreamableHttpServerTransport.Configurationin Application Ktor extensions #563