spring-ai 第十二mcp server调用入门(http协议)

spring-ai 第十二mcp server调用入门(http协议)

官网

(MCP) 是一个标准化协议,使 AI 模型能够以结构化的方式与外部工具和资源进行交互。 想象它是一个在你的 AI 模型和现实世界之间的桥梁 - 允许它们通过一致的接口访问数据库、API、文件系统和其他外部服务。 它支持多种传输机制,以在不同的环境中提供灵活性

spring-ai网址【https://docs.spring.io/spring-ai/reference/api/mcp/mcp-overview.html】

mcp协议通信方式

  • STDIO: 通过标准输入/输出流通信,适合 AI 客户端作为子进程直接启动 MCP 服务器的本地开发与命令行工具集成场景。需关闭控制台日志以避免干扰协议消息。
  • SSE (Server-Sent Events): 基于 HTTP,允许服务器单向推送数据流。适合需要实时通知的 Web 应用,现已被 Streamable HTTP 取代。
  • Streamable HTTP: 官方推荐传输方式,使用 HTTP POST/GET 并可选 SSE 流式响应,支持多客户端并发,连接管理更高效。
  • Stateless Streamable HTTP: 无状态的 Streamable HTTP,不维护会话状态,适合无状态微服务架构,能进一步简化部署。

Java MCP的实现遵循三层架构

客户端/服务器层(顶部)
复制代码
最顶层处理主要的应用逻辑和协议操作:
McpClient - 管理客户端操作和服务器连接
McpServer - 处理服务器端协议操作和客户端请求
两个组件利用较低的会话层进行通信管理
会话层(中间)
复制代码
中间层管理通信模式并维护连接状态:
McpSession - 核心会话管理接口
McpClientSession - 客户端特定的会话实现
McpServerSession - 服务器特定的会话实现
传输层(底部)
复制代码
最底层处理实际的消息传输和序列化:
McpTransport - 管理JSON-RPC消息的序列化和反序列化
支持多种传输实现(STDIO、HTTP/SSE、可流式传输的HTTP等)
为所有高级别的沟通提供基础

mcp 服务端

复制代码
协议版本协商以确保与服务器的兼容性
能力协商以确定可用功能
消息传输和JSON-RPC通信
工具发现和执行
资源访问和管理
提示系统交互
可选功能:
    根源管理
    采样支持
    同步和异步操作
运输选项:
    基于标准输入/输出流的进程间通信传输
    Java HttpClient-based SSE客户端传输
    WebFlux SSE 客户端传输用于反应式HTTP流

mcp client源码示例

https://gitee.com/kcnf_open/spring-ai-sample/tree/master/spring-ai/spring-ai-sample10-mcp/spring-ai-sample10-mcp-server-http

pom

复制代码
<dependencies>
    <dependency>
        <groupId>org.springframework.ai</groupId>
        <artifactId>spring-ai-starter-mcp-server-webmvc</artifactId>
    </dependency>
    <!-- Spring Boot Starter 基础依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>

</dependencies>
yml配置
复制代码
server:
    port: 8083

spring:
    application:
        name: mcp-server-demo
    ai:
        mcp:
            server:
                enabled: true
                name: "mcp-server-demo"
                version: "1.0.0"
                # 关键配置:启用 Streamable HTTP 传输
                protocol: STREAMABLE
                # Streamable HTTP 端点(默认 /mcp)
                streamable-http:
                    mcp-endpoint: /mcp
                capabilities:
                    tool: true
                    resource: false
                    prompt: false
启动验证
  • 第一步

启动后,MCP Server 会在 http://localhost:8083/mcp 端点提供服务

  • 第二步

cmd 命令 执行 npx @modelcontextprotocol/inspector

  • 第三步 按照如下红色箭头操作
相关推荐
企查查数据服务2 分钟前
股权穿透+责任传导是医药并购合规健康度评分卡
大数据·人工智能
陈 洪 伟37 分钟前
Transformer彻底剖析(9):归一化演进——BatchNorm、LayerNorm、RMSNorm、Post-LN / Pre-LN、DeepNorm
人工智能·深度学习·transformer
Kari1138 分钟前
AI 手写 OCR 在教育场景的工程化:为什么准确率从 82% 做到 99% 这么难
人工智能·深度学习·机器学习
数聚天成DeepSData40 分钟前
两批标注数据合并前要核对什么
人工智能·深度学习·机器学习·数据集·deepsdata
正经教主1 小时前
【FDE系列】阶段3:Day 77:LangChain 基础 — LCEL 管道与三件套
人工智能·langchain·agent·fde
AI办公探索者1 小时前
从“岗位为中心”到“任务为中心”:企业级Agent Hub的架构演进
人工智能·架构
fly-iot1 小时前
【下一个 AI 方向】:中小企业的数字化建设,物联网解决方案思考,使用开源项目快速搭建降低成本。
人工智能·物联网
方芯半导体1 小时前
2026工业机器人控制芯片赛道:竞争格局与关键选型指标深度解析
大数据·人工智能·机器人
科创致远1 小时前
科创致远 ESOP 赋能车间图纸全维管理实战
大数据·人工智能·制造·精益工程
技灵AI2 小时前
AI 口播视频提示词怎么写?让人物讲解和产品展示更自然
人工智能·音视频