在上一章节中,我们讲解了MCP服务,并以Spring AI作为客户端和服务端进行示例说明。然而,当前市面上已经存在众多成熟的MCP客户端和服务端实现。那么,Spring AI在这些现有方案中的适配程度究竟如何?接下来,我们将深入探讨这一问题。

Spring AI客户端-第三方MCP

MCP市场

我们先看下目前流行的MCP服务都有哪些,当然我们不必去手动实现已有的服务端,现在有很多MCP市场,比如腾讯云、阿里都有这些市场,我们都来实验一下,在Spring AI客户端中的是否可以真正的使用起来。那么这里我们就以腾讯云为例开始演示。地址在这里:https://cloud.tencent.com/developer/mcp

腾讯位置服务 MCP Server

今天我们就举一个最常见的案例——地图服务,我们找到腾讯位置服务,然后根据他的文档快速的申请一下相关的秘钥信息等。

准备工作完成之后,我们开始接入,在配置文件中,我们引入必要的配置信息,如下:

spring.ai.mcp.client.sse.connections.server2.url=https://mcp.map.qq.com
spring.ai.mcp.client.sse.connections.server2.sse-endpoint=/sse?key=<申请的key>&format=0

OK。就这么简单,我们直接启动项目进行实时对话直接查看是否成功,效果如下:

新闻服务

除了常规使用SSE URL方式进行通信的MCP服务可以正常兼容外,在Studio模式下同样能够良好运行和适配。接下来,我们将以一个新闻服务的快速接入为示例进行演示。如图所示:

按照其配置说明添加在Spring AI项目的配置目录下。具体配置如下:

spring.ai.mcp.client.stdio.servers-configuration=classpath:mcp-servers.json

我们只需要将此文件内容换成官方的命令即可。随后我们正常启动项目,效果如下:

服务端常用的两种模式,这里全部正常。我们再看下第三方MCP客户端和Spring AI 服务端是否也可以正常兼容。

第三方MCP客户端-Spring AI 服务端

Claude Desktop

首先,我们要介绍的是当前最为流行的客户端工具之一 —— Claude Desktop。该工具支持本地运行,用户只需在本地下载安装完成后,便可通过选择相应的配置文件,直接加载并对接Spring AI所提供的MCP服务,实现快速接入与调试。具体操作流程如下图所示:

文件内容如下所示:

"spring-ai-mcp-weather": {
"command": "java",
"args": [
"-Dspring.ai.mcp.server.stdio=true",
"-Dspring.main.web-application-type=none",
"-Dlogging.pattern.console=",
"-Dmybatis-plus.global-config.banner=false",
"-jar",
"D:/project/spring-ai-courses/08-course-mcp/course-mcp-server/target/course-mcp-server-1.0-SNAPSHOT.jar"
]
}

配置完成后,请注意需要重启应用,使刚才的设置生效。

我们这边的 Spring AI 服务无需单独运行,只需打好 JAR 包即可被加载使用。下面我们直接来做一个简单的测试:

首先他会进行一次提示,询问是否调用MCP服务,说明基本成功了。我们再看下能够成功调用,效果如下:

n8n

接下来,我们将继续测试另一个近期非常热门的工具 —— n8n。该自动化平台原生支持与 MCP 服务的集成,且采用的是基于 SSE(Server-Sent Events)的通信模式。

如果本地尚未安装 n8n,可通过宝塔面板轻松获取并完成部署。只需在面板应用市场中搜索 “n8n”,即可一键安装并开始配置。如下图所示:

接下来要做的,是让 n8n 能访问到我们本地的 Spring AI 服务。你有两个选择:要么把服务部署到线上;要么就像我这样,用内网穿透把本地服务暴露出来。

我这里用的是内网穿透的方式,接下来我们就来配置一下:

这里的 /sse 是 Spring AI 默认提供的接口后缀,我们直接填这个就行了。如果你在服务端做了修改,那也可以用自定义的路径。

现在我们来看下最终的效果,看看能不能成功触发调用。如下图所示:

Codebuddy

最后一个环节是 IDE 插件的集成配置,这里我们以腾讯云出品的 Codebuddy 插件为例进行演示。

首先,在本地 IDE(如 IntelliJ IDEA 或 VS Code)中安装好 Codebuddy 插件。然后登录自己的腾讯云账号,登录完成后点击左侧的 “MCP 管理” 菜单,进入插件的 MCP 配置界面,如下图所示:

紧接着写好我们的配置文件内容,可以写sse模式也可以写studio模式的配置,这里以studio模式为例。如图所示:

一切调用成功。

小结

本文系统演示了如何在 Spring AI 架构下集成主流 MCP 服务和客户端工具,包括腾讯云地图、新闻服务、Claude Desktop、n8n 以及 Codebuddy 插件,全面验证了 Spring AI 的良好兼容性与扩展性。

本文源码已提交至 GitHub 仓库,可直接下载使用:https://github.com/StudiousXiaoYu/spring-ai-courses

【附源码】用Spring AI通杀所有MCP客户端,简直离谱!的更多相关文章

  1. spring学习笔记2---MVC处理器映射(handlerMapping)三种方式(附源码)

    一.根据Beanname访问controller: 在springmmvc-servlet.xml的配置handlermapping中加入beanname,通过该beanname找到对应的contro ...

  2. ElasticSearch 实现分词全文检索 - SpringBoot 完整实现 Demo 附源码【完结篇】

    可以先看下列文章 目录 ElasticSearch 实现分词全文检索 - 概述 ElasticSearch 实现分词全文检索 - ES.Kibana.IK安装 ElasticSearch 实现分词全文 ...

  3. 轻量级通信引擎StriveEngine —— C/S通信demo(2) —— 使用二进制协议 (附源码)

    在网络上,交互的双方基于TCP或UDP进行通信,通信协议的格式通常分为两类:文本消息.二进制消息. 文本协议相对简单,通常使用一个特殊的标记符作为一个消息的结束. 二进制协议,通常是由消息头(Head ...

  4. Mybatis+SpringMVC实现分页查询(附源码)

    Maven+Mybatis+Spring+SpringMVC实现分页查询(附源码) 一.项目搭建 关于项目搭建,小宝鸽以前写过一篇Spirng+SpringMVC+Maven+Mybatis+MySQ ...

  5. javaweb异常提示信息统一处理(使用springmvc,附源码)

    一.前言 后台出现异常如何友好而又高效地回显到前端呢?直接将一堆的错误信息抛给用户界面,显然不合适. 先不考虑代码实现,我们希望是这样的: (1)如果是页面跳转的请求,出现异常了,我们希望跳转到一个异 ...

  6. C#轻量级通通讯组件StriveEngine —— C/S通信开源demo(2) —— 使用二进制协议 (附源码)

    前段时间,有几个研究ESFramework通信框架的朋友对我说,ESFramework有点庞大,对于他们目前的项目来说有点“杀鸡用牛刀”的意思,因为他们的项目不需要文件传送.不需要P2P.不存在好友关 ...

  7. (转)干货|这篇TensorFlow实例教程文章告诉你GANs为何引爆机器学习?(附源码)

    干货|这篇TensorFlow实例教程文章告诉你GANs为何引爆机器学习?(附源码) 该博客来源自:https://mp.weixin.qq.com/s?__biz=MzA4NzE1NzYyMw==& ...

  8. 【转】.NET(C#):浅谈程序集清单资源和RESX资源 关于单元测试的思考--Asp.Net Core单元测试最佳实践 封装自己的dapper lambda扩展-设计篇 编写自己的dapper lambda扩展-使用篇 正确理解CAP定理 Quartz.NET的使用(附源码) 整理自己的.net工具库 GC的前世与今生 Visual Studio Package 插件开发之自动生

    [转].NET(C#):浅谈程序集清单资源和RESX资源   目录 程序集清单资源 RESX资源文件 使用ResourceReader和ResourceSet解析二进制资源文件 使用ResourceM ...

  9. 详解SpringBoot集成jsp(附源码)+遇到的坑

    本文介绍了SpringBoot集成jsp(附源码)+遇到的坑 ,分享给大家 1.大体步骤 (1)创建Maven web project: (2)在pom.xml文件添加依赖: (3)配置applica ...

  10. SpringCloud-服务注册与实现-Eureka创建服务提供者(附源码下载)

    场景 SpringCloud-服务注册与实现-Eureka创建服务注册中心(附源码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

随机推荐

  1. [源码系列:手写spring] IOC第五节:Bean注入Bean

    主要内容 添加BeanReference类,包装一个bean对另一个bean的引用.如beanA引用beanB,那么在实例化beanA时,如果propertyValue.value是BeanRefer ...

  2. JDBC-增删查改操作

    使用场景:测试家族族长分成时需要批量添加家族流水记录,但手动添加和SQL语句添加较为麻烦 操作步骤 运行环境:Java8+IDEA 1.打开IDEA 点击File->New->Projec ...

  3. 康谋分享 | 3DGS:革新自动驾驶仿真场景重建的关键技术

    登录后复制 随着自动驾驶技术的迅猛发展,构建高保真.动态的仿真场景成为了行业的迫切需求.传统的三维重建方法在处理复杂场景时常常面临效率和精度的挑战.在此背景下,3D高斯点阵渲染(3DGS)技术应运而生 ...

  4. MySQL 中如何解决深度分页的问题?

    MySQL 中如何解决深度分页的问题? 在 MySQL 中,深度分页是指查询数据时,用户请求的是数据集中的较后部分,而不是从头开始的数据.这类分页查询常见于有大量数据的系统中,当页数很大时,查询效率会 ...

  5. 经典常用SQL查询语句和常见问题

    一.基础 1.常用sql: ------------------------ // mysql改root密码 mysqladmin -u用户名 -p旧密码 password 新密码 # ---more ...

  6. VBA_LoadPicture报错:子过程或子函数未定义

    需要增加如下引用: While in the VBE select Tools>References>find and check "OLE Automation" 参 ...

  7. 36.3K star!开发者专属PPT神器,Markdown秒变炫酷幻灯片!

    嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 Slidev 是专为开发者打造的现代化幻灯片制作工具,基于 Markdown + Vue 技 ...

  8. 【HUST】网安|编译原理实验|实验四攻略

    [实验代码及报告地址:Gitee传送门](已关闭传送大门,原因是抄袭过多,如需参考,请直接看博客,虽然下一届内容会变了) 不擅长写报告昂,很多地方能省全省了. 助力来年编译原理加大难度!(hhh) M ...

  9. Polarctf -- Re(1)

    Polarctf之简单逆向 1. shell 用exeinfope查看下程序结构, 发现存在upx壳 用upx工具脱壳, upx.exe -d shell.exe 再使用IDAPro打开 #flag{ ...

  10. B1032 挖掘机技术哪家强

    为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛.现请你根据比赛结果统计出技术最强的那个学校. 输入格式: 输入在第 1 行给出不超过 10 5 的正整数 N,即参赛人数.随后 N ...