开启左侧

手摸手教你用Dify+Java自建MCP服务,实现AI业务数据查询(问数)

[复制链接]
pcsms_PoTVPezd 发表于 3 小时前 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
作者:CSDN博客
文章目录


      什么是MCPSpring MCP Server
        1. **Standard MCP Server**2. **WebMVC Server Transport**3. **WebFlux Server Transport**总结
      用Java创建MCP服务添加自己的MCP服务配置Dify MCP客户端
        配置重点
      测试最后


什么是MCP

最近 MCP 协议颇为热门,那么什么是MCP呢?
MCP的全称是模型上下文协议(Model Context Protocol),是由Anthropic推出的一种开放标准协议。其设计目的在于让大型语言模型(LLMs)能够与外部的数据源和工具实现无缝交互。MCP就像是为AI提供了一个“通用插头”,使得这些智能模型可以像我们使用USB接口一样,轻松连接到各种不同的设备和服务上。
MCP官网链接:https://modelcontextprotocol.io/introduction
MCP的定义如下:
MCP 是一个开放协议,用于标准化应用程序向大语言模型提供上下文的方式。可以将 MCP 想象成 AI 应用程序的 USB-C 接口。就像 USB-C 为设备连接各种外设和配件提供了标准化方式一样,MCP 为 AI 模型连接不同的数据源和工具提供了标准化方式。
简单来说,MCP就是一个AI调用服务的协议,它就像一个“连接器”,让AI模型能够方便地连接到各种数据源和工具。
就像我们熟知的 USB-C 接口,它能让电脑轻松连接到如鼠标、键盘、音响或者硬盘等各种设备。MCP的作用类似,它为AI模型提供了一个标准化的连接方式,让模型能够方便地接入不同的数据源和工具,就像 USB-C 让设备之间能够无缝连接一样。
MCP允许AI模型通过标准化的方式连接到外部数据源或服务(比如天气API、数据库查询等)。

手摸手教你用Dify+Java自建MCP服务,实现AI业务数据查询(问数)-1.png


接下来我们就用Java来搭建个MCP服务。
Spring MCP Server

说起Java,就绕不开Spring,Spring AI 刚好就有 MCP Server Boot Starter 模块,直接拿来用就行了:https://docs.spring.io/spring-ai/reference/api/mcp/mcp-server-boot-starter-docs.html
Spring MCP Server 提供了三种不同的模式:
    Standard Input/Output (STDIO) - spring-ai-starter-mcp-serverSpring MVC (Server-Sent Events) - spring-ai-starter-mcp-server-webmvcSpring WebFlux (Reactive SSE) - spring-ai-starter-mcp-server-webflux
这三种模式有什么不同?
我借鉴一下 Kimi 的答案:
在 Spring AI 中,Standard MCP Server、WebMVC Server Transport 和 WebFlux Server Transport 是三种不同的服务器实现方式,主要用于支持模型上下文协议(MCP)的通信。
以下是它们的区别:
1. Standard MCP Server

    核心功能:Standard MCP Server 是基于标准输入/输出(STDIO)的服务器实现。它主要用于进程内通信,适合在同一个进程中运行客户端和服务器端,通过标准输入输出流进行数据交互。适用场景:适用于简单的本地开发环境或单进程应用,不涉及复杂的网络通信。特点:实现简单,但不具备网络通信能力,无法支持分布式或多进程环境。
2. WebMVC Server Transport

    核心功能:WebMVC Server Transport 是基于 Spring MVC 的服务器实现。它通过 Servlet 提供服务器发送事件(SSE)支持,允许服务器主动向客户端推送数据。适用场景:适合传统的基于 Servlet 的 Web 应用程序,能够与现有的 Spring MVC 项目无缝集成。
  • 特点
      基于 Servlet API,支持阻塞式 I/O 操作。提供标准化的 SSE 端点(如 /mcp/sse),客户端可以通过 text/event-stream 协议与服务器通信。支持同步模式,适合传统的请求-响应模式。

3. WebFlux Server Transport

    核心功能:WebFlux Server Transport 是基于 Spring WebFlux 的服务器实现。它提供了响应式 SSE 支持,能够处理高并发的异步流式数据。适用场景:适合需要高性能、非阻塞 I/O 的现代响应式应用,特别是在处理大量并发连接时表现出色。
  • 特点
      基于响应式编程模型,支持非阻塞操作。提供响应式的 SSE 端点,客户端可以通过 text/event-stream 协议与服务器进行流式交互。支持异步模式,适合需要高并发和低延迟的应用。

总结

    Standard MCP Server 适合简单的本地开发和单进程通信。WebMVC Server Transport 适合传统的基于 Servlet 的 Web 应用,支持同步模式。

原文地址:https://blog.csdn.net/zhanyd/article/details/147614388
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题
阅读排行更多+

Powered by Discuz! X3.4© 2001-2013 Discuz Team.( 京ICP备17022993号-3 )