MCP 天气服务

一个基于Spring AI的MCP服务器和客户端,用于提供天气预测功能。

  • by david-santos
  • Java
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 david-santos/spring-ai-mcp

使用说明

春季ai-mcp

该项目演示了如何使用Spring AI构建MCP服务器和客户端。

这是我探索使用Spring AI构建人工智能应用程序的第三步,包括RAG、MCP和代理工作流。

这个例子在很大程度上是基于 这 春季博客文章。 它建立在 春之春. 一切都在本地运行(应用程序、模型和MCP服务器)。

概述

这个例子展示了:

建筑

┌────────────────────────────────────────────────────────────┐
│                    MCP Weather Client                      │
│  ┌─────────────┐  ┌──────────────┐  ┌──────────────────┐   │
│  │  ChatClient │──│ MCP Client   │──│ Weather Server   │   │
│  │  (Claude)   │  │  Transport   │  │ (Streamable-HTTP)│   │
│  └─────────────┘  └──────────────┘  └──────────────────┘   │
│                           │                                │
│                   ┌──────────────┐                         │
│                   │ MCP Client   │                         │
│                   │  Transport   │                         │
│                   └──────────────┘                         │
└────────────────────────────────────────────────────────────┘

演示的功能

MCP服务器功能

  • 工具:按坐标检索天气预报
  • 日志记录:发送到客户端的结构化日志消息(高级服务器功能)
  • 进度跟踪:操作的实时进度更新(高级服务器功能)
  • 采样:从客户端的LLM(高级服务器功能)请求AI生成的内容

MCP客户端功能

  • 多服务器连接:同时连接到多个MCP服务器
  • 运输支持:流式HTTP和STDIO传输
  • 处理程序注释:处理服务器通知和请求
  • LLM集成:与Olama无缝集成

先决条件

  • Java 25(已安装在您的系统上)
  • 奥拉玛 (已安装并在您的系统上运行)
  • Maven 3.9.12(通过自动拉入 ./mvnw)
  • Spring AI 2.0.0-M2(自动拉入)

构建

构建整个项目(所有模块):

./mvnw clean package

从根目录构建每个模块:

./mvnw -pl spring-ai-mcp-weather-server clean package
./mvnw -pl spring-ai-mcp-weather-client clean package

跑

从根目录运行每个模块:

./mvnw -pl spring-ai-mcp-weather-server spring-boot:run
./mvnw -pl spring-ai-mcp-weather-client spring-boot:run

Spring Boot Maven插件配置如下 --enable-native-access=ALL-UNNAMED 因此Netty的原生DNS解析器(在macOS上使用)可以在没有Java 21+受限方法警告的情况下加载。如果你用 java -jar 或者从IDE中添加JVM参数,这样警告就不会出现。

测试

ClientStreamable和ClientStdio

在 test 文件夹中有2个可运行的类,它们使用MCP Java SDK客户端以编程方式连接到服务器:

  • ClientStreamable -通过连接 Streamable HTTP 运输类型。
  • ClientStdio -通过连接 STDIO 运输类型。

MCP 检查员

这 MCP 检查员 是一个用于测试和调试MCP服务器的交互式开发工具。要启动检查器运行,请执行以下操作:

npx @modelcontextprotocol/inspector

在浏览器UI中,将传输类型设置为Streamable HTTP,将URL设置为http://localhost:8080/mcp.单击“连接”以建立连接。然后列出工具并运行 getWeatherForecast.

参考文献