mcpField
Q
Quarkus + MCP = Agentic

Quarkus + MCP = Agentic

ローカル
github.com/jamesfalknerAI・エージェント282 週間前に更新

Quarkus + MCP = Agentic について

Quarkus + MCP = Agentic は、Quarkus と LangChain4j で構築されたエージェントアプリのサンプルです。複数の MCP サーバーを使い、検索、地図、Slack などに関わる依頼を処理するアシスタントを示します。

主な機能

  1. 01Quarkus と LangChain4j のアプリ
  2. 02複数の MCP サーバーを利用
  3. 03Dev UI での LLM チャット
  4. 04テスト用 Web フロントエンド
  5. 05Grafana でのテレメトリー確認

活用シーン

  1. 01複数ステップのエージェント依頼を試す
  2. 02MCP サーバー間のツール利用を調べる
  3. 03Dev UI で設定済み LLM とチャット
  4. 04Web フロントエンドでアシスタントをテスト

MCP 対応

LangChain4j の MCP クライアントを使って複数の MCP サーバーに接続します。README ではエージェントアプリとして説明されており、独自の MCP ツールを公開するとは記載されていません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Quarkus + MCP = エージェント型アプリ

このプロジェクトでは、Supersonic Subatomic Java Framework である Quarkus と Model Context Protocol を使用して、複数の MCP サーバーと Quarkus + LangChain4j を利用するシンプルなエージェント型アプリを実装しています。

Quarkus について詳しく知りたい場合は、ウェブサイトをご覧ください:https://quarkus.io/ 。

開発モードでアプリケーションを実行する

MCP サービスの起動に使用する node と npm をインストールする必要があります。お使いのシステムにインストールするには、推奨される方法に従ってください。

組み込みのテレメトリーを確認する場合は、コンテナー環境(Podman または Docker など)も必要です。アプリの起動後に Dev UI を開き、Grafana のリンクを探すとアクセスできます。コンテナー環境がない場合は、application.properties のテレメトリーに関する部分をコメントアウトしてください。

filesystem MCP サーバーを使用する場合は、クローンしたリポジトリのルートフォルダーに playground というディレクトリを作成してください(または、application.properties で別の名前に変更してください。ただし、ディレクトリは存在している必要があります)。

複数の MCP サービスでは API キーが必要です。キーの取得先はこちらです:

これらをすべて用意したら、最も簡単な方法は、クローンしたリポジトリに .env というファイルを作成することです(このファイルは .gitignore に記載されているため、このリポジトリをフォークしてファイルを作成しても GitHub にプッシュされません)。.env ファイルは次のようになります:

quarkus.langchain4j.mcp.bravesearch.environment.BRAVE_API_KEY=<YOUR BRAVE API KEY HERE>
quarkus.langchain4j.mcp.googlemaps.environment.GOOGLE_MAPS_API_KEY=<YOUR GMAPS API KEY HERE>
quarkus.langchain4j.mcp.slack.environment.SLACK_BOT_TOKEN=<YOUR SLACK BOT TOKEN HERE>
quarkus.langchain4j.mcp.slack.environment.SLACK_TEAM_ID=<YOUR SLACK TEAM ID HERE>
quarkus.langchain4j.openai.api-key=<YOUR OPENAI API KEY HERE>

これらの変数は、Quarkus を開発モードで実行すると自動的に読み込まれます。application.properties に直接記述することもできますが、公開リポジトリにコミットしないよう注意してください!

本番環境では、これらの値は適切に取り扱い、Vault や Kubernetes Secrets などの安全な場所に保存し、実行時に環境変数として注入してください。

テストするには、ライブコーディングを有効にする開発モードでアプリケーションを実行します:

./mvnw compile quarkus:dev

開発モードでは、Dev UI の「Extensions」を開いて「Chat」をクリックすると、設定済みの LLM とチャットできます。システムメッセージには、Bot.java の内容があらかじめ入力されています。

NOTE: Quarkus には Dev UI が標準で付属しています。開発モードでのみ http://localhost:8080/q/dev/ から利用できます。

アプリのテスト

アシスタントをテストするためのシンプルなフロントエンドアプリがあります。http://localhost:8080 にアクセスすると、次の画面が表示されます:

ランディングページ

左下にあるチャットボックスのアイコンをクリックし、サンプルのプロンプトを入力して、エージェントの推論を使ってさまざまなツールを呼び出す様子を確認してください:

My name is John Doe. I am a member of a team of 2 myself and Daniel Jane. I like Asian food, while Daniel is on a strict gluten-free diet.

Please find one good restaurant in Atlanta, GA with the highest rating that meets
the team's dietary needs and preferences. Then, invite the team to a lunch
at 12pm next Wednesday using the slack channel "#lunchtime".
In your message, include the name and description of the restaurant, the time and
date of the lunch, and driving directions from Georgia World Congress Center.
Also create an ICS calendar file for me to use in my calendar in the
"playground/calendar" directory.`

さらに、次のような簡単な追加のプロンプトも試してみてください:

  • そのおすすめを導き出すために、どのような推論をしましたか?
  • そのレストランをどのように選びましたか?
  • 各ステップでどのような操作を行い、どのツールを使いましたか?
  • なぜグルテンフリーのレストランを検索したのですか?
  • チームの各メンバーについて、何を覚えていましたか?

開発モードでは、Dev UI の「Extensions」を開いて「Chat」をクリックすると、設定済みの LLM とチャットすることもできます。システムメッセージには、Bot.java の内容があらかじめ入力されています。

NOTE: Quarkus には Dev UI が標準で付属しています。開発モードでのみ http://localhost:8080/q/dev/ から利用できます。

アプリケーションのパッケージング と実行

アプリケーションは以下を使用してパッケージングできます:

./mvnw package

これにより、target/quarkus-app/ ディレクトリに quarkus-run.jar ファイルが生成されます。 依存関係が target/quarkus-app/lib/ ディレクトリにコピーされるため、über-jar ではないことに注意してください。

アプリケーションは java -jar target/quarkus-app/quarkus-run.jar を使用して実行できるようになります。

über-jar をビルドしたい場合は、以下のコマンドを実行してください:

./mvnw package -Dquarkus.package.type=uber-jar

über-jar としてパッケージングされたアプリケーションは java -jar target/*-runner.jar を使用して実行できるようになります。

ネイティブ実行ファイルの作成

ネイティブ実行ファイルは以下を使用して作成できます:

./mvnw package -Dnative

または、GraalVM がインストールされていない場合は、以下を使用してコンテナでネイティブ実行ファイルビルドを実行できます:

./mvnw package -Dnative -Dquarkus.native.container-build=true

その後、ネイティブ実行ファイルを ./target/research-1.0-SNAPSHOT-runner で実行できます。

ネイティブ実行ファイルのビルドについてさらに詳しく知りたい場合は、https://quarkus.io/guides/maven-tooling を参照してください。

関連ガイド

  • LangChain4j Model Context Protocol クライアント (ガイド): LangChain4j 用の Model Context Protocol クライアント側の実装を提供します
  • LangChain4j OpenAI (ガイド): LangChain4j との基本的な統合を提供します

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。