trackmcp
Back to directory
suraj0223

weather-mcp

View on GitHub

MCP Server for Weather in US

0 stars JavaOthers Updated Jun 22, 2025

Documentation

Weather MCP Server

A Model Context Protocol (MCP) server for weather data using Spring AI.

๐Ÿš€ Quick Start

bash
# 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`:

json
{
  "mcpServers": {
    "weather": {
      "command": "/weather/start-mcp-server.sh"
    }
  }
}

๐Ÿ› ๏ธ Available Tools

  • `getWeatherForecastByLocation(latitude, longitude)` - Get weather forecast
  • `getAlerts(state)` - Get weather alerts for US states

๐Ÿณ Docker Commands

bash
# 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

bash
# Compile & run unit tests
./mvnw clean verify

# Build the runnable JAR (output in target/)
./mvnw clean package

Run Locally

bash
# 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

NameDefaultDescription
`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:

1. MCP Tool Endpoints โ€“ consumed by supporting IDEs (e.g. Cursor).

2. REST Endpoints โ€“ ordinary HTTP endpoints that you can call with `curl`, Postman, etc.

MCP Tools

ToolSignatureDescription
`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

MethodPathExample
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._


Frequently asked questions

What is weather-mcp?

weather-mcp is MCP Server for Weather in US

How do I install weather-mcp?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is weather-mcp open source?

Yes โ€” it is hosted on GitHub at https://github.com/suraj0223/weather-mcp.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP