モデルコンテキストプロトコル入門 (MCP)

モデルコンテキストプロトコル (MCP) は、AI アプリケーションが外部ツールやリソースと対話する方法を標準化します。

Spring は MCP エコシステムに早期から主要コントリビューターとして参加し、Java ベースの MCP 実装の基盤となる公式 MCP Java SDK [GitHub] (英語) の開発と保守に貢献してきました。このコントリビューションを基に、Spring AI は Boot スターターとアノテーションを通じて MCP サポートを提供し、MCP サーバーとクライアントの両方を容易に構築できるようにしています。

導入ビデオ

モデルコンテキストプロトコルの概要とコア概念およびアーキテクチャの説明については、ここから始めてください。

完全なチュートリアルとソースコード

📖 ブログチュートリアル : AI をあらゆるものに接続 (英語)

このチュートリアルでは、Spring AI を使用した MCP 開発の基本、高度な機能、デプロイパターンなどを網羅しています。以下のコード例はすべてこのチュートリアルから抜粋したものです。

クイックスタート

最も早く始める方法は、Spring AI のアノテーションベースのアプローチを利用することです。以下の例はブログチュートリアルから抜粋したものです。

シンプルな MCP サーバー

@Service
public class WeatherService {

    @McpTool(description = "Get current temperature for a location")
    public String getTemperature(
            @McpToolParam(description = "City name", required = true) String city) {
        return String.format("Current temperature in %s: 22°C", city);
    }
}

依存関係を追加して構成します。

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-starter-mcp-server-webmvc</artifactId>
</dependency>
spring.ai.mcp.server.protocol=STREAMABLE

シンプルな MCP クライアント

@Bean
public CommandLineRunner demo(ChatClient chatClient, ToolCallbackProvider mcpTools) {
    return args -> {
        String response = chatClient
            .prompt("What's the weather like in Paris?")
            .toolCallbacks(mcpTools)
            .call()
            .content();
        System.out.println(response);
    };
}

依存関係を追加して構成します。

<dependency>
  <groupId>org.springframework.ai</groupId>
  <artifactId>spring-ai-starter-mcp-client</artifactId>
</dependency>
spring:
  ai:
    mcp:
      client:
        streamable-http:
          connections:
            weather-server:
              url: http://localhost:8080

学習リソース

実装ビデオ

Spring AI の MCP 統合のビデオウォークスルー。サーバーとクライアントの両方の実装をカバーしています。

追加の例リポジトリ

チュートリアルの例以外にも、Spring AI の例 [GitHub] (英語) リポジトリには多数の MCP 実装が含まれています。

アノテーションベースの例

コミュニティリソース