王炸!MCP 架构设计深度剖析 & 使用 Spring AI + MCP 四步教你实现 Agent 智能体开发 原创

发布于 2025-4-7 06:32
浏览
0收藏

Model Context Protocol(MCP)模型上下文协议是一种标准化协议,它让大模型能够更便捷地与外部数据、工具相连。你可以把 MCP 想象成一个通用的插头或接口,就像 USB-C 一样,不管是什么设备,只要插上这个接口,就能和电脑、充电器等连接起来。只不过,MCP 连接的不是物理设备,而是 AI 大模型与外部的数据源、工具等。


王炸!MCP 架构设计深度剖析 & 使用 Spring AI + MCP 四步教你实现 Agent 智能体开发-AI.x社区

有了 MCP,AI 大模型就能更轻松地获取外部信息,完成更多任务。比如,通过 MCP,AI 大模型可以操作电脑读写文件,或者模拟浏览器操作等。

1、MCP 架构设计剖析

第一、MCP 架构设计

MCP 包含三大核心模块:MCP Hosts、MCP Clients、MCP Servers。

王炸!MCP 架构设计深度剖析 & 使用 Spring AI + MCP 四步教你实现 Agent 智能体开发-AI.x社区

  • MCP Hosts:像 Claude Desktop、Cursor 这样的应用程序,它们通过 MCP Client 访问数据。

  • MCP Clients:与 MCP Server 服务器保持 1:1 连接的协议客户端。

  • MCP Servers:轻量级程序,每个 AI 程序都通过标准化的模型上下文协议公开特定功能。

第二、Java MCP 架构设计案例

结合 AI 大模型,以一个 Java AI 应用(比如:AI Agent 智能体)为例,Java MCP 架构设计如下所示:



王炸!MCP 架构设计深度剖析 & 使用 Spring AI + MCP 四步教你实现 Agent 智能体开发-AI.x社区

可以看到 Java MCP 架构设计的传输层有两类:Stdio Transport、HTTP SSE,如下图所示:


王炸!MCP 架构设计深度剖析 & 使用 Spring AI + MCP 四步教你实现 Agent 智能体开发-AI.x社区

第三、MCP 架构设计的工作模式

MCP Server 可以以工具(Tools)的形式配置到 MCP Client 中。当我们向 MCP Host 发送执行指令时,MCP Host 会携带这些工具信息,一起发送给 AI 大模型。随后,AI 大模型会进行意图识别和语义分析,并调用 MCP 来执行具体的业务需求,处理逻辑时序图如下图所示:


王炸!MCP 架构设计深度剖析 & 使用 Spring AI + MCP 四步教你实现 Agent 智能体开发-AI.x社区

上图大致的处理逻辑,总结如下6步:

1.读取配置文件,运行所有 MCP Servers,获取可用的 Tools;

2.用户与 LLM 对话(附带所有 Tools 名称描述,参数定义);

3.LLM 识别到要执行某个Tool,返回名称和参数;

4.找到对应 MCP Server 的 Tool,调用执行,返回结果;

5.把工具执行结果提交给 LLM;

6.LLM 返回分析结果给用户。

你可以把 MCP 想象成你雇来的得力助手,你只需要告诉他你的想法,他就会负责跑腿和执行具体任务,而你只需负责下达指令和验收最终结果。

以下使用 Spring AI + MCP 四步教你实现 Agent 智能体开发。

2、MCP Server 开发步骤

本节手把手教您搭建一个基于 Spring AI MCP 的 Java MCP Server,让您能够在各类客户端轻松调用企业级 AI 服务。借助这一方案,您可以将业务逻辑与工具无缝融入 AI 交互流程,为用户提供更智能、更贴合业务场景的体验。

第一、准备环境

<dependency>    
    <groupId>org.springframework.ai</groupId>    
    <artifactId>spring-ai-mcp-server-webmvc-spring-boot-starter</artifactId>
</dependency>
  • 1.
  • 2.
  • 3.
  • 4.

第二、业务逻辑实现

@Service
publicclassMeilisearchService {
    @Tool(description = "PIG ISSUE 知识库检索,解决用户技术问题 ")
    public String queryQuestion(@ToolParam(description = "用户的技术问题描述 ") String question) {
        Clientclient=newClient(newConfig()
));
        SearchResultresults= client.index("pigx-doc")
            .search(newSearchRequest(question)
                .setShowMatchesPosition(true)
                .setSort(newString[]{"lvl2:desc"})
                .setLimit(1));
        return results.getHits().stream()
            .map(hit -> "【"+hit.get("lvl0")+"】"+hit.get("text"))
            .collect(Collectors.joining("\n\n"));
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

第三、服务注册

@Configuration
    public class McpConfig {   
    @Bean    
        public ToolCallbackProvider documentTools(MeilisearchService searchService) {        
           return MethodToolCallbackProvider.builder()               
           .toolObjects(searchService)               
           .build();   
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

3、MCP Client 配置

第一、MCP Clent 通用配置

{
  "mcpServers":{
    "pig-issue":{
      "isActive":true,
      "command":"java",
      "args":[
        "-Dspring.ai.mcp.server.stdio=true",
        "-jar",
        "/Users/lengleng/env/repository/io/github/pig-mesh/pig-issue-query-mcp/0.0.1-SNAPSHOT/pig-issue-query-mcp-0.0.1-SNAPSHOT.jar"
      ]
    }
}
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

第二、图形化配置

1.Cherry 客户端配置界面

王炸!MCP 架构设计深度剖析 & 使用 Spring AI + MCP 四步教你实现 Agent 智能体开发-AI.x社区

2.客户端配置界面

王炸!MCP 架构设计深度剖析 & 使用 Spring AI + MCP 四步教你实现 Agent 智能体开发-AI.x社区

第三、效果展示

王炸!MCP 架构设计深度剖析 & 使用 Spring AI + MCP 四步教你实现 Agent 智能体开发-AI.x社区

4、MCP 架构设计总结

总体而言,MCP 解决了 Client 和 Server 之间的数据交互问题,但在 LLM 到 Tool 的对接上仍有不足:不同模型对 Function Call 的支持程度参差不齐,例如 DeepSeek R1 就不支持,这就导致了工具路由的问题。

第一、不足之处

1.开源时间较短:目前还不够完善,语言支持有限,示例代码也不够丰富。

2.MCP Server 质量参差不齐:缺乏统一的质量保障体系和包管理工具,许多 MCP Server 无法正常运行,或者频繁崩溃。

3.本地 MCP Server 依赖特定环境:本地 MCP Server 仍依赖 Node.js 或 Python 环境,而远程 MCP Server 的支持较少。

第二、未来展望

如果未来更多 AI 应用开始接入 MCP 协议,生态逐渐完善,其能力将非常强大。随着使用人数的增加,会有更多 AI 应用愿意对接,真正实现一套代码在所有地方运行。

个人认为,MCP 仍有很大的发展潜力,未来可期!


本文转载自公众号玄姐聊AGI  作者:玄姐

原文链接:​​https://mp.weixin.qq.com/s/M-33bqd5i_bpsSaQdiyglQ​

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2025-4-7 06:32:32修改
收藏
回复
举报


回复
相关推荐