Spring AI——模型上下文协议(MCP)和MCP服务器启动程序
Spring AI介绍 模型上下文协议(MCP) 作为大型语言模型(LLM)的标准化方法 与外部数据、工具和服务交互.MCP提供了一个灵活的框架,使在Spring Boot中构建智能代理应用程序变得容易。
______________________________________________________________________
🔷 什么是MCP(模型上下文协议)?
主控程序 是Spring AI引入的协议和运行时模型,用于:
- 描述 外部工具, 函数,或 数据 LLM可以访问。
- 启用 结构化通信 在LLM和您的应用程序之间(例如调用外部API或数据库查询)。
- 允许 双向交互 以标准化的方式使用LLM。
它支持:
- 工具使用 (函数调用)
- 检索增强生成(RAG) 上下文
- 流媒体响应
- 插件架构
______________________________________________________________________
🔧 MCP服务器启动程序
Spring AI提供 MCP服务器启动程序 帮助开发人员快速构建符合MCP的应用程序。启动器包括自动配置和内置组件。
📦 钥匙起动模块
| 起动机 | 说明 |
|---|---|
spring-ai-starter-mcp-server | MCP服务器实现的核心支持。 |
spring-ai-starter-mcp-server-webmvc | 通过Spring Web MVC添加对HTTP传输的支持(服务 /mcp/chat, /mcp/tools等等)。 |
spring-ai-starter-mcp-server-webflux | 类似于WebVC,但适用于使用WebFlux的响应式应用程序。 |
______________________________________________________________________
📁 Maven依赖关系示例
org.springframework.ai
spring-ai-starter-mcp-server-webmvc
0.8.1
您还可以使用 spring-ai-starter-mcp-server-webflux 如果你正在构建一个反应式服务器。
______________________________________________________________________
🛠️ 基本配置示例
@Configuration
public class ToolConfig {
@Bean
public ToolCallbackProvider tools(MyService myService) {
return MethodToolCallbackProvider.of(myService);
}
}这暴露了 MyService 方法作为可调用工具,通过 /mcp/tools.
______________________________________________________________________
🌐 可用端点(通过WebVC/WebFlux)
| 终点 | 目的 |
|---|---|
/mcp/chat | 接受LLM聊天请求并返回结果。 |
/mcp/tools | 列出LLM可用的工具。 |
/mcp/context | 描述可用的RAG文档和嵌入。 |
______________________________________________________________________
📘 用例:使用LLM的工具
您可以构建一个LLM应用程序,该应用程序:
- 接受诸如“伊斯坦布尔的天气怎么样?”之类的问题
- 在内部将其映射到工具(例如。,
WeatherService.getWeather(String city)) - 调用它并将结果反馈给LLM以生成进一步的响应。
______________________________________________________________________
🔗 资源
- Spring AI文档: https://docs.spring.io/spring-ai/reference/
- MCP GitHub代码:
- Ollama+MCP服务器示例:
