Spring-AI+Cursor搭建自己的第一个MCP服务

135 阅读3分钟

所有的技术总会在合适的点迎来技术爆发和应用。人工智能已然成为了这几年以及未来十年最具发展和潜力的方向。22年ChatGPT的横空出世掀起了AI应用的巨浪,大模型,Agent,RAG越来越多的AI点火爆眼球。应用方面从最早的生成式问答到AI制作PPT、视频、智能式代码辅助以及智能机器人,这一切都为我们展示了一个欣欣向荣的未来。

人工智能的发展也许比更多人想象中的更早一些,下图其实就是用DeepSeek生成的一张人工智能发展的历程的时间图:

如今随着大家对AI的探索也让AI的生态越来越好,作为编程领域中开源生态最丰富的Spring也推出了Spring-AI。作为一名普普通通的程序员,也许无法参与这些伟大框架的搭建,但我们可以站在它们的肩上窥探这些技术带来的成果。 首先,需要大家下载一个Cursor,这个新注册的用户可以免费使用一段时间,不过在github上有一个cursor-free-vip项目可以免费续杯。当然也推荐大家在有经济能力的基础上为知识付费。 然后使用SpringBoot3+spring-ai-bom 1.0.0-M7+jdk17搭建自己的MCP Server并暴露一个Tool,代码如下:

pom依赖:

<dependencies>

<dependency>

<groupId>org.springframework.ai</groupId>

<artifactId>spring-ai-starter-mcp-server-webmvc</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.ai</groupId>

<artifactId>spring-ai-mcp</artifactId>

</dependency>

</dependencies>

<dependencyManagement>

<dependencies>

<dependency>

<groupId>org.springframework.ai</groupId>

<artifactId>spring-ai-bom</artifactId>

<version>1.0.0-M7</version>

<type>pom</type>

<scope>import</scope>

</dependency>

</dependencies>

</dependencyManagement>

写一个Tool并使用@Tool注解暴露

@Service
public class HelloService implements ToolService{
    @Tool(description = "从TACC获取模块凭证")
    @Override
    public String sayHello(@ToolParam(description = "模块编码") String moduleCode) {
    String uuid = UUID.randomUUID().toString().replace("-", "");
    return moduleCode+ uuid.substring(0, 10);
    }
}

其中ToolService其实就是一个简单的接口,也可以不用写的直接写普通类暴露Tool就行。 然后将Tool注册倒MCPServer中:

@Configuration
public class ToolCallBackProviderConfig {
    private Logger logger = LoggerFactory.getLogger(ToolCallBackProviderConfig.class);
    @Bean
    public ToolCallbackProvider tools(HelloService helloService){
    logger.info("注册工具方法回调提供者");
    return MethodToolCallbackProvider.builder().toolObjects(helloService).build();
    }
}

然后配置application.yml,对于Spring-ai中mcp的配置项讲解可以参考spring-ai的官方文档。

server:
 port: 8081
 servlet:
  context-path: /
#MCP服务
spring:
 ai:
  mcp:
   server:
    name: tacc-mcp-server
    type: ASYNC
logging:
 level:
 root: INFO
 org.springframework.ai: DEBUG
 org.springframework.web: DEBUG

启动项目,在日志中可以看到,注册成功的日志,这样MCPServer便完成了。 请注意:spring-ai-bom不同版本之间依赖和配置项都有所不同,所以请大家注意使用对应的配置项和依赖。 接下来只需要在Cursor中添加MCP&Tool即可,在Cursor的File中,点击Preferences——>Cursor settings,然后点击Tools&MCP

点击New MCP Server,然后会编辑一个mcp.json,这里采用sse协议与mcp交互,json如下:

{
    "mcpServers": {
        "tacc-mcp-server": {
        "url": "http://localhost:8081/sse"
        }
    }
}

注意:tacc-mcp-server必须与spring.ai.mcp.server.name中配置的一致。这里卡了博主一整年啊!!!! 编辑完成后,保存一下就能看到cursor控制台已经连接上了

然后在右侧AI对话栏,输入你的问题,即可调用到你的Tool:

以上完成自己的第一个MCPServer服务。 再往后大家还可以手动编写MCPClient完成Tools的调用,也可以写自己的Agent。博主在实践过程中踩了不少坑,本文章也是方便大家快速搭建自己的第一个MCP Server。如果大家有更好的,更炫酷的AI实践也请多多分享。开源才是推动技术发展的动力源泉。 欢迎大家加入我的知识星球,它这个星球没办法设置免费,但是如果有需要的话可以留言,我可以邀请你们!