欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > 如何给自研MCP加上安全验证

如何给自研MCP加上安全验证

2025/5/30 6:33:24 来源:https://blog.csdn.net/CSDN_LiMingfly/article/details/148221596  浏览:    关键词:如何给自研MCP加上安全验证

在这里插入图片描述

前言
刚过去两个月,市面的 MCP 服务,如雨后春笋一般不断涌现出来,包括;百度、高德、网盘、支付宝。这些 MCP 服务,可以让我们基于 Spring AI 框架构建的 Agent 具备非常丰富的使用功能。同时这也说明,程序员👨🏻‍💻,应该具备开发 MCP 服务的能力,Spring AI 让 Java 再次牛逼!
举例
如对接高德地图 MCP

{"mcpServers": {"amap-amap-sse": {"url": "https://mcp.amap.com/sse?key=您在高德官网上申请的key"}}
}

官网 - 官网提供了创建对接 Key
二:代码案例

@Configuration
publicclass McpConfig {@Beanpublic List<NamedClientMcpTransport> mcpClientTransport() {McpClientTransport transport = HttpClientSseClientTransport.builder("https://mcp.amap.com").sseEndpoint("/sse?key=<your_key>").objectMapper(new ObjectMapper()).build();return Collections.singletonList(new NamedClientMcpTransport("amap", transport));}}

1:对接时,需要设定 sseEndpoint 如果不设定个,Spring AI 默认是对 builder 的 baseUrl 值添加 /sse 的。

2:所以,如果你要对接外部带有验证权限的 MCP 服务,需要手动设置下 sseEndpoint 值。

项目中的配置
支持了外部的这些带有权限校验的 MCP 服务。你可以,以多种方式进行配置。如

{"baseUri":"https://mcp.amap.com","sseEndpoint":"/sse?key=****"
}
{"baseUri":"https://mcp.amap.com","sseEndpoint":"/sse?key=****"
}

以上两种配置方式,在 项目案例代码中 都做了兼容处理。以下是兼容代码,有案例项目的,可以直接阅读课程代码。

@Slf4j
@Component
publicclass AiClientToolMcpNode extends AbstractArmorySupport {// ... 省略部分代码protected McpSyncClient createMcpSyncClient(AiClientToolMcpVO aiClientToolMcpVO) {String transportType = aiClientToolMcpVO.getTransportType();switch (transportType) {case"sse" -> {AiClientToolMcpVO.TransportConfigSse transportConfigSse = aiClientToolMcpVO.getTransportConfigSse();// http://127.0.0.1:9999/sse?apikey=DElk89iu8EhhnbuString originalBaseUri = transportConfigSse.getBaseUri();String baseUri;String sseEndpoint;int queryParamStartIndex = originalBaseUri.indexOf("sse");if (queryParamStartIndex != -1) {baseUri = originalBaseUri.substring(0, queryParamStartIndex - 1);sseEndpoint = originalBaseUri.substring(queryParamStartIndex - 1);} else {baseUri = originalBaseUri;sseEndpoint = transportConfigSse.getSseEndpoint();

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词