天气数据服务器

一个基于Java实现的MCP服务器,通过Open-Meteo API提供实时天气数据。

  • by stephanj
  • Java
  • 本地部署
  • 更新于
在 GitHub 查看 stephanj/JavaWeatherMCPExample

使用说明

气象MCP服务器(Java)

一个Java实现 模型上下文协议(MCP) 通过免费提供当前天气数据的服务器 开放气象API。不需要API密钥。

这是一个Java端口 PHP版本.

工具

get_current_weather

获取一个城市的当前天气。

输入:

{ "location": "Berlin" }

输出:

{
  "location": "Berlin",
  "country": "Germany",
  "coordinates": { "latitude": 52.524, "longitude": 13.4105 },
  "temperature": { "current": 5.1, "feels_like": 2.3, "unit": "°C" },
  "humidity": "74%",
  "wind": { "speed": 14.4, "direction": "SW", "unit": "km/h" },
  "conditions": "Partly cloudy",
  "timestamp": "2026-02-19T11:00"
}

构建与运行

# Build the fat JAR
mvn package

# Run manually
java -jar target/weather-mcp-1.0.0.jar

# Run tests
mvn test

MCP集成

建成后 .mcp.json 文件会自动使用Claude Code注册此服务器:

{
  "mcpServers": {
    "weather": {
      "command": "java",
      "args": ["-jar", "/Users/stephan/IdeaProjects/WeatherMCPExample/target/weather-mcp-1.0.0.jar"]
    }
  }
}

项目结构

src/main/java/com/example/weather/
├── Main.java           # Entry point — registers tools and starts server
├── McpServer.java      # MCP/JSON-RPC 2.0 protocol handler (stdio)
└── WeatherService.java # Open-Meteo geocoding + weather API client

src/test/java/com/example/weather/
├── McpServerTest.java      # Tests for JSON-RPC protocol handling
└── WeatherServiceTest.java # Tests for weather data, compass, WMO codes

需求

  • Java 21+
  • Maven 3.6+