Weather MCP
Un servidor MCP para acceder a datos meteorológicos en tiempo real y pronósticos.
GitHubPrueba este MCPPatrocinado
Documentación
Servidor Weather MCP
Un servidor de Model Context Protocol (MCP) para datos meteorológicos usando Spring AI.
🚀 Inicio rápido
# 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
🔌 Integración con Cursor
Añade a tu ~/.cursor/mcp.json:
{
"mcpServers": {
"weather": {
"command": "<ABSOLUTE_PATH_OF_REPO_ON_LOCAL_MACHINE>/weather/start-mcp-server.sh"
}
}
}
🛠️ Herramientas disponibles
getWeatherForecastByLocation(latitude, longitude)- Obtener pronóstico del tiempogetAlerts(state)- Obtener alertas meteorológicas para estados de EE. UU.
🐳 Comandos de Docker
# 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
🧑💻 Desarrollo
Requisitos previos
- Java 21 (p. ej. OpenJDK 21 o Temurin 21)
- Maven 3.9+
- Docker y Docker Compose
Compilar localmente
# Compile & run unit tests
./mvnw clean verify
# Build the runnable JAR (output in target/)
./mvnw clean package
Ejecutar localmente
# 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
El servidor se inicia en http://localhost:8080 por defecto.
Variables de entorno
| Nombre | Por defecto | Descripción |
|---|---|---|
SERVER_PORT | 8080 | Puerto HTTP para enlazar |
SPRING_AI_MCP_SERVER_STDIO | false | Ejecutar el servidor MCP sobre stdio (útil para integraciones con editores) |
SPRING_PROFILES_ACTIVE | (ninguno) | Lista separada por comas de perfiles de Spring |
Las variables se pueden definir en src/main/resources/application.yml, sobrescribirse mediante banderas -D, o exportarse en tu shell.
📡 Referencia de API
Este proyecto expone dos variantes de API:
- Endpoints de herramientas MCP – consumidos por IDEs compatibles (p. ej. Cursor).
- Endpoints REST – endpoints HTTP ordinarios que puedes llamar con
curl, Postman, etc.
Herramientas MCP
| Herramienta | Firma | Descripción |
|---|---|---|
getWeatherForecastByLocation | (latitude: number, longitude: number) | Devuelve un pronóstico legible para humanos de varios días para las coordenadas proporcionadas. |
getAlerts | (state: string) | Devuelve alertas activas para el estado de EE. UU. proporcionado (código de dos letras). |
Endpoints REST
| Método | Ruta | Ejemplo |
|---|---|---|
| GET | /forecast?lat={lat}&lon={lon} | /forecast?lat=37.7749&lon=-122.4194 |
| GET | /alerts/{state} | /alerts/CA |
Nota: la capa REST simplemente actúa como proxy hacia los mismos métodos de servicio que respaldan las herramientas MCP.