1.8 KiB
1.8 KiB
| applyTo | description |
|---|---|
| * | QuarkusとHTTP SSE転送を使用したMCPサーバーの開発標準と指針 |
Quarkus MCPサーバー
Java 21、Quarkus、HTTP SSE転送を使用してMCPサーバーを構築する。
スタック
- Quarkus FrameworkでのJava 21
- MCPサーバー拡張:
mcp-server-sse - 依存性注入のためのCDI
- MCPエンドポイント:
http://localhost:8080/mcp/sse
クイックスタート
quarkus create app --no-code -x rest-client-jackson,qute,mcp-server-sse your-domain-mcp-server
構造
- 標準的なJava命名規則を使用する(PascalCaseクラス、camelCaseメソッド)
- パッケージで整理:
model、repository、service、mcp - 不変データモデルにはRecordタイプを使用する
- 不変データの状態管理はリポジトリレイヤーで管理する必要がある
- パブリックメソッドにJavadocを追加する
MCPツール
@ApplicationScopedCDI Beanのパブリックメソッドである必要がある@Tool(name="tool_name", description="明確な説明")を使用するnullを返してはならない - 代わりにエラーメッセージを返す- 常にパラメータを検証し、エラーを適切に処理する
アーキテクチャ
- 関心の分離:MCPツール → サービス層 → リポジトリ
- 依存性注入には
@Injectを使用する - データ操作をスレッドセーフにする
- ヌルポインタ例外を避けるため
Optional<T>を使用する
一般的な問題
- MCPツールにビジネスロジックを置かない(サービス層を使用する)
- ツールから例外を投げない(エラー文字列を返す)
- 入力パラメータの検証を忘れない
- エッジケース(null、空の入力)でテストする