气象数据服务器

一个基于Java的统一服务器,通过REST、MCP和Chat三种API接口提供天气、雪况和空气质量数据。

  • by schlpbch
  • Java
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 schlpbch/open-meteo-mcp-java

使用说明

开放式Meteo MCP服务器(Java)

一台统一服务器 提供天气、雪况和空气质量数据 通过 三个API接口 (REST、MCP、聊天)-所有这些都由同一台设备提供支持 核心业务逻辑-通过 开放气象API.

概述

统一架构: 具有共享业务逻辑的单服务器应用程序 公开三个不同的API接口:

接口 端点 目的
REST API /api/* 直接HTTP/JSON访问天气服务
MCP API /sse 人工智能助手的模型上下文协议(Claude)
聊天API /api/chat/* 带记忆的对话式AI界面

共享能力:

  • 11 MCP工具 -天气、雪、空气质量、位置、警报、天文学、, 海洋的
  • 4 MCP资源 -天气代码、参数、空气质量指数参考、瑞士 位置
  • 3个MCP提示 -滑雪旅行、户外活动、旅行计划

快速开始

# Clone and build
git clone https://github.com/schlpbch/open-meteo-mcp-java.git
cd open-meteo-mcp-java
mvn clean install

# Run
mvn spring-boot:run

# Or with Docker
docker compose up --build

终点:

  • 健康:http://localhost:8888/actuator/health
  • 休息:http://localhost:8888/api/weather(及其他 /api/* 端点)
  • MCP:http://localhost:8888/sse
  • 聊天:http://localhost:8888/api/chat

架构: 所有三个API共享相同的天气服务、业务 逻辑和数据模型。选择最适合您用例的界面- REST用于直接集成,MCP用于AI助手,或Chat用于对话 互动。

MCP工具

核心工具

工具 说明
search_location 地理编码-按名称搜索位置
get_weather 天气预报,包括温度、降水
get_snow_conditions 雪深、降雪量、滑雪条件
get_air_quality 空气质量指数、污染物、紫外线指数、花粉

高级工具

工具 说明
get_weather_alerts 基于阈值的天气警报
get_comfort_index 户外活动舒适度评分(0-100)
get_astronomy 日出、日落、黄金时段、月相
search_location_swiss 瑞士特定位置搜索
compare_locations 多地点天气比较
get_historical_weather 历史数据(1940年至今)
get_marine_conditions 湖泊和海岸的波浪/涌浪数据

Claude桌面集成

添加到您的Claude Desktop配置中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 窗户: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "open-meteo": {
      "command": "java",
      "args": ["-jar", "/path/to/open-meteo-mcp-2.0.2.jar"]
    }
  }
}

或者使用中的安装脚本 claude-desktop/.

配置

# Environment variables
AZURE_OPENAI_KEY=your_key
OPENAI_API_KEY=your_key
ANTHROPIC_API_KEY=your_key
REDIS_URL=redis://localhost:6379
# application.yml
openmeteo:
  chat:
    enabled: true
    memory:
      type: redis # or inmemory

测试

mvn test                    # Run all tests
mvn test jacoco:report      # With coverage report

当前: 577项测试通过,81%的指令覆盖率(超过80%的目标)

文档

技术栈

  • Java 25 使用虚拟线程
  • 弹簧靴4.1.0-M4 / 春季AI 2.0.0-M4 / 春季安全7.1.0-M3
  • 码头工人 (日蚀特穆林)/ Redis 8
  • JUnit5 +Mockito+AssertJ+反应堆测试
  • JJWT 0.12.7 (JWT身份验证)/ 杰克逊3 (JSON序列化)

许可证

Apache 2.0-请参阅 许可证

信用:


v2.1.2 -企业就绪