使用springAI搭建一个MCP服务端

实现2个mcp服务,一个加法,一个乘法。

package spring.ai.example.spring_ai_demo.tool;

import org.springframework.ai.tool.annotation.Tool;
import org.springframework.stereotype.Service;


@Service
public class Mathtool {

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


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

}

配置为bean

package spring.ai.example.spring_ai_demo;

import org.springframework.ai.tool.ToolCallbackProvider;
import org.springframework.ai.tool.method.MethodToolCallbackProvider;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import spring.ai.example.spring_ai_demo.tool.Mathtool;

@Configuration
public class ToolCallbackProviderConfig {

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

}

注意要引入依赖:

org.springframework.ai
spring-ai-starter-mcp-server-webmvc

配置如下:

spring:
  application:
    name: spring-ai-demo

  ai:
    mcp:
      server:
        enabled: true
        name: math_mcp_server
        version: 1.0.0
        sse-endpoint: /mcp

logging:
  level:
    io.modelcontextprotocol: TRACE
    org.springframework.ai.mcp: TRACE

claudecode好像只支持sse结尾,所以我这里配置了 sse-endpoint: /mcp

启动以后,用postman验证一下服务是否可用。

在这里插入图片描述
在这里插入图片描述
MCP服务可用以后,进行下一步。

在claude 中使用我们自己的MCP服务

添加mcp服务

claude mcp add --transport sse --scope user my-sse-mcp http://localhost:8080/mcp

查看

claude mcp list
Checking MCP server health…

my-sse-mcp: http://localhost:8080/mcp (SSE) - ✓ Connected

测试

在这里插入图片描述

spring ai日志中也正常打印出了请求信息
在这里插入图片描述

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐