MCP Kotlin Server Sample について
MCP Kotlin Server Sampleは、JVMとWASM向けの複数の動作モードと通信方式を示すKotlin製MCPサーバーのサンプルです。サーバー実装を学ぶ開発者向けに、プロンプト、リソース、ツールの管理機能を備えています。
主な機能
- 01JVMとWASMに対応
- 02stdioサーバーモード
- 03SSE通信モード
- 04プロンプト管理と変更通知
- 05リソースとツールの管理
活用シーン
- 01Kotlin MCPサーバー実装の参考
- 02JVMとWASMの実行方式を比較
- 03プロンプト、リソース、ツール機能のテスト
MCP 対応
stdioとSSEに対応するMCPサーバーの実装例で、プロンプト、リソース、ツールとリスト変更通知を提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Kotlin Server Sample
JVM と WASM の両方を対象に、さまざまなサーバー構成とトランスポート方式を示す、Kotlin による MCP(Model Communication Protocol)サーバーのサンプル実装です。
機能
- 複数のサーバー動作モード:
- 標準入出力サーバー(JVM のみ)
- シンプルな構成の SSE(Server-Sent Events)サーバー(JVM、WASM)
- Ktor プラグインを使用する SSE サーバー(JVM、WASM)
- 標準入出力サーバー(JVM のみ)
- マルチプラットフォーム対応
- 組み込みの機能:
- プロンプトの管理
- リソースの処理
- ツールの統合
はじめに
サーバーの実行
サーバーは JVM 上、または Node.js 上の Kotlin/WASM を使用して実行できます。
JVM:
JVM 上でサーバーを実行するには、次のコマンドを使用します(デフォルトでは、ポート 3001 で Ktor プラグインを使用する SSE モードで起動します)。
./gradlew runJvm
WASM:
Node.js 上の Kotlin/WASM を使用してサーバーを実行するには、次のコマンドを使用します(デフォルトでは、ポート 3001 で Ktor プラグインを使用する SSE モードで起動します)。
./gradlew wasmJsNodeDevelopmentRun
サーバーへの接続
JVM または WASM 上のサーバーの場合:
- サーバーを起動します
- MCP inspector を使用して
http://localhost:<port>/sseに接続します
サーバーの機能
- プロンプト:リストの変更通知を含むプロンプト管理に対応しています
- リソース:サブスクリプションへの対応とリストの変更通知を含みます
- ツール:リストの変更通知を含むツール管理に対応しています
実装の詳細
サーバーは次の技術を使用して実装されています:
- HTTP サーバー機能には Ktor
- 非同期処理には Kotlin コルーチン
- リアルタイム通信には SSE
- コマンドラインインターフェイスには標準入出力
- JVM と WASM の両方のターゲットで共有される共通の Kotlin コード
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。