MCP (Model Context Protocol) 学习

部署运行你感兴趣的模型镜像

参考 :(2 封私信) AI是如何确定应使用的MCP Server的? - 知乎

MCP的全称是模型上下文协议(Model Context Protocol),是由Anthropic推出的一种开放标准协议。其设计目的在于让大型语言模型(LLMs)能够与外部的数据源和工具实现无缝交互。MCP就像是为AI提供了一个“通用插头”,使得这些智能模型可以像我们使用USB接口一样,轻松连接到各种不同的设备和服务上。

MCP Server Boot Starter :: Spring AI Reference

GitHub - spring-projects/spring-ai-examples

MCP允许AI模型通过标准化的方式连接到外部数据源或服务(比如天气API、数据库查询等)。

Spring MCP Server

Spring MCP Server 提供了三种不同的模式:

  • • Standard Input/Output (STDIO) - spring-ai-starter-mcp-server
  • • Spring MVC (Server-Sent Events) - spring-ai-starter-mcp-server-webmvc
  • • Spring WebFlux (Reactive SSE) - spring-ai-starter-mcp-server-webflux
  • Standard MCP Server 适合简单的本地开发和单进程通信。
  • WebMVC Server Transport 适合传统的基于 Servlet 的 Web 应用,支持同步模式。
  • WebFlux Server Transport 适合高性能、高并发的响应式应用,支持异步模式。

WebFlux Server Transport

  • 核心功能:WebFlux Server Transport 是基于 Spring WebFlux 的服务器实现。它提供了响应式 SSE 支持,能够处理高并发的异步流式数据。
  • 适用场景:适合需要高性能、非阻塞 I/O 的现代响应式应用,特别是在处理大量并发连接时表现出色。
  • 特点
    • • 基于响应式编程模型,支持非阻塞操作。
    • • 提供响应式的 SSE 端点,客户端可以通过 text/event-stream 协议与服务器进行流式交互。
    • • 支持异步模式,适合需要高并发和低延迟的应用。

GitHub - spring-projects/spring-ai-examples

打开项目后,我们先运行 McpServerApplication.java

然后运行测试文件 ClientSse.java ,可以看到终端返回了天气信息。



Dify MCP客户端是指在Dify平台上通过插件安装的能够调用MCP Server的工具。具体来说:

  • Dify MCP客户端是指Dify平台上的插件,这些插件允许Dify作为客户端与MCP Server进行交互。

  • 它们包括Agent策略MCP SSE / StreamableHTTP插件,其中Agent策略支持MCP工具,而MCP SSE / StreamableHTTP插件则用于处理基于HTTP和SSE协议的MCP请求。

  • 通过安装这些插件,Dify可以轻松地将任何MCP Server配置为工具,从而调用这些服务中的功能或数据。

这个客户端插件的存在,使得Dify能够与遵循MCP协议的外部服务无缝对接,扩展其功能并利用更多外部资源。

Dify 暂时未使用

参考:必看!SpringAI轻松构建MCP Client-Server架构-腾讯云开发者社区-腾讯云

STDIOStandard Input/Output(标准输入/输出)的缩写。

spring-ai-starter-mcp-client 这个上下文中,支持 STDIO 意味着该客户端可以通过进程的标准输入(stdin)和标准输出(stdout)流与另一个进程进行通信。

具体来说:

  1. 通信方式:它不依赖于网络(如 HTTP),而是通过操作系统提供的标准输入输出流。通常,一个进程(比如你的 Spring Boot 应用)会启动另一个进程(比如一个实现了 MCP 协议的本地工具或服务),然后通过读取该子进程的 stdout 来接收数据,并通过向其 stdin 写入数据来发送指令。
  2. 应用场景:这种方式常用于与本地运行的、命令行工具风格的进程进行集成。例如,你的 Spring Boot 应用启动一个 Python 脚本,这个脚本负责与某个 AI 模型交互,两者之间通过 STDIO 传递 JSON 格式的请求和响应。
  3. 优点
    • 简单高效:对于本地进程间通信(IPC),STDIO 通常比网络通信开销更小。
    • 易于集成:很多脚本语言(Python, Node.js 等)编写的工具天然支持从 stdin 读取输入并输出到 stdout,便于与主应用集成。
    • 跨语言:只要子进程能处理 STDIO 流,就可以用任何语言编写。
  4. 与 HTTP/SSE 的对比
    • HTTP/SSE (Server-Sent Events) 是基于网络的通信,适用于远程服务或需要通过网络 API 访问的场景。
    • STDIO 是基于本地进程管道的通信,适用于与同一台机器上运行的辅助进程协作。

总结: 在 spring-ai-starter-mcp-client 中,STDIO 支持允许你的 Spring Boot 应用通过标准输入输出流,与一个本地运行的、实现了 MCP (Model Context Protocol) 的进程进行通信,为集成本地 AI 工具或代理提供了一种轻量级、高效的途径。

参考 SpringAI系列---【MCP协议与AI Agent技术解析】 - 少年攻城狮 - 博客园

一、核心概念与角色定位

1. MCP协议(Model Context Protocol)

  • 定义:由Anthropic提出的开放协议,标准化AI模型与外部系统的交互接口
  • 三大核心特性
    • 🌀 动态服务发现:自动识别可用设备与服务
    • 🧩 协议统一化:屏蔽不同品牌设备的API差异
    • 🔄 双向通信:支持状态监控与实时控制

2. AI Agent(智能代理)

  • 本质:具备自主决策能力的AI程序
  • 核心能力
    • 上下文感知(用户习惯/环境状态)
    • 多目标优化(舒适度 vs 节能)
    • 异常自愈(设备故障自动切换)

3. FunctionCall(函数调用)

  • 传统模式:硬编码调用特定设备API
  • 典型缺陷
    • 🔗 设备强耦合(更换品牌需重构代码)
    • 📉 扩展性差(新增设备需修改逻辑)

4. Spring AI

  • 定位:企业级AI应用开发框架
  • 核心价值
    • 🛠️ 封装MCP协议实现细节
    • 🔒 提供安全审计与权限控制
    • 📈 支持高并发设备管理

您可能感兴趣的与本文相关的镜像

ComfyUI

ComfyUI

AI应用
ComfyUI

ComfyUI是一款易于上手的工作流设计工具,具有以下特点:基于工作流节点设计,可视化工作流搭建,快速切换工作流,对显存占用小,速度快,支持多种插件,如ADetailer、Controlnet和AnimateDIFF等

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值