跳到主要内容

MCP概述

模型上下文协议的Java SDK实现了AI模型和工具之间的标准化集成。

备注

0.8.x版本的重大变更 ⚠️

注意: 0.8.x版本引入了几个重大变更,包括新的基于会话的架构。 如果您从0.7.0版本升级,请参考迁移指南获取详细说明。

概述

MCP Java SDK使您能够将AI模型与工具进行标准化集成。它提供了:

  • 协议版本兼容性协商
  • 工具发现和调用
  • 资源管理和访问
  • 提示模板和生成
  • 与AI模型的交互采样
  • 同步和异步编程范式支持

架构

MCP SDK采用分层架构,具有清晰的关注点分离:

  1. 客户端/服务器层

    • 实现协议消息处理
    • 管理连接和会话
    • 处理工具调用和资源访问
  2. 会话层

    • 管理客户端和服务器之间的通信
    • 处理消息路由和状态
    • 提供错误处理和恢复
  3. 传输层

    • 处理底层通信协议
    • 支持多种传输实现
    • 管理连接生命周期

依赖

Maven

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>io.modelcontextprotocol</groupId>
            <artifactId>mcp-bom</artifactId>
            <version>0.8.0</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <!-- 核心MCP功能 -->
    <dependency>
        <groupId>io.modelcontextprotocol</groupId>
        <artifactId>mcp</artifactId>
    </dependency>

    <!-- HTTP SSE传输实现 -->
    <dependency>
        <groupId>io.modelcontextprotocol</groupId>
        <artifactId>mcp-spring-webflux</artifactId>
    </dependency>

    <!-- 测试工具 -->
    <dependency>
        <groupId>io.modelcontextprotocol</groupId>
        <artifactId>mcp-testing</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

Gradle

plugins {
    id 'java'
    id 'io.spring.dependency-management' version '1.1.4'
}

repositories {
    mavenCentral()
}

dependencyManagement {
    imports {
        mavenBom 'io.modelcontextprotocol:mcp-bom:0.8.0'
    }
}

dependencies {
    // 核心MCP功能
    implementation 'io.modelcontextprotocol:mcp'

    // HTTP SSE传输实现
    implementation 'io.modelcontextprotocol:mcp-spring-webflux'

    // 测试工具
    testImplementation 'io.modelcontextprotocol:mcp-testing'
}

可用依赖

核心依赖

  • mcp: 核心MCP功能
  • mcp-bom: 依赖版本管理

传输实现

  • mcp-spring-webflux: HTTP SSE传输
  • mcp-spring-webmvc: Spring WebMVC SSE传输
  • mcp-spring-servlet: Servlet SSE传输

测试工具

  • mcp-testing: 测试工具和实用程序

下一步

提示
Spring AI MCP扩展了MCP Java SDK,提供Spring Boot集成, 包括客户端服务器 Boot Starter。 您可以使用Spring Initializer引导您的AI Spring应用程序。

架构

SDK遵循分层架构,关注点分离清晰:

MCP堆栈架构

  • 客户端/服务器层(McpClient/McpServer):两者都使用McpSession进行同步/异步操作, McpClient处理客户端协议操作,McpServer管理服务器端协议操作。
  • 会话层(McpSession):使用DefaultMcpSession实现管理通信模式和状态。
  • 传输层(McpTransport):通过以下方式处理JSON-RPC消息序列化/反序列化:
    • 核心模块中的StdioTransport(stdin/stdout)
    • 专用传输模块中的HTTP SSE传输(Java HttpClient、Spring WebFlux、Spring WebMVC)

MCP客户端是模型上下文协议(MCP)架构中的关键组件,负责建立和管理与MCP服务器的连接。 它实现了协议的客户端部分。

Java MCP客户端架构

MCP服务器是模型上下文协议(MCP)架构中的基础组件,向客户端提供工具、资源和功能。 它实现了协议的服务器端部分。

Java MCP服务器架构

关键交互:

  • 客户端/服务器初始化:传输设置、协议兼容性检查、能力协商和实现细节交换。
  • 消息流:JSON-RPC消息处理,包括验证、类型安全响应处理和错误处理。
  • 资源管理:资源发现、基于URI模板的访问、订阅系统和内容检索。