- 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
85 lines
2.5 KiB
Markdown
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. |
|