用一段代码教会你理解什么是MCP,怎么写MCP

MCP(Model Context Protocol,模型上下文协议)有两种主要的通信方式,分别是 stdio 模式和 SSE 模式。以下是具体介绍:

  • stdio(标准输入输出):客户端和服务器通过本地进程的标准输入和标准输出直接通信,就像 “面对面对话”。例如本地开发时,代码脚本通过命令行启动,直接与 MCP 服务器交换数据,无需网络连接。这种方式平台兼容性高,因为 stdio 是操作系统底层的功能,几乎所有操作系统和编程语言都支持,且用于进程间通信,通常是脚本和命令行工具的通信方式,易于实现。
  • SSE(服务器推送事件):客户端通过 HTTP 协议连接到远程服务器,服务器可以主动推送数据,类似 “电话热线”。例如 AI 助手通过网页请求调用远程天气 API,服务器持续推送最新的天气信息。SSE 允许服务器通过 HTTP 连接主动向客户端发送更新消息,适合实时推送的应用场景,并且相比 WebSocket,SSE 更轻量级,适合简单的消息推送场景。不过,SSE 是单向通信,只能服务器向客户端发送消息,客户端如果需要发送消息,必须通过标准的 HTTP 请求回服务器。

我们选择的使用SSE(服务器推送事件)

Spring官网提供了很多依赖

1.第一种是只支持stdio类型的MCP Server

2.第二种是支持MVC的SSE和stdio

 3.第三种是支持WebFlux的SSE和stdio

我们选择第二种支持MCV的SSE

1.创建一个空的Spring Boot项目(导入依赖)

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

2.在主目录下创建一个service包,创建WeatherService类

@Service("weatherService")
public class WeatherService {
    @Tool(description = "根据城市的名称获取天气")
    public String getWeather(String city) {
        return "晴天";
    }

}

这就是一个最简单的MCP(通过@Tool注解表示这个MCP是干嘛的),这样就创建了一个根据城市名称获取天气的一个MCP服务

3.在启动类当中把这个Bean进行注册

@SpringBootApplication
public class McpTestApplication {

    public static void main(String[] args) {
        SpringApplication.run(McpTestApplication.class, args);
    }
    @Bean
    public ToolCallbackProvider toolCallbackProvider(WeatherService weatherService){
        return MethodToolCallbackProvider.builder().toolObjects(weatherService).build();
    }
}

然后启动项目

4.通过Cherry Studio工具(任何一个支持MCP工具的客户端即可)

进行配置大模型

 5.然后进行创建MCP服务器

6.配置MCP服务器

7.是否检测出MCP服务

8.通过大模型配置MCP 

 9.进行调用PCM服务

这样一个最基础的MCP服务已经搭建好了,可以后期进行配置其他服务实现其他PCM服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值