weather-prediction-mcp-server
Provides weather data and travel recommendations to AI agents in Databricks Agent Bricks, enabling them to access real-time weather and forecasts for any city.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@weather-prediction-mcp-serverCompare the weather in Paris and London for the next 3 days."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Weather MCP Server
A Model Context Protocol (MCP) server that provides weather data and intelligent travel recommendations through the OpenMeteo API. This server enables AI agents in Databricks Agent Bricks to access real-time weather information and forecasts for any city worldwide.
Architecture
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────────┐
│ │ │ │ │ │
│ OpenMeteo API │◄────►│ MCP Server App │◄────►│ Agent Bricks Agent │
│ │ │ (Databricks) │ │ (Databricks) │
│ - Weather Data │ │ - FastMCP │ │ - Natural Language │
│ - Geocoding │ │ - Tool Exposure │ │ - Tool Invocation │
│ │ │ │ │ │
└─────────────────┘ └──────────────────┘ └─────────────────────┘Related MCP server: my-weather-server-0706
Available Tools
The MCP server exposes four weather-related tools that can be invoked by AI agents:
1. get_current_weather(location: str)
Get current weather data for a specific city.
Parameters:
location: City name (e.g., "Berlin", "New York", "Tokyo")
Returns:
Current temperature (°C)
Relative humidity (%)
Precipitation (mm)
Wind speed (km/h)
Location coordinates (latitude, longitude)
2. get_forecast(location: str, days: int)
Get weather forecast for the next N days (up to 16 days).
Parameters:
location: City namedays: Number of forecast days (1-16)
Returns:
Daily forecast including:
Min/max temperature (°C)
Precipitation probability (%)
Max wind speed (km/h)
Date timestamp
3. get_cities_weather_comparison(locations: list[str], days: int)
Compare weather across multiple cities and recommend the best weather conditions.
Parameters:
locations: List of city names (minimum 2 cities)days: Number of days to analyze (0 for current weather, 1-16 for forecast)
Returns:
Weather comparison data for all cities
Weather scores based on temperature, precipitation, wind, and humidity
Recommendation for the city with the best weather conditions
4. get_travel_recommendation(location: str, days: int)
Get practical travel recommendations based on weather conditions.
Parameters:
location: City namedays: Number of days to analyze (0 for current weather, 1-16 for forecast)
Returns:
Weather summary
Actionable recommendations (e.g., "Bring an umbrella", "Pack sunscreen")
Architecture & Setup Guide
Step 1: Create the Weather Broker Module
First, we created a weather_broker.py module that handles:
Geocoding: Translates city names to coordinates using OpenMeteo's geocoding API
API Integration: Connects to OpenMeteo's weather and forecast endpoints
Data Processing: Formats weather data into structured responses
Step 2: Implement the MCP Server
The weather_mcp_server.py file exposes weather tools using FastMCP:
Defines four MCP tools with clear signatures and documentation
Handles error cases (invalid locations, API failures)
Implements weather scoring algorithms for comparisons
Provides logging for debugging and monitoring
Step 3: Deploy the MCP Server as a Databricks App
Create an
app.yamlconfiguration file specifying:Python dependencies (fastmcp, requests)
Entry point and command
Compute requirements
Deploy the app using Databricks Apps
The server becomes accessible at a unique URL endpoint
Step 4: Create an Agent in Agent Bricks Playground
Navigate to the Agent Bricks Playground in Databricks
Create a new agent
Configure the MCP server connection:
Add the deployed app URL as an external MCP server
The agent automatically discovers the four weather tools
Step 5: Configure the System Prompt
Set up the agent's system prompt to guide its behavior. For this project, we used:
Custom System Prompt:
Only answer for locations you can resolve; if the API call fails, say so rather than guessing.
Ask the user to clarify in case of any error.This prompt ensures the agent:
Provides accurate information based only on successful API responses
Avoids hallucinating weather data when locations cannot be resolved
Clearly communicates API failures to the user
Requests clarification for ambiguous or invalid locations
Maintains transparency about data availability
Step 6: Deploy the Agent as a Databricks App
Test the agent in the Playground
Once validated, deploy the agent as a production Databricks App
Users can now interact with the weather agent through:
Web interface
API endpoints
Integration with other Databricks workflows
Why OpenMeteo API?
I chose the OpenMeteo API for several compelling reasons:
1. Ease of Use and Setup
No API key required for basic usage
Simple RESTful interface with intuitive parameters
Straightforward JSON responses
Quick integration without authentication complexity
2. Well-Documented API
Comprehensive documentation with clear examples
Detailed parameter descriptions
Complete coverage of available data points
Active community support
3. Generous Request Limits
Free tier allows up to 10,000 requests per day
No credit card required for development and testing
Sufficient for prototyping and small-scale production use
Predictable rate limiting policies
4. Geocoding API Integration
Built-in geocoding API to translate city names into coordinates
Eliminates the need for a separate geocoding service
Handles multiple cities with the same name (returns most relevant)
Supports international cities with various naming conventions
5. Data Quality and Coverage
High-quality weather data from multiple meteorological sources
Global coverage for virtually any location
Reliable forecast accuracy up to 16 days
Frequently updated data (current weather updated every 15 minutes)
Usage Example
Once deployed, users can interact with the agent using natural language:
User: "What's the weather like in Paris right now?"
Agent: [Calls get_current_weather("Paris")]
User: "I'm planning a trip to Tokyo or Seoul next week. Which city has better weather?"
Agent: [Calls get_cities_weather_comparison(["Tokyo", "Seoul"], 7)]
User: "What should I pack for a 3-day trip to London?"
Agent: [Calls get_travel_recommendation("London", 3)]Technical Stack
MCP Framework: FastMCP (Model Context Protocol)
Weather API: OpenMeteo (free, no-auth weather API)
Deployment: Databricks Apps
Agent Platform: Databricks Agent Bricks
Language: Python 3.x
Project Structure
weather-mcp-server/
├── mcp-server/
│ ├── weather_mcp_server.py # MCP server implementation
│ ├── weather_broker.py # OpenMeteo API integration
│ ├── app.yaml # Databricks App configuration
│ └── README.md # This fileFuture Enhancements
Add historical weather data analysis
Support for hourly forecasts
Weather alerts and warnings
Air quality index integration
Extended forecast range (beyond 16 days)
Multi-language support for city names
Caching layer to reduce API calls
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityCmaintenanceAn MCP server that provides current weather conditions and forecasts via OpenWeatherMap API to AI agents.
- AlicenseAqualityBmaintenanceMCP server that provides current weather for any city using Open-Meteo APIs. It exposes a single tool 'get_weather' returning temperature, humidity, wind, and other weather data.115MIT
- Alicense-qualityCmaintenanceThis MCP server provides access to Open-Meteo weather APIs including forecast, historical reanalysis, geocoding, air quality, marine weather, and flood risk data, enabling AI agents to retrieve weather information using natural language.41MIT
- Alicense-qualityCmaintenanceMCP server providing weather data via the Open-Meteo API, including geocoding, current conditions, daily and hourly forecasts, and city lookup. No API key required, with support for multiple units and transport types.1MIT
Related MCP Connectors
Open-Meteo MCP — weather forecast + historical reanalysis + sister APIs
OpenWeather MCP — wraps the OpenWeatherMap API (openweathermap.org)
WeatherAPI.com MCP — wraps WeatherAPI.com (api.weatherapi.com)
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/joansolano/weather-prediction-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server