跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
JavaAIjava

上下文协议(MCP)Java SDK 指南

Model Context Protocol (MCP) 是连接 AI 应用与外部工具的标准。介绍 MCP Java SDK,涵盖架构设计(Host/Client/Server)、通信层次及依赖配置。通过示例展示了如何定义工具类 LoggingTool,帮助开发者在 Java 应用中接入 MCP 生态,实现统一的能力暴露与调用。

剑仙发布于 2026/3/29更新于 2026/9/370 浏览

当我们把各种内部系统、数据源、工具接入大语言模型时,往往会遇到一个尴尬的问题:每个团队、每套系统都有自己的一套'接入规范'。有的用 HTTP API,有的用消息队列,有的直接连数据库,最后一圈串下来,既难以统一治理,又很难在不同应用之间复用。这时,你可能会问:有没有一种通用的协议,既能让 AI 模型方便地调用外部工具、访问数据,又能让后端服务方用标准方式暴露能力?

Model Context Protocol(MCP)就是为此而生的标准之一,而本文要介绍的 Java SDK,则为 Java 开发者提供了一条直接接入 MCP 生态的通路。通过它,你可以用统一的模型,在 Java 应用里暴露工具、资源、提示模版,也可以轻松作为客户端去调用这些能力。本文将从整体架构讲起,一步步带你用一个可运行的示例,搭建起自己的 MCP 服务端与客户端。

1. 概览

随着近年来 AI 的快速发展,越来越多的工具和系统开始与 AI 模型集成。但随之而来的一个挑战是:每种集成都可能采用完全不同的标准和方式,将外部工具、资源和系统接入到 AI 模型中。

Model Context Protocol(MCP)是一个开源标准,它定义了 AI 应用(如大语言模型、图像生成模型等)与工具、数据源以及其他资源之间的集成方式。借助 MCP,AI 应用可以按外部系统约定的方式访问数据、调用工具并执行工作流。

MCP 的 Java SDK 为开发者提供了一组库,支持多种协议和通信机制,用于把 Java 应用与 AI 应用连接起来。

在本教程中,我们将一起了解这个 SDK,并通过一个简单示例来体验 MCP 的使用方式。

2. 架构

MCP 架构的核心组件主要包括:

  • MCP Host:负责管理多个 MCP Client
  • MCP Client:从 MCP Server 获取上下文,供 MCP Host 使用
  • MCP Server:向 MCP Client 提供上下文信息和可调用能力

MCP 将通信划分为两个概念层次:数据层(Data Layer),用于定义客户端与服务端的通信协议和生命周期管理;以及 传输层(Transport Layer),用于定义客户端和服务端之间的具体传输通道和机制。

Java 版的 MCP SDK 将这些概念映射为如下几个层次:

  • Client/Server 层:通过 McpClient / McpServer 实现并管理客户端/服务端的具体操作
  • Session 层:通过 McpSession 管理通信模式和会话状态
  • Transport 层:通过 McpTransport 处理消息的序列化与反序列化

客户端会调用 MCP 服务端暴露的一到多个工具(tool),而底层的通信则由传输层负责。

在 MCP 中,Primitive(原语) 是最基础的构建单元,用来定义可用的上下文信息类型以及可执行的操作范围。服务端和客户端都提供了一些原语。

服务端侧的原语包括工具(tools)、资源(resources)和提示模版(prompts)。工具是 AI 应用可以调用的可执行函数,例如查询数据库、文件操作等。资源是提供给客户端的上下文数据源,例如数据库结构、文件内容等。提示模版是可复用的模版,用于与语言模型进行交互。

客户端侧的原语则帮助 McpServer 的实现者构建更丰富的交互能力,包括采样(sampling)、信息补充(elicitation)和日志(logging)。采样允许服务端在不集成模型 SDK 的情况下,向客户端请求语言模型补全结果。信息补充让服务端能够向用户请求额外信息或确认操作。日志则允许服务端向客户端发送日志消息,用于调试和监控。

3. 环境准备

要使用 MCP Java SDK,我们需要在项目中加入 mcp 依赖:

<dependency>
    <groupId>io.modelcontextprotocol.sdk</groupId>
    <artifactId>mcp</artifactId>
    <version>0.15.0</version>
</dependency>
3.1 定义一个 MCP 工具

我们先通过 LoggingTool 这个类,定义一个非常简单的 MCP 工具,用来打印收到的提示词(prompt),该方法返回一个 SyncToolSpecification:

public class LoggingTool {
    public static McpServerFeatures.SyncToolSpecification logPromptTool() {
        McpSchema.JsonSchema inputSchema = new McpSchema.JsonSchema("object", Map.of("prompt", String.class), List.of("prompt"), false, null, null);
        return new McpServerFeatures.SyncToolSpecification(
            new McpSchema.Tool("logPrompt", "Log Prompt", "Logs a provided prompt", inputSchema, null, null, null),
            (exchange, args) -> {
                String prompt = (String) args.get

目录

  1. 1. 概览
  2. 2. 架构
  3. 3. 环境准备
  4. 3.1 定义一个 MCP 工具

更多推荐文章

查看全部
  • 上下文查询增强:让 AI 智能体理解对话记忆与情境
  • AI 编程工具实测:效率提升背后的真实体验
  • SDXL-Turbo 快速生成高质量 AI 绘画的三项核心技巧
  • LeetCode 380 O(1) 时间插入、删除和获取随机元素
  • HDFS 分布式文件系统数据读写流程详解
  • Agent Skills 详解:如何赋予 AI 执行特定任务的能力
  • 三星研究院 Shallow-π:基于知识蒸馏的机器人 VLA 模型优化
  • SDXL-Turbo 使用技巧:提升 AI 绘画质量的 3 个方法
  • SDMatte 服务 SLA 保障方案:99.5% 可用性承诺下的监控告警与应急响应
  • 递归经典实战:汉诺塔、链表操作与快速幂详解
  • Dify 工作流发布为 MCP Server 实战指南
  • 大模型应用:RAG 原理、流程与最佳实践
  • GitHub 2FA 双重验证实战指南:Edge 插件配置方案
  • OpenClaw 多 Agent 对接飞书机器人实战指南
  • 三种适用于 Web 版 IM 聊天信息的加密算法实现方案
  • GLM-5 发布:开源模型综合排名第一,Agentic 能力与前端细节显著增强
  • Sublime Text 配置 Verilog 开发环境:语法高亮与代码补全
  • Rust 与 WebAssembly 深度实战:在浏览器与 Node.js 中运行高性能代码
  • Rust 异步并发安全与内存管理的最佳实践
  • IntelliJ IDEA 关闭 AI 自动代码补全提示的设置步骤

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online