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 流式传输