kotlin-sdk/samples/kotlin-mcp-server/README.md
Pavel Gorgulov 0b39f57cff
docs: streamable server sample (#595)
- add a simple streamable http server example with auth
- update readme: replace quickstart example from sse server to
streamable server
- add readme files for samples, simple-streamable-server, notebooks

closes #170 

## How Has This Been Tested?
knit and inspector

## Breaking Changes
NaN

## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [x] 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
- [x] I have added or updated documentation as needed
2026-03-10 12:45:21 +01:00

85 lines
2.5 KiB
Markdown

# Kotlin MCP Server
A sample MCP server demonstrating multiple transport modes: STDIO, SSE (plain), and SSE (Ktor
plugin).
> **Note:** The SSE transport modes are provided for backward compatibility. For new projects,
> consider using the [simple-streamable-server](../simple-streamable-server) sample, which uses the
> recommended Streamable HTTP transport.
## Overview
This sample registers a prompt, a tool, and a resource, then lets you choose how to expose them.
STDIO mode is the default and is best for process-based clients. The two SSE modes show how to
serve MCP over HTTP using either a manual Ktor routing setup or the built-in `mcp { }` Ktor plugin.
## Prerequisites
- JDK 17+
- [MCP Inspector](https://modelcontextprotocol.io/docs/tools/inspector) (optional, for testing)
## Build & Run
### STDIO mode (default)
```shell
./gradlew run
```
Or explicitly:
```shell
./gradlew run --args="--stdio"
```
Connect with the MCP Inspector:
```shell
npx @modelcontextprotocol/inspector --config samples/kotlin-mcp-server/mcp-inspector-config.json --server stdio-server
```
### SSE with Ktor plugin
```shell
./gradlew run --args="--sse-server-ktor 3002"
```
Connect with the MCP Inspector:
```shell
npx @modelcontextprotocol/inspector --config samples/kotlin-mcp-server/mcp-inspector-config.json --server sse-ktor-server
```
### SSE with plain configuration
> **Known issue:** This mode may not work correctly at this time.
```shell
./gradlew run --args="--sse-server 3001"
```
Connect with the MCP Inspector:
```shell
npx @modelcontextprotocol/inspector --config samples/kotlin-mcp-server/mcp-inspector-config.json --server sse-server
```
## MCP Capabilities
### Tools
| Name | Description |
|-------------------|------------------------------------------------------|
| `kotlin-sdk-tool` | A test tool that returns a "Hello, world!" greeting. |
### Prompts
| Name | Description |
|--------------------|------------------------------------------------------------------------------------|
| `Kotlin Developer` | Generates a prompt to develop a small Kotlin application for a given project name. |
### Resources
| Name | URI | Description |
|--------------|-----------------------|---------------------------------------------------------|
| `Web Search` | `https://search.com/` | A placeholder resource demonstrating resource handling. |