mcpField
S
sindi-ai-mcp-server

sindi-ai-mcp-server

ローカル
github.com/sinditech開発ツール120 週間前に更新

sindi-ai-mcp-server について

Jakarta EE アプリケーション向けの Java MCP サーバー実装で、モジュール構成と REST または Servlet のランタイムを備えています。アノテーションやマネージャーを使って、ツール、プロンプト、リソース、リソーステンプレートを登録できます。

主な機能

  1. 01モジュール型サーバー構成
  2. 02REST と Servlet のランタイム
  3. 03SSE と Streamable HTTP のトランスポート
  4. 04アノテーションによる MCP 登録
  5. 05ツール、プロンプト、リソース対応

活用シーン

  1. 01Jakarta EE アプリに MCP 機能を組み込む
  2. 02REST または Servlet で MCP サーバーを展開する
  3. 03Java サービスにツールやリソースを登録する

MCP 対応

REST または Servlet のトランスポートを通じて、ツール、プロンプト、リソース、リソーステンプレートを MCP クライアントに公開する MCP サーバー実装です。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

sindi-ai-mcp-server

Anthropic の Model Context Protocol(MCP)サーバーの Java 実装です。

この実装は、MCP プロトコルと Jakarta EE アプリケーションをシームレスに統合することを目指しています。

🏗️ アーキテクチャ

このプロジェクトはいくつかのモジュールで構成されており、それぞれが特定の役割を担っています。

コアモジュール
  • sindi-ai-mcp-server-spi:サーバーサイドの基本的な MCP クラス、インターフェース、アノテーション、SPI 定義
  • sindi-ai-mcp-server-runtime:実行時のサーバー登録とサービス検出を行う、SPI の実行時実装。
  • sindi-ai-mcp-server-features:MCP の機能を紹介する例を含む、本番環境向けの MCP 機能。Jakarta EE 方式で MCP の力を示します。

実行環境の実装は 2 種類あります。

  • runtime-rest:Jakarta REST を使用した RESTful MCP サーバーサイドトランスポートの実装を含むモジュールです。

    • sindi-ai-mcp-server-runtime-rest-base:以下に記載するすべての Jakarta REST 実装で使用される、Jakarta REST の基本パッケージです。
    • sindi-ai-mcp-server-runtime-rest-sse:MCP SSE トランスポートの Jakarta REST 実装です。
    • sindi-ai-mcp-server-runtime-rest-streamable-http:MCP Streamable HTTP トランスポートの Jakarta REST 実装です。
  • runtime-servlet:Jakarta Servlet を使用したウェブベースの MCP サーバーサイドトランスポートの実装を含むモジュールです。

    • sindi-ai-mcp-server-runtime-servlet-sse:MCP SSE トランスポートの Jakarta Servlet 実装です。
    • sindi-ai-mcp-server-runtime-servlet-streamable-http:MCP Streamable HTTP トランスポートの Jakarta Servlet 実装です。

🚀 クイックスタート

1. 依存関係を追加する

アプリケーションでは、Servlet または REST の実行環境のいずれかを選択する必要があります(エンドポイントが競合する可能性があるため、両方は選択しないでください)。

必要な依存関係を pom.xml に追加します。

  • Servlet の場合:
<dependency>
	<groupId>za.co.sindi</groupId>
	<artifactId>sindi-ai-mcp-server-runtime-servlet</artifactId>
	<version>${project.version}</version>
</dependency>

  • REST の場合:
<dependency>
	<groupId>za.co.sindi</groupId>
	<artifactId>sindi-ai-mcp-server-runtime-rest</artifactId>
	<version>${project.version}</version>
</dependency>

2. MCP 機能サービスを定義する

MCP 機能は、通常の POJO または CDI 管理 Bean に登録できます。

以下の MCP 機能がサポートされています。

  • Tools:メソッドでサポートされるアノテーションは @Tool と @ToolArgument です。LangChain4J のツールアノテーションもサポートされています。メソッドの戻り値の型は String である必要があります。
  • Prompts:メソッドでサポートされるアノテーションは @Prompt と @PromptArgument です。メソッドの戻り値の型は PromptMessage または PromptMessage[] である必要があります。
  • Resource:メソッドでサポートされるアノテーションは @Resource です(アノテーション属性 uri は必須です)。メソッドの戻り値の型は ResourceContents[](BlobResourceContents または TextResourceContents のいずれか)である必要があります。
  • Resource template:メソッドでサポートされるアノテーションは @ResourceTemplate です(アノテーション属性 uri は必須です)。メソッドの戻り値の型は ResourceTemplate[] である必要があります。

よりプログラム的な方法として、MCP サーバーの実行環境に適切なマネージャーを注入し、コールバックハンドラーとともに MCP 機能を登録できます。

  • ToolManager:ツールの登録に使用します。
  • PromptManager:プロンプトの登録に使用します。
  • ResourceManager:リソースとリソーステンプレートの登録に使用します。

さらに、以下の MCP リソースを注入できます。

  • MCPLogger:クライアントセッションへの MCP ロギング(有効な場合)。
  • MCPContext:手動で MCP 機能とクライアントセッションを提供する MCP コンテキスト。

📖 例

このプロジェクトには、examples/ ディレクトリに MCP サーバーの包括的な例が含まれています。例は 2 つあり、それぞれ異なる Jakarta EE サーバープロトコルで MCP を示しています(sindi-ai-mcp-server-features モジュールをバンドルし、各 Jakarta EE サーバープロトコルで MCP 機能を公開します)。

  • sindi-ai-mcp-server-rest:MCP サーバー(MCP 機能をバンドル)を REST プロトコルで実行します。
  • sindi-ai-mcp-server-servlet:MCP サーバー(MCP 機能をバンドル)を Servlet プロトコルで実行します。

🛠️ サンプルの実行方法

  1. プロジェクト全体を Git clone します。
  2. プロジェクトをビルドします。
mvn clean package -e
  1. cd examples/sindi-ai-mcp-server-xxxx/ を実行します。xxxx には rest または servlet を指定できます。

  2. 次のようにアプリケーションを実行します。

mvn clean liberty:dev -e
  1. 新しいターミナルを開き、MCP Inspector を起動します。
npx -y @modelcontextprotocol/inspector@latest

ブラウザーが自動的に開き、MCP Inspector が表示されます。

  1. リンクをコピーして、MCP サーバーに接続します。

SSE の場合、リンクは http://localhost:9080/sse です。 Streamable HTTP の場合、リンクは http://localhost:9080/mcp です。

MCP Inspector で接続をクリックし、MCP の機能をテストします。

🤝 コントリビューション

コントリビューションに参加する場合は、CONTRIBUTING.md をご覧ください。

📄 ライセンス

このプロジェクトは Apache License 2.0 の下でライセンスされています。詳細は LICENSE ファイルをご覧ください。

🌟 はじめに

エンタープライズ Java アプリケーションに AI を統合する準備はできていますか?

  1. サンプルを確認する:まず、examples/ ディレクトリにある MCP 固有のサンプルをご覧ください。
  2. ドキュメントを読む:詳細な設定オプションについては、各モジュールのドキュメントをご確認ください。
  3. コントリビューションに参加する:問題を報告したり、プルリクエストを送信したりして、プロジェクトの改善にご協力ください。

コメント

MCP は初めてですか?

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

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