Weather Prediction MCP Server
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 ServerWhat's the weather in Tokyo and should I bring an umbrella?"
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 Prediction MCP Server + Agent
A weather forecasting and recommendation system built with FastMCP, Open-Meteo, Databricks Apps, Unity AI Gateway, and a Databricks Agent Bricks Supervisor Agent.
This project was created as part of the Day 3 MCP Server + Agent homework. It follows the architecture demonstrated in the databricks-lakebase-app-day-3 project while replacing the stock-trading use case with a custom weather prediction system.
The project includes:
A custom FastMCP weather server
A separate weather API adapter/broker
Three weather MCP tools
Open-Meteo integration
A Databricks-hosted MCP server
Unity AI Gateway MCP registration
A Databricks Supervisor Agent
Weather-based prediction and recommendation logic
An optional weather dashboard deployed as a separate Databricks App
Architecture
User
|
v
+----------------------+
| Databricks Supervisor|
| Agent |
+----------+-----------+
|
| MCP tool call
v
+----------------------+
| Unity AI Gateway |
| mcp-weather-prediction|
+----------+-----------+
|
| Streamable HTTP
v
+----------------------+
| Databricks App |
| FastMCP Server |
+----------+-----------+
|
v
+----------------------+
| weather_broker.py |
| API + parsing layer |
+----------+-----------+
|
v
+----------------------+
| Open-Meteo |
| Weather + Geocoding |
+----------------------+The optional dashboard is deployed separately:
User
|
v
+-----------------------+
| Weather Dashboard App |
| Flask |
+-----------+-----------+
|
v
+-----------------------+
| weather_broker.py |
+-----------+-----------+
|
v
+-----------------------+
| Open-Meteo |
+-----------------------+Related MCP server: Weather MCP Server
Project Structure
Weather-Prediction-MCP-Server-Agent/
│
├── weather_broker.py
├── weather_mcp_server.py
├── requirements.txt
├── app.yaml
├── system_prompt.md
├── README.md
│
├── screenshots/
│ ├── current-weather.png
│ ├── forecast.png
│ └── recommendation.png
│
└── dashboard/
├── app.py
├── weather_broker.py
├── app.yaml
├── requirements.txt
│
└── templates/
└── index.htmlWeather API
Open-Meteo
This project uses Open-Meteo as the weather data provider.
Open-Meteo was selected because:
No API key is required
No credit card is required
No signup is required
It provides current and forecast weather data
It provides a geocoding API for converting city names into coordinates
Because Open-Meteo does not require authentication, this project does not need to store an API key or weather API credentials in Databricks Secrets.
This also prevents API credentials from being accidentally committed to Git.
Broker / Adapter Layer
All communication with Open-Meteo is handled by:
weather_broker.pyThe broker is responsible for:
Resolving location names
Calling Open-Meteo
Parsing API responses
Converting weather data into clean Python dictionaries
Performing recommendation logic
Handling API and location errors
The MCP server itself does not make raw HTTP requests.
This keeps the architecture separated into:
MCP Tool
|
v
Broker / Adapter
|
v
External Weather APIThis follows the same general separation of responsibilities as the broker pattern from the Day 3 project.
MCP Server
The MCP server is implemented using FastMCP.
The server is defined in:
weather_mcp_server.pyIt exposes weather functionality using @mcp.tool decorated functions and runs using HTTP transport so that Databricks can connect to it as an external MCP server.
The deployed MCP endpoint follows the pattern:
https://<databricks-app-url>/mcpMCP Tools
The project implements the three required weather capabilities.
1. get_current_weather
get_current_weather(location: str)Returns current weather conditions for a location.
Example question:
What's the weather in Chicago right now?Example data returned by the tool includes:
Location
Country
Temperature
Feels-like temperature
Humidity
Wind speed
Weather code
Observation time
Example:
{
"location": "Chicago",
"country": "United States",
"temperature_f": 71.2,
"feels_like_f": 77.1,
"humidity_percent": 93,
"wind_mph": 3.7,
"weather_code": 0,
"as_of": "2026-08-09T21:00"
}2. get_forecast
get_forecast(location: str, days: int = 5)Returns a multi-day weather forecast.
Example question:
Will it rain in Austin tomorrow?The forecast includes:
Date
Daily high temperature
Daily low temperature
Precipitation probability
Wind speed
Weather code
The Agent can use these values to answer natural-language questions about future weather.
3. get_travel_recommendation
get_travel_recommendation(location: str, date: str)Provides a derived weather recommendation instead of simply returning raw API data.
Example question:
Should I bring a jacket or umbrella to Seattle tomorrow?The tool applies deterministic rules to the forecast.
Current recommendation rules include:
Weather condition | Recommendation |
Precipitation probability >= 40% | Bring an umbrella |
Forecast high < 60°F | Bring a jacket |
Wind > 25 mph | Warn about windy conditions |
Forecast high >= 85°F | Recommend hydration / hot-weather preparation |
If none of the thresholds are crossed, the tool explains that no special weather gear is recommended.
This tool demonstrates simple prediction/recommendation logic instead of acting as a direct API passthrough.
Error Handling
The project handles failures at both the broker and MCP layers.
Examples include:
Invalid or unresolved locations
Open-Meteo request failures
Invalid forecast dates
External API outages
Unexpected response data
Instead of exposing a Python stack trace to the agent, MCP tools return a clean error response.
The Supervisor Agent is also instructed not to invent weather information when a tool fails.
Databricks Deployment
MCP Server App
The FastMCP server is deployed as its own Databricks App.
The application uses app.yaml to start:
weather_mcp_server.pyThe server listens using HTTP transport and exposes its MCP endpoint at:
/mcpThe MCP server was verified to start successfully using FastMCP and Streamable HTTP.
Unity AI Gateway
After deploying the MCP server, it was registered in:
Unity AI Gateway
-> MCPs
-> mcp-weather-predictionThe registered MCP service points to the deployed Databricks App's /mcp endpoint.
This allows Databricks agents to discover and execute the custom weather tools.
Databricks Agent Bricks
A Supervisor Agent was created in Databricks and connected to:
mcp-weather-predictionas a UC MCP Service.
The Supervisor Agent can therefore translate natural-language weather questions into MCP tool calls.
For example:
User:
What's the weather in Chicago right now?
↓
Supervisor Agent
↓
get_current_weather
↓
mcp-weather-prediction
↓
Open-Meteo
↓
Final natural-language responseAgent System Prompt
The Supervisor Agent uses instructions designed to prevent weather hallucinations and encourage correct tool selection.
You are a weather assistant.
Use the connected weather MCP tools whenever the user asks about current
or future weather.
Use get_current_weather for current conditions.
Use get_forecast for future weather questions.
Use get_travel_recommendation when the user asks what they should wear,
bring, or prepare for.
Do not invent temperatures, precipitation chances, wind speeds, or
conditions. Base weather claims only on MCP tool results.
If a location cannot be resolved, ask the user to clarify the location.
If a tool returns an error, explain the failure rather than guessing.
Treat forecasts as predictions, not guarantees.A copy of these instructions is also stored in:
system_prompt.mdAgent Demonstrations
Three different natural-language questions were tested to demonstrate each required capability.
Test 1 — Current Conditions
What's the weather in Chicago right now?The Supervisor Agent selected:
get_current_weatherfrom:
mcp-weather-predictionDatabricks displayed the MCP tool invocation, structured tool output, and final natural-language answer.
Screenshot
Test 2 — Weather Forecast
Will it rain in Austin tomorrow?The agent used:
get_forecastThe forecast data was retrieved through the MCP server and interpreted by the Supervisor Agent.
Screenshot
Test 3 — Travel Recommendation
Should I bring a jacket or umbrella to Seattle tomorrow?The agent used:
get_travel_recommendationThis demonstrates the project's derived prediction/recommendation capability.
Screenshot
Optional Weather Dashboard
As an additional feature, the project includes a small Flask-based weather dashboard deployed as a second Databricks App.
The dashboard supports:
Current Weather
Users can enter a location and view:
Temperature
Feels-like temperature
Humidity
Wind
Weather code
Last updated time
Forecast
Users can select the forecast option and request multiple forecast days.
The dashboard displays:
Daily high
Daily low
Precipitation probability
Wind speed
Travel Recommendation
Users can select a location and date to receive the same weather-based recommendation logic used by the MCP project.
Example dashboard output:
Chicago, United States
Temperature 72.0°F
Feels Like 78.9°F
Humidity 91%
Wind 1.6 mph
Weather code: 3
Updated: 2026-08-09T21:30The dashboard is intentionally deployed separately from the MCP server, following the multi-app architecture demonstrated in the Day 3 project.
Local Testing
Install the MCP server dependencies:
pip install -r requirements.txtRun the MCP server:
python weather_mcp_server.pyThe server starts using FastMCP HTTP transport.
For example:
Starting MCP server 'weather-prediction'
transport 'http'
http://0.0.0.0:8000/mcpThe broker can also be tested directly:
from weather_broker import (
get_current_weather,
get_forecast,
get_travel_recommendation,
)
print(get_current_weather("Chicago"))
print(get_forecast("Austin", 3))
print(
get_travel_recommendation(
"Seattle",
"2026-08-11",
)
)Running the Dashboard
Install the dashboard dependencies:
cd dashboard
pip install -r requirements.txtRun:
python app.pyThe Flask application starts on the configured Databricks application port or port 8000 when running locally.
Databricks Apps
This project uses two separate Databricks Apps.
Application | Purpose |
| Hosts the FastMCP weather server |
Weather Dashboard | Optional user-facing Flask dashboard |
MCP Server App
https://weather-mcp-server-agent-7474659615296236.aws.databricksapps.com/Dashboard App
https://weather-mcp-server-agent-7474659615296236.aws.databricksapps.com/Technologies Used
Python
FastMCP
MCP / Model Context Protocol
Open-Meteo
Requests
Flask
Databricks Apps
Databricks Agent Bricks
Databricks Supervisor Agent
Unity AI Gateway
Git / GitHub
Security
No weather API credentials are stored in the repository.
Open-Meteo does not require an API key, so there are:
No hardcoded weather API keys
No committed weather credentials
No
.envweather secretsNo API credentials exposed through the MCP tools
If the project were changed to use an authenticated weather provider, API credentials should be stored using Databricks Secrets rather than committed to source control.
Key Design Decisions
Separate broker and MCP layers
HTTP requests and parsing are isolated in weather_broker.py, keeping the MCP tool functions thin.
Deterministic recommendation logic
The recommendation tool applies explicit weather thresholds, making its behavior easy to understand and test.
Tool-grounded agent responses
The Supervisor Agent is instructed to use MCP results for weather claims instead of generating weather values itself.
Open-Meteo
Open-Meteo allows the entire pipeline to run without API-key management while still providing real weather data.
Separate dashboard deployment
The optional dashboard runs as a separate Databricks App so the user-facing interface remains independent from the MCP protocol server.
Future Improvements
Possible extensions include:
Severe weather alerts
National Weather Service integration
Historical weather lookup
Comparing weather between multiple cities
Weather-code-to-description/icon mapping
Query history and analytics
Lakebase storage for recent agent predictions
Dashboard charts
Celsius/Fahrenheit selection
More advanced packing recommendations
Summary
This project demonstrates an end-to-end custom MCP workflow on Databricks:
Natural-language question
↓
Databricks Supervisor Agent
↓
Unity AI Gateway
↓
Custom FastMCP Server
↓
Weather Broker
↓
Open-Meteo
↓
Structured weather data
↓
Agent response / recommendationThe completed system demonstrates all three required capabilities:
Current weather conditions
Multi-day weather forecasts
Derived weather-based recommendations
It also includes an optional Flask weather dashboard deployed as a second Databricks App.
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-qualityDmaintenanceEnables AI assistants to fetch current weather conditions and forecasts for any city using the Open-Meteo API. Provides temperature, precipitation, and hourly forecast data through natural language queries.
- Alicense-qualityFmaintenanceEnables AI assistants to retrieve current weather, forecasts, and summaries for any global location using the Open-Meteo API, with no API key required.15Creative Commons Zero v1.0 Universal
- Flicense-qualityDmaintenanceProvides real-time weather and forecasts via Open-Meteo, supporting queries by coordinates or city name.
- FlicenseBqualityDmaintenanceProvides current weather conditions and forecasts for any location using the Open-Meteo API.2
Related MCP Connectors
Global weather via Open-Meteo: forecast, ERA5 archive, marine, air quality, geocoding, elevation.
US weather & geo for AI agents: forecasts, alerts, earthquakes, elevation, geocoding. No keys.
Open-Meteo MCP — weather forecast + historical reanalysis + sister APIs
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/owaisjafer7/Weather-Prediction-MCP-Server-Agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server