Lightweight Java MCP SDK: AJ-MCP について
AJ-MCP は MCP クライアントとサーバーを構築するための軽量な Java 向け SDK です。Java 8 や Spring Boot 2.x に留まる既存システムを対象とし、Jackson と OkHttp を基盤とした小さな API を提供します。
主な機能
- 01Java 8 以降への対応
- 02STDIO、HTTP/SSE、Streamable HTTP のトランスポート
- 03複数の MCP プロトコルリビジョンとバージョン交渉
- 04アノテーションによるツールと機能の宣言
活用シーン
- 01既存の Java サービスを MCP ツールやプロンプトとして公開する
- 02Spring Boot 2.x や Servlet アプリケーションに MCP を組み込む
- 03Java のデスクトップやサーバーアプリからローカルの STDIO MCP プロセスに接続する
MCP 対応
本プロジェクトは MCP SDK であり、MCP クライアントに機能を公開するサーバーの開発と、MCP サーバーに接続するクライアントの開発の両方に使用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
AJ-MCP
軽量な Java MCP SDK
AJ-MCP は、Java 用の軽量な Model Context Protocol(MCP)SDK です。Java 8 または Spring Boot 2.x を使い続ける必要がある既存システム向けに、MCP クライアントとサーバーを構築するための、簡潔で直接的な API を提供します。
- Java 8 以降と Spring Boot 2.x に対応しています。
- 軽量かつコンパクトで、主なランタイム依存関係には Jackson JSON と OkHttp を使用しています。
- 使いやすく拡張しやすい設計で、サンプルとバイリンガルのドキュメントを用意しています。
- STDIO、従来の HTTP/SSE トランスポート、Streamable HTTP に対応しています。
- MCP プロトコルのリビジョン
2024-11-05、2025-03-26、2025-06-18を、バージョンネゴシエーションとともに実装しています。 - ツール、リソース、リソーステンプレート、プロンプト、補完、ページネーション、サブスクリプション、キャンセル、ロギング、ルート、サンプリング、引き出しに対応しています。
MCP SDK コンポーネントに関する以下の 3 つのプロジェクトをご覧ください。
独立した AJ MCP Next プロジェクトは、AJ Util を使用し、Java 8 上で 2026-07-28 を対象としています。
このレガシー SDK とは別に、STDIO とセッションレス HTTP アダプターを備えたコア/クライアント/サーバーモジュールがあります。
- AJ MCP Common:AJ-MCP の共通ライブラリです。Model Context Protocol の実装と、その他の共通クラスが含まれています。
- AJ MCP Client:MCP クライアント SDK です。
- AJ MCP Server:MCP サーバー SDK です。
- クライアントとサーバー両方のサンプルです。
- Spring Streamable HTTP のサンプルです。
samples/clientには専用のStreamableHttpClientExample(Java 8)があります。
詳しくは、ユーザーマニュアルのウェブサイトをご覧ください。
AJ-MCP の使用場面
AJ-MCP は、アプリケーションスタック全体をアップグレードせずに、既存のビジネス機能を AI クライアントに公開したり、MCP サーバーを利用したりする必要がある Java アプリケーションを対象としています。一般的な用途は次のとおりです。
- 既存の Java サービスを MCP のツール、リソース、またはプロンプトとしてラップする。
- Java デスクトップアプリケーションまたはサーバーアプリケーションを、ローカルの STDIO MCP プロセスに接続する。
- MCP を Spring Boot 2.x または Servlet ベースのアプリケーションに統合する。
- 異なる MCP プロトコルリビジョンをネゴシエーションするクライアントに対応する。
JSON-RPC のバッチメッセージには意図的に対応していません。
モジュール
| モジュール | 目的 | 現在のバージョン |
|---|---|---|
aj-mcp-common | 共有の JSON-RPC メッセージ、MCP プロトコルモデル、コンテンツタイプ、バージョンメタデータ、JSON ユーティリティ | 1.9 |
aj-mcp-client | 同期クライアント API と STDIO、HTTP/SSE、Streamable HTTP トランスポート | 1.7 |
aj-mcp-server | アノテーションベースの機能検出、リクエストのディスパッチ、エラー、セッション、サーバートランスポート | 1.6 |
samples | STDIO、Spring Boot/SSE、組み込み Tomcat のサンプル | — |
クライアントとサーバーのアーティファクトはすでに aj-mcp-common に依存しています。通常、アプリケーションでは使用するアーティファクトのみを追加します。
クイックスタート
Java 8 サーバーからツールを公開する
サーバーの依存関係を追加します。
<dependency>
<groupId>com.ajaxjs</groupId>
<artifactId>aj-mcp-server</artifactId>
<version>1.6</version>
</dependency>
サービスを宣言し、STDIO で起動します。
@McpService
public class GreetingTools {
@Tool(description = "Greets a user")
public String greet(@ToolArg("name") String name) {
return "Hello, " + name;
}
}
public static void main(String[] args) {
FeatureMgr features = new FeatureMgr();
features.init("com.example.mcp");
McpServer server = new McpServer();
server.setFeatureMgr(features);
server.setServerConfig(new ServerConfig());
server.setTransport(new ServerStdio(server));
server.start();
}
STDIO を使用する場合、標準出力は JSON-RPC メッセージ用に確保し、アプリケーションログは標準エラー出力またはログファイルに出力してください。ツール、リソース、プロンプト、HTTP トランスポートについては、サーバーの README を参照してください。
Java クライアントから接続する
<dependency>
<groupId>com.ajaxjs</groupId>
<artifactId>aj-mcp-client</artifactId>
<version>1.6</version>
</dependency>
try(McpClient client = McpClient.createStdioMcpClient("java", "-jar", "/path/to/mcp-server.jar")) {
client.listTools().forEach(tool ->System.out.println(tool.getName()));
String result = client.callTool("greet", "{\"name\":\"AJ-MCP\"}");
System.out.println(result);
}
ストリーム、HTTP 接続、保留中のリクエスト、ワーカースレッド、オプションの子プロセスを解放するため、クライアントは必ずクローズしてください。HTTP トランスポートとその他の API については、クライアントの README を参照してください。
ソースからビルドする
JDK 8 または JDK 17 で Maven を使用します。
mvn test
1 つのモジュールとその依存関係のみをビルドするには、次のようにします。
mvn -pl aj-mcp-client -am test
mvn -pl aj-mcp-server -am test
なぜ MCP なのか?
Model Context Protocol により、お気に入りのプログラミング言語やフレームワークを使って、アプリケーションのデータを活用するインテリジェントなアプリケーションを構築する、魅力的な可能性が広がります。AJ MCP Servers は、AI と、想像しうるあらゆるデータソースやシステムを橋渡しする独自の Java ベースのサーバーを作成するための、強力な基盤となります。
お気に入りのデータベースへの接続、社内システムとの統合、あるいはまったく新しいものの構築など、可能性は本当に無限大です。AJ を使えば MCP サーバーを簡単に実装できるため、複雑な仕組みではなく、創造的な部分に集中できます。
さあ、何を待っているのでしょうか?コードを入手し、IDE を起動して、今日から独自の MCP サーバーを構築しましょう。AI を活用したアプリケーションの未来はすでに始まっており、その形づくりに参加できます!
お楽しみください!
リンク
MCP に役立つリンク
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。