Weather MCP
An MCP server for accessing real-time weather data and forecasts.
Weather MCP Server
A Model Context Protocol (MCP) server for weather data using Spring AI.
🚀 Quick Start
Build the JAR file first
./mvnw clean package
Start the MCP server
docker-compose up
The server will be available at:
- HTTP: http://localhost:8080
- MCP Endpoint: http://localhost:8080/sse
- Health: http://localhost:8080/actuator/health
🔌 Cursor Integration
Add to your ~/.cursor/mcp.json
:
{ "mcpServers": { "weather": { "command": "<ABSOLUTE_PATH_OF_REPO_ON_LOCAL_MACHINE>/weather/start-mcp-server.sh" } } }
🛠️ Available Tools
getWeatherForecastByLocation(latitude, longitude)
- Get weather forecastgetAlerts(state)
- Get weather alerts for US states
🐳 Docker Commands
Build the JAR (required before running docker-compose)
./mvnw clean package
Start in background
docker-compose up -d
View logs
docker-compose logs -f
Stop
docker-compose down
Rebuild and start
./mvnw clean package && docker-compose up --build
🧑💻 Development
Prerequisites
- Java 21 (e.g. OpenJDK 21 or Temurin 21)
- Maven 3.9+
- Docker & Docker Compose
Build Locally
Compile & run unit tests
./mvnw clean verify
Build the runnable JAR (output in target/)
./mvnw clean package
Run Locally
Run with the JVM directly
java -jar target/weather-0.0.1-SNAPSHOT.jar
Or use Spring Boot devtools for hot-reload
./mvnw spring-boot:run
Or run with Docker Compose
./mvnw clean package && docker-compose up
The server starts on http://localhost:8080
by default.
Environment Variables
Name | Default | Description |
---|---|---|
SERVER_PORT | 8080 | HTTP port to bind |
SPRING_AI_MCP_SERVER_STDIO | false | Run the MCP server over stdio (useful for editor integrations) |
SPRING_PROFILES_ACTIVE | (none) | Comma-separated list of Spring profiles |
Variables can be defined in src/main/resources/application.yml
, overridden via -D
flags, or exported in your shell.
📡 API Reference
This project exposes two flavours of API:
- MCP Tool Endpoints – consumed by supporting IDEs (e.g. Cursor).
- REST Endpoints – ordinary HTTP endpoints that you can call with
curl
, Postman, etc.
MCP Tools
Tool | Signature | Description |
---|---|---|
getWeatherForecastByLocation | (latitude: number, longitude: number) | Returns a human-readable multi-day forecast for the supplied co-ordinates. |
getAlerts | (state: string) | Returns active alerts for the supplied US state (two-letter code). |
REST Endpoints
Method | Path | Example |
---|---|---|
GET | /forecast?lat={lat}&lon={lon} | /forecast?lat=37.7749&lon=-122.4194 |
GET | /alerts/{state} | /alerts/CA |
Note: the REST layer simply proxies to the same service methods backing the MCP tools.
Related Servers
Dokploy
An AI-powered interface for managing the Dokploy infrastructure platform.
Open-Meteo
Access global weather forecasts and historical data through the Open-Meteo API.
Salesforce MCP Server
Integrates Claude with Salesforce, enabling natural language interactions with your Salesforce data and metadata.
AWS Customer Playbook Advisor MCP
Provides real-time AWS security guidance by fetching official security playbooks from the AWS Customer Playbook Framework GitHub repository.
Secure Ubuntu MCP Server
A security-focused MCP server for performing safe operations on an Ubuntu system, featuring robust security controls and audit logging.
Fastly NGWAF
Manage web application security through the Fastly NGWAF API using natural language.
Remote MCP Server (Authless)
A remote MCP server deployable on Cloudflare Workers without authentication. It can be deployed via Cloudflare or run locally using npm.
HuggingFace Spaces
Server for using HuggingFace Spaces, supporting Images, Audio, Text and more. Claude Desktop mode for ease-of-use.
Pangea MCP proxy
Protect any MCP server from malicious entities and confidential PII using Pangea's AI Guard and Vault.
My MCP Server
A remote MCP server deployable on Cloudflare Workers without authentication.