Quarkus Model Context Protocol (MCP) Server について
Quarkus アプリで MCP サーバーを構築する開発者向けの拡張機能です。宣言型とプログラム型の API でサーバー機能を定義できます。
主な機能
- 01宣言型とプログラム型の API
- 02CDI の注釈付きビジネスメソッド
- 03HTTP/SSE と Streamable HTTP のトランスポート
- 04STDIO トランスポートの選択肢
活用シーン
- 01Quarkus アプリへの MCP 機能の追加
- 02プロンプト、リソース、ツールの定義
- 03HTTP または STDIO でのサービス提供
MCP 対応
Quarkus アプリで MCP サーバー機能を実装できます。アプリはプロンプト、リソース、ツールを MCP クライアントに公開できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Quarkus MCP Server
この Quarkus エクステンションは、開発者が MCP1 サーバーの機能を簡単に実装できるようにする、宣言型およびプログラム型の API を提供します。
メモ
LangChain4j プロジェクトは、低レベルのプログラム型 API として、または AI を活用したアプリケーションへのフル機能の統合として、MCP クライアント機能を提供します。
はじめに
ステップ #1
次の依存関係を POM ファイルに追加します。
<dependency>
<groupId>io.quarkiverse.mcp</groupId>
<artifactId>quarkus-mcp-server-http</artifactId>
<version>${quarkus-mcp-server-version}</version>
</dependency>
メモ
この依存関係には、従来の「HTTP/SSE」トランスポートと「Streamable HTTP」トランスポートの両方が含まれます。代わりに STDIO トランスポートを使用する場合は、quarkus-mcp-server-stdioartifactId を使用してください。詳細については、ドキュメントのトランスポートのセクションもご覧ください。
ステップ #2
CDI Bean の_アノテーション付きビジネスメソッド_として、サーバー機能(プロンプト、リソース、ツール)を追加します。
import jakarta.inject.Inject;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import io.quarkiverse.mcp.server.BlobResourceContents;
import io.quarkiverse.mcp.server.Prompt;
import io.quarkiverse.mcp.server.PromptArg;
import io.quarkiverse.mcp.server.PromptMessage;
import io.quarkiverse.mcp.server.Resource;
import io.quarkiverse.mcp.server.TextContent;
import io.quarkiverse.mcp.server.Tool;
// This class is automatically registered as a @Singleton CDI bean
public class MyFeatures {
@Inject
CodeService codeService;
@Tool(description = "Converts the string value to lower case")
String toLowerCase(String value) {
return value.toLowerCase();
}
@Prompt(name = "code_assist")
PromptMessage codeAssist(@PromptArg(name = "lang") String language) {
return PromptMessage.withUserRole(new TextContent(codeService.assist(language)));
}
@Resource(uri = "file:///project/alpha.txt")
byte[] alpha() throws IOException{
return Files.readAllBytes(Path.of("alpha.txt"));
}
}
ステップ #3
Quarkus アプリを実行して、楽しみましょう!
ドキュメント
ドキュメント全文は https://quarkiverse.github.io/quarkiverse-docs/quarkus-mcp-server/dev/index.html でご覧いただけます。
コントリビューター ✨
次の素晴らしい方々に感謝します(絵文字キー):
このプロジェクトは、all-contributors の仕様に準拠しています。あらゆる種類の貢献を歓迎します!
Footnotes
-
「Model Context Protocol(MCP)は、LLM アプリケーションと外部データソースやツールをシームレスに統合するオープンプロトコルです。」 ↩
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。