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

纯Java实现STDIO通信的MCP Server与客户端验证

在 MCP 协议中通过 STDIO(标准输入/输出)通信 是一种进程间通信(IPC)方式,服务器与客户端通过标准输入(stdin)和标准输出(stdout)交换数据。

关于STDIO 详细介绍以及如何基于Spring Boot项目实现 STDIO 的MCP服务器 以及如何调用和验证服务器可以参考:

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

Spring Boot 实现MCP Server相对来说更为简单,本篇介绍在不使用Spring Boot的状况下,如何实现实现 STDIO 的MCP服务器以及调用验证。

实例说明

本篇和Spring Boot篇类似,实现一个简单加法的 Tool。

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

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

  • 开发工具: VS Code

项目创建

创建一个mcp-pure-java 的项目目录,增加一个 pom.xml 文件,然后创建 src 及相关的子目录,创建完成的项目结构如下:

依赖导入

这里主要导入的是io.modelcontextprotocol.sdk.mcp

        <dependency><groupId>io.modelcontextprotocol.sdk</groupId><artifactId>mcp</artifactId></dependency>

目前的最新版本是0.9.0, 使用dependencyManagement进行管理。

<dependencyManagement><dependencies><dependency><groupId>io.modelcontextprotocol.sdk</groupId><artifactId>mcp-bom</artifactId><version>0.9.0</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>

创建服务器文件

这里添加一个Main 的类,该类有一个主入口main() 方法,简单起见,该演示所有的代码都放在主函数体中。

代码实现服务器的步骤主要有:

  1. 创建服务传输程序
  2. 创建一个工具
  3. 创建同步服务器

完整的代码如下所示:

/*** Description:* Author: XM* Date: 2025-05-03*/
package com.osxm.ai.mcp.purejava;import java.io.IOException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.modelcontextprotocol.server.McpServer;
import io.modelcontextprotocol
http://www.dtcms.com/a/170239.html

相关文章:

  • 普通 html 项目引入 tailwindcss
  • Go小技巧易错点100例(二十八)
  • 应用层自定义协议序列与反序列化
  • 数据赋能(209)——质量管理——时效性原则
  • 模型测试报错:有2张显卡但cuda.device_count()显示GPU卡数量只有一张
  • 昇腾的CANN是什么?跟英伟达CUDA的有什么联系和区别?【浅谈版】
  • 智能决策支持系统的系统结构:四库架构与融合范式
  • P1537 数字反转(升级版)详解
  • 【unity游戏开发入门到精通——UGUI】整体控制一个UGUI面板的淡入淡出——CanvasGroup画布组组件的使用
  • 深入探索 AAC 编码原理与 ADTS 格式:音频世界的智慧结晶
  • MCP多智能体消息传递机制(Message Passing Between Agents)
  • 注入内部Bean
  • 数据结构---
  • Scrapy框架之【settings.py文件】详解
  • Xilinx FPGA | 管脚约束 / 时序约束 / 问题解析
  • Qwen3:快慢思考融合,一键启停
  • 【Vue】性能优化与调试技巧
  • ipvsadm,是一个什么工具?
  • MySQL 中日期相减的完整指南
  • 【赵渝强老师】TiDB生态圈组件
  • 如何优化MySQL主从复制的性能?
  • 130. 被围绕的区域
  • 使用DeepSeek协助恢复历史数据
  • 介绍一下HSLA的颜色相关知识
  • 一篇文章看懂时间同步服务
  • PyTorch_阿达玛积
  • AI 与生物技术的融合:开启精准医疗的新纪元
  • GTS-400 系列运动控制器板(十四)----软限位使用
  • 【WZOI】【题解】【质数密度】质数密度题解报告
  • Java通用Mapper自定义方法