☰
自定义一个简单的MCP Server:使用SpringAI + Cline + DeepSeek实现AI创建文件并写入内容
2026/9/27 7:38:35 网站建设 项目流程

实现功能

通过与AI的对话,让AI自动完成将指定内容写入指定目标文件的功能,效果如下:

环境

windows 11、jdk 17、SpringBoot 3.4.4

步骤

1、安装vscode并安装Cline插件

2、在Cline插件中配置大模型

Cline可以配置多种大模型,比如本地的Ollama、阿里的千问、deepseek等等,这里以配置deepseek为例,先去deepseek开放平台注册账号,然后随便充值十来块钱购买使用量,然后创建api-key:

接着就可以在Cline中配置deepseek了:

配置好后可以返回Cline的对话界面,问一个简单的问题试一下大模型是否生效,注意对话界面的右下角有Plan、Act两个选项,Plan可以理解为一般的对话聊天,Act就是需要大模型配合MCP服务执行任务,这里测试大模型是否生效就选择Plan就行:

发句“你好”测试一下:

3、实现MCP服务

首先创建一个SpringBoot项目(注意最好使用JDK 17+和SpringBoot 3+),引入以下依赖:

<?xml version="1.0" encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.4.4</version><relativePath/><!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>ai-demo</artifactId><version>0.0.1-SNAPSHOT</version><name>ai-demo</name><description>ai-demo</description><url/><licenses><license/></licenses><developers><developer/></developers><scm><connection/><developerConnection/><tag/><url/></scm><properties><java.version>17</java.version><spring-ai.version>1.0.0-M6</spring-ai.version></properties><dependencies><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-mcp-server-spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.36</version></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-bom</artifactId><version>${spring-ai.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

其中最重要的一个依赖是spring-ai-mcp-server-spring-boot-starter,引入这个依赖后项目才能和大模型进行通信
之后编写服务类,实现文件写入的具体逻辑:

importcom.example.aidemo.bean.FileWriteRequest;importlombok.extern.slf4j.Slf4j;importorg.springframework.ai.tool.annotation.Tool;importorg.springframework.stereotype.Service;importjava.nio.file.Path;importjava.nio.file.Paths;@Slf4j@ServicepublicclassLocalFileService{@Tool(description="写入本地文件,自动创建文件和目录")publicStringwriteLocalFile(FileWriteRequestrequest){StringfilePath=request.getFilePath();Pathpath=Paths.get(filePath);PathpathParent=path.getParent();Stringcontent=request.getContent();// 文件内容try{if(!pathParent.toFile().exists()){pathParent.toFile().mkdirs();}java.nio.file.Files.write(path,content.getBytes());return"写入成功";}catch(Exceptione){log.error("写入文件失败",e);return"写入文件失败";}}}
importcom.fasterxml.jackson.annotation.JsonInclude;importcom.fasterxml.jackson.annotation.JsonProperty;importcom.fasterxml.jackson.annotation.JsonPropertyDescription;importlombok.AllArgsConstructor;importlombok.Data;importlombok.NoArgsConstructor;@NoArgsConstructor@AllArgsConstructor@Data@JsonInclude(JsonInclude.Include.NON_NULL)publicclassFileWriteRequest{@JsonProperty(required=true,value="filePath")@JsonPropertyDescription("需要写入的文件路径")privateStringfilePath;@JsonProperty(required=true,value="content")@JsonPropertyDescription("写入文件的具体内容")privateStringcontent;}

将服务类注册进MCP服务:

importcom.example.aidemo.service.LocalFileService;importorg.springframework.ai.tool.ToolCallbackProvider;importorg.springframework.ai.tool.method.MethodToolCallbackProvider;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;@ConfigurationpublicclassMcpServerConfig{@BeanpublicToolCallbackProviderlocalFileToolCallbackProvider(LocalFileServicelocalFileService){returnMethodToolCallbackProvider.builder().toolObjects(localFileService).build();}}

之后可以启动该项目查看日志:

在日志里可以看到,已经成功注册了一个工具,就是之前编写的文件写入服务。然后将该项目打成jar包就行了:

4、在Cline中配置MCP服务

在Cline的右上方点击MCP Server,再点击Installed,再点击下面的Configure MCP Servers

配置文件,其他的基本都是固定的,需要改变的是jar包的位置和方法名:

如果方法涉及到中文输入,比如查询某个城市的天气,需要在启动命令中添加:

-Dfile.encoding=UTF-8 -Dconsole.encoding=UTF-8

配置完毕保存后,Cline会自动更新配置,更新完毕后就可以在Installed一栏中看到本地的MCP服务了:

至此已全部完成,之后测试就行

测试

返回Cline对话框,选择Act模式,之后向大模型交代任务:

大模型会根据语义理解,并自动调用本地配置好的MCP服务:

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询