当前位置: 首页 > news >正文

基于Spring Boot实现STDIO通信的MCP Server与验证

STDIO 是一种基于标准输入输出(Standard Input/Output)的本地通信机制,旨在实现客户端与服务端之间的高效交互。

STDIO 是 MCP 协议支持的传输方式之一,通过操作系统的管道机制(stdin/stdout)进行数据传输,适用于客户端与服务端在同一台机器上的本地通信场景。

本篇基于Spring Boot 快速演示使用Java语言实现 STDIO通信的MCP Server,以及调用和验证。开始之前,先简单介绍以下STDIO的原理。

在这里插入图片描述

MCP STDIO核心原理

  1. 通信模型
    • 双向同步通信:客户端与服务端通过 stdin/stdout 建立双向通信通道,消息按顺序处理,前一条消息处理完成后才能处理下一条(同步阻塞模型)49。
    • 协议基础:基于 JSON-RPC 2.0 格式,消息以换行符 **<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">\n</font>** 分隔,严格遵循 UTF-8 编码。
  2. 消息流程
    • 客户端:通过启动服务端子进程(如命令行工具)建立通信管道,将 JSON-RPC 请求写入 stdout。
    • 服务端:从 stdin 读取请求,处理后将 JSON-RPC 响应写入 stdout,客户端从 stdout 读取结果。

实例说明

简单起见,本篇仅演示MCP的Tool的功能,为了更简单,该工具实现的功能只是一个简单的加法运算。

在实际的应用中,大模型已经具备了加法等功能,MCP的Tool的功能是为了补全不具备的功能,比如实时查询天气预报,获取内容数据等。

  • 开发工具: VS Code

服务器定义的具体步骤

  1. 创建一个Spring Boot项目。

可以通过Spring initializer 创建,也可以在目录中直接添加一个 pom.xml 文件。

这里的项目名称是mcp-spring

  1. 添加依赖项

主要就是添加 spring-ai-starter-mcp-server ,这里使用的版本是 1.0.0-M8, 完整的 pom.xml 内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="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 http://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.5</version><relativePath /> <!-- lookup parent from repository --></parent><groupId>com.osxm.ai.mcp</groupId><artifactId>mcp-spring-stdio-server</artifactId><version>0.0.1-SNAPSHOT</version><name>Spring AI MCP STDIO server</nam

相关文章:

  • INP指标
  • GESP2024年6月认证C++八级( 第三部分编程题(2)空间跳跃)
  • 经典算法 最小生成树(prim算法)
  • 复刻低成本机械臂 SO-ARM100 组装篇(打螺丝喽)
  • 【vscode】.dart文件没有错误波浪线
  • springboot基于推荐算法的景点推荐系统(源码+lw+部署文档+讲解),源码可白嫖!
  • ES6入门---第二单元 模块二:关于数组新增
  • BUUCTF——禁止套娃
  • 【AI零件】openrouter.ai生成密钥的操作
  • Python 函数装饰器和闭包(使用装饰器改进“策略”模式)
  • 【STM32】定时器输出比较模式
  • 数字化转型进阶:26页华为数字化转型实践分享【附全文阅读】
  • 中国 AIGC 确权革命:“AI 创意・中国” 平台上线,存证成本降至 0.1 元 / 件
  • Git从入门到精通-第三章-获取Git仓库
  • GPU平台-优云智算
  • Elasticsearch:RAG 和 grounding 的价值
  • 2001-2021年各城市平均风速数据(可作工具变量)
  • 【AI论文】交互式生成视频综述
  • Python----卷积神经网络(LeNet-5的手写体识别)
  • 合成复用原则(CRP)
  • 2025上海车展圆满闭幕,共接待海内外观众101万人次
  • 产假工资是谁出?女职工生育能领多少生育津贴?解答来了
  • 德国旅游胜地发生爆炸事故,11人受伤
  • 上海与世界|黄菊与上海建设中国式全球城市
  • 解放日报:让算力像“水电煤”赋能千行百业
  • 王毅:携手做世界和平与发展事业的中流砥柱