上一篇《AI大模型MCP实战(一)使用java编写一个简单的MCP Server(Stdio模式)》我们实现了使用java编写一个Stdio模式的MCP服务端,他的原理主要是本地起很多jar进程,然后本地的cherry studio与本地的jar进程之间通信,这样的坏处是如果本地电脑配置不高,就会非常的卡,所以这里我们再介绍第二种sse模式的MCP Server。
sse模式的MCP Server,他的原理就是在远程服务器上启动一个http服务,然后由本地的cherry studio进行调用即可。但是总体的java方面的代码和前面的stdio模式差不多,所以本文在上文的源码基础上进行修改。
一、修改pom.xml
这里使用sse模式的话,我们需要修改下mcp的服务端依赖包,把原来的依赖包修改为:
<dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-mcp-server-webflux-spring-boot-starter</artifactId> <version>1.0.0-M6</version> </dependency>
二、修改application.yml文件
前面的application我们是禁用了web的,这里的话,不再需要禁用了,全部进行修改,修改后的内容如下:
server: port: 8080 name: mcp ai: mcp: server: name: mcp version: 1.1 spring: application: name: mcp
剩下的其他的代码都不需要做任何改动。直接把整个springboot项目启动起来即可:
这时候可能会有人纳闷,既然是web服务,我还没写controller呢,其实spring-ai框架已经自动把controller写好了,他的endpoint端点是/sse,所以我们直接使用浏览器访问/sse即可,如下图:
是不是现成的接口了?
三、cherry studio测试
接下来我们就要使用cherry studio进行测试了,进入设置页面,删除刚才的模型,添加一个新的模型,此时我们选择服务器发送事件(sse)
可以看到这里需要填写的内容就非常少了,一个名称,一个远程的URL,直接填写刚才启动的web服务地址+端口+/sse即可,然后点击保存和启用,可以看到有可用的工具了
回到聊天窗口,添加mcp模型
然后提问5是不是双数,就可以看到他正在自动调用MCP服务器
最后也得到了结果:
以上就是使用java语言编写MCP服务器的sse模式的案例,这个模式是目前通用的模式,因为他可以直接部署在远程服务器,面对并发量较大的场景的时候,还可以使用负载均衡,使用起来非常方便。
最后按照惯例,附上本案例的源码,登录后即可下载。
还没有评论,来说两句吧...