当前位置:首页 > 技术知识 > 正文内容

Spring AI MCP:一个用于模型上下文协议的 Java SDK

MCP 是什么?



模型上下文协议 (MCP) 是一个开放协议,它标准化了应用程序如何为大语言模型 (LLM) 提供上下文。MCP 提供了一种标准化的方式,将 AI 模型连接到不同的数据源和工具,使集成变得无缝且一致。它可以帮助你在大语言模型的基础上构建智能体和复杂的流程。大语言模型通常需要与数据和工具集成,而 MCP 提供了:

  • 一个不断增长的预构建集成列表,你的大语言模型可以直接接入
  • 在大语言模型提供商和供应商之间切换的灵活性


总体架构

在核心层面,MCP 遵循客户端 - 服务器架构,一个宿主应用程序可以连接到多个服务器。



Spring AI MCP 实现了一个模块化架构,包含以下组件:

  • Spring AI 应用程序:使用 Spring AI 框架构建生成式 AI 应用程序,这些应用程序希望通过 MCP 访问数据
  • Spring MCP 客户端:Spring AI 对 MCP 协议的实现,它们与服务器保持 1:1 的连接
  • MCP 服务器:轻量级程序,每个程序都通过标准化的模型上下文协议(MCP)暴露特定的功能
  • 本地数据源:你的计算机上的文件、数据库和服务,MCP 服务器可以安全地访问它们
  • 远程服务:通过互联网(例如通过 API)可用的外部系统,MCP 服务器可以连接到这些系统


该架构支持从简单的文件系统访问到复杂的多模型 AI 交互,涵盖数据库和互联网连接等多种用例。


MCP Server

MCP 服务器是模型上下文协议(MCP)架构中的一个基础组件,它为客户端提供工具、资源和能力。



它实现了协议的服务器端,负责以下内容:

(1)服务器端协议操作的实现

  • 工具的暴露和发现
  • 基于 URI 的资源管理
  • 提供和处理提示模板
  • 与客户端进行能力协商
  • 结构化日志记录和通知


(2)并发客户端连接管理

(3)同步和异步 API 支持

(4)传输实现:

  • 基于标准输入输出(Stdio)的传输,用于基于进程的通信
  • 基于 Servlet 的 SSE(服务器发送事件)服务器传输
  • 基于 WebFlux 的 SSE 服务器传输,用于响应式 HTTP 流式传输
  • 基于 WebMVC 的 SSE 服务器传输,用于基于 Servlet 的 HTTP 流式传输


#上头条 聊热点##mcp#

相关文章

Objective-c单例模式的正确写法「藏」

单例模式在iOS开发中可能算是最常用的模式之一了,但是由于oc本身的语言特性,想要写一个正确的单例模式相对来说比较麻烦,这里我就抛砖引玉来聊一聊iOS中单例模式的设计思路。关于单例模式更多的介绍请参考...

[三菱PLC] 用"C语言"玩转PLC,三菱PLC使用ST语言超详细教程

ST语言,全称为结构化文本(Structured Text),是一种高级编程语言,专为工业自动化和控制系统设计。我们学习PLC一般是用梯形图,梯形图学会后,学习SFC,但是我发现梯形图和SFC虽然简单...

机器人需求驱动导航新SOTA,成功率提升15%!浙大&vivo联手打造

CogDDN团队 投稿量子位|公众号QbitAI让机器人像人一样边看边理解,来自浙江大学和vivo人工智能实验室的研究团队带来了新进展。正如视频所展示的,机器人在复杂的室内环境中不仅能自主探索,还具备...

Android主流UI开源库整理(android完整开源项目)

前言最近老大让我整理一份 Android主流UI开源库 的资料,以补充公司的Android知识库。由于对格式不做特别限制,于是打算用博客的形式记录下来,方便查看、防丢并且可以持续维护、不断更新。标题隐...

一文弄懂 GO 的 互斥锁 Mutex !(互斥锁的使用方法)

在 Go 语言并发编程中,互斥锁(Mutex)是一个非常重要的同步原语。本文将深入介绍 Mutex 的使用方法、实现原理以及最佳实践。1. 什么是 Mutex?Mutex(互斥锁)是一种用于多线程编程...

CPU「离奇」飙到 100%!开发者挖出 Linux 内核 16 年老 Bug:这么多年竟无人发现?

【CSDN 编者按】每一次对旧设备的升级都仿佛是一场跨越时代的冒险。本文作者致力于将基于 PXA166 的 Chumby 8 设备从 Linux 2.6.28 版本升级到现代 6.x 版本,然而,在看...