Agent开发教程(一)| 基于SpringAI打造本地MCP Server,解锁私有化AI智能业务新范式!

137 阅读4分钟

无需依赖外部API,本地部署的MCP Server让企业级AI应用更安全、更经济、更高效!

当今企业数字化转型浪潮中,AI能力已成为业务创新的核心驱动力。然而,公有云API调用存在数据安全、成本控制和响应延迟等多重挑战。今天,我们将深入探讨如何基于SpringAI框架,构建一款完全本地化的MCP Server服务,深度整合企业自身业务系统。

为什么选择本地MCP Server?

MCP(Model Context Protocol)是Anthropic推出的开源协议,为AI应用与外部系统提供了标准化连接方案。结合SpringAI的本地部署优势,您可以获得:

  • 数据安全:敏感业务数据无需出域,彻底杜绝隐私泄露风险

  • 成本可控:一次部署长期使用,避免按调用次数付费的高昂成本

  • 超低延迟:本地网络环境确保毫秒级响应,提升用户体验

  • 深度定制:完全根据业务需求定制工具和资源,无缝对接现有系统

  • 离线可用:不依赖外部网络,保证业务连续性和稳定性

本地MCP Server系统技术架构设计思路:

image.png

一、环境准备

1、基础环境安装

2、开发环境与版本

  • JDK 17:推荐使用OpenJDK 17或更高版本

  • Eclipse 4.34.0:开发编译工具

  • Maven 3.9.9:项目构建工具

  • SpringBoot 3.4.9:提供现代化的Java开发体验

  • SpringAI 1.0.1:推荐使用最新稳定版本

  • Docker(可选):方便本地模型部署和管理

二、搭建框架

在Eclipse中新建maven项目,添加依赖配置:

引入SpringBoot配置

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.4.9</version>
</parent>

配置全局版本号

<properties>
  <java.version>17</java.version>
  <spring-ai.version>1.0.1</spring-ai.version>
</properties>

引入Spring AI 相关依赖版本、避免版本冲突

<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>

加入MCP Server核心依赖

<dependency>    
   <groupId>org.springframework.ai</groupId>
   <artifactId>spring-ai-starter-mcp-server-webmvc</artifactId>
</dependency>

配置MCP Server对应参数

spring:
  ai:
    mcp:
      server:
        enabled: true
        name: ktw-mcp-server
        version: 1.0.0
        type: SYNC
        sse-endpoint: /sse
        sse-message-endpoint: /mcp
        capabilities: 
          tool: true

三、直接上代码

1、自定义本地化工具

创建MathToolService类,实现本地化数学计算工具:

@Tool(description = "两个数字相加")
public Integer addNumbers(int a, int b) {
 return a + b;
}

@Tool(description = "两个数字相剪")
public Integer subtractNumbers(int a, int b) {
 return a - b;
}

@Tool(description = "两个数字相乘")
public Integer multiplyNumbers(int a, int b) {
 return a * b;
}

@Tool(description = "两个数字相除")
public Integer divideNumbers(int a, int b) {
 return a / b;
}

注入实体对象,初始化工具回调函数

@Bean
public ToolCallbackProvider mathTool() {
  return MethodToolCallbackProvider.builder().toolObjects(new MathToolService()).build();
}

至此本地化工具部分已经全部完成,mvn install成功后,即可运行。

2、在Cherry Studio中配置并调用开发好的本地MCP Server服务

安装并打开Cherry Studio工具,支持调用本地化MCP Server的版本要求V1.5.11及以上版本。在设置中添加MCP服务器,填入本地MCP Server地址。MCP Server支持三种模式,我们选择的是sse模式,更方便与业务系统集成调用。

image.png

填入Url地址保存后,即可识别我们开发的4个数据计算工具

image.png

新建一个AI助手来调用我们写的本地工具看看效果

我们将大模型设置为本地ollama管理的qwen3:14b,阿里千问3支持调用工具。设置好后,启用MCP服务功能

image.png

首先,查询一下有哪些本地计算工具

image.png

通过对话询问大模型,让大模型来调用我们设置好的MCP Server工具

image.png

可以看到,大模型通过调用我们的工具得到计算结果,就这样一个简单的本地MCP Server服务就完成了!!!

3、开发MCP Client客户端接口调用MCP Server服务(下章重点介绍如何开发MCP Client)

image.png

通过示例代码,可以看出,大模型不仅能够识别和调用本地化函数,还能分析出码农本农代码中的错别字

四、Docker容器化部署

为了方便快速部署,消除因环境差异导致的运行时问题,可使用docker容器化部署

dockerfile

FROM openjdk:17-jdk-slim
WORKDIR /app
 
COPY target/ktw-mcp-server.jar app.jar
COPY config/application.yml config/
 
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar", "--spring.config.location=file:config/application.yml"]

五、结 语

基于SpringAI的本地MCP Server为企业提供了一种安全、高效、经济的AI集成方案。通过将AI能力深度融入业务系统,企业可以:

  • 提升运营效率:自动化处理重复性业务任务

  • 增强决策能力:基于数据驱动的智能分析支持

  • 保障数据安全:敏感业务数据完全在本地处理

  • 降低运营成本:避免按调用次数付费的公有云API成本

随着本地AI模型的不断优化和硬件成本的降低,这种模式将成为企业数字化转型的重要技术基石。现在就开始构建您的企业级智能业务处理平台吧!

更多原创技术文章,请关注我的公众号【GIS极客】,或者加微信【eryeiscool】进技术交流群!