天气数据服务

一个基于Spring Boot的天气数据服务,通过Model Context Protocol (MCP)提供天气信息,适用于AI助手集成。

  • by devlibx
  • Java
  • 本地部署
  • 更新于
在 GitHub 查看 devlibx/experiment-java-mcp-server

使用说明

气象MCP服务器

通过模型上下文协议(MCP)提供天气信息的Spring Boot应用程序。该项目演示了如何使用Spring AI创建MCP服务器,将天气数据作为AI助手可以使用的工具公开。

📋 目录

🔍 概述

该项目实现了一个天气服务,为不同地点提供模拟天气数据。它通过模型上下文协议(MCP)公开了这一功能,允许AI助手检索指定位置的天气信息。

✨ 特性

  • 获取任何位置的当前天气信息
  • 使用真实参数生成模拟天气数据
  • MCP集成,实现AI助手兼容性
  • Spring Boot应用程序,易于设置和配置

🛠️ 技术

  • Java 17
  • 弹簧靴3.2.0
  • Spring AI MCP服务器
  • 梅文
  • 龙目

📁 项目结构

src/
├── main/
│   ├── java/
│   │   └── com/
│   │       └── gox/
│   │           └── weather/
│   │               ├── WeatherMcpApplication.java    # Main application class
│   │               ├── model/
│   │               │   └── WeatherData.java          # Weather data model
│   │               └── service/
│   │                   └── WeatherService.java       # Weather service with MCP tool
│   └── resources/
│       └── application.properties                    # Application configuration

📋 先决条件

  • Java 17或更高版本
  • Maven 3.6或更高版本
  • Node.js和npm(用于MCP检查器)

🚀 安装

  1. 克隆存储库:

    git clone https://github.com/yourusername/weather-mcp-java.git
    cd weather-mcp-java
    
  2. 构建项目:

    mvn clean install
    

🏃‍♂️ 运行应用程序

启动Spring Boot应用程序:

mvn spring-boot:run

默认情况下,应用程序将在端口8080上启动(可在中配置 application.properties).

⚙️ 在IDE工具中配置MCP

要将此MCP服务器与Cursor或Cline等IDE工具中的AI助手一起使用:

  1. 打开IDE的设置以配置AI助手
  2. 查找MCP或模型上下文协议设置
  3. 添加具有以下SSE端点的新MCP服务器:
    http://localhost:8089/sse
    
  4. 保存设置,必要时重新启动AI助手
  5. 现在,您的AI助手应该可以使用天气工具了

注意:确保端口(8089)与您的 application.properties 文件。

🔧 使用MCP检查器

MCP检查器是一个允许您测试和调试MCP服务器的工具(如果您想调试MCP服务器)。要使用它:

  1. 安装并运行MCP检查器:

    npx @modelcontextprotocol/inspector
    
  2. 在浏览器中打开MCP检查器:

    http://127.0.0.1:6274/#tools
    
  3. 通过输入SSE端点连接到MCP服务器:

    http://localhost:8080/mcp/sse
    

    注意:端口(8080)应与运行Spring Boot应用程序的端口匹配。

  4. 连接后,您可以测试 getWeather 工具通过提供位置参数。

📚 API文档

气象局

气象服务提供以下功能:

获得天气

返回指定位置的天气信息。

工具名称: getWeather

参数:

  • location (String):获取天气的地点名称(例如,“纽约”、“伦敦”、“东京”)

响应:

{
  "location": "New York",
  "temperature": 22.5,
  "condition": "Partly Cloudy",
  "humidity": 65,
  "windSpeed": 12.3
}

🤝 贡献

欢迎投稿!请随时提交拉取请求。

📄 许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。