Skip to main content
Glama
rajeshd101

Weather-Prediction MCP Server

by rajeshd101

Weather-Prediction MCP Server + Agent

A Streamable HTTP MCP server backed by Open-Meteo, plus the prompt and registration metadata for a Databricks Agent Bricks weather agent. Open-Meteo requires no signup, API key, or committed secret.

Related MCP server: weather-mcp

Architecture

User
  |
  v
Databricks Agent Bricks
  |  external MCP / Streamable HTTP
  v
Databricks App: weather_mcp_server.py
  |
  v
weather_adapter.py
  |----------------------|
  v                      v
Open-Meteo Geocoding     Open-Meteo Forecast

The server functions only validate tool inputs and shape success/error envelopes. weather_adapter.py owns all HTTP calls, API parsing, WMO-code translation, and recommendation logic.

Tools

Tool

Inputs

Result

get_current_weather

location

Temperature, feels-like temperature, condition, humidity, precipitation, and wind

get_forecast

location, days (1-16)

Daily high/low, feels-like values, condition, precipitation probability/amount, and wind

get_travel_recommendation

location, date (YYYY-MM-DD)

Forecast-backed umbrella, jacket, heat, and wind recommendations with explicit thresholds

Locations may be a city/postal-code query or a latitude,longitude pair. All temperatures use Celsius, wind uses km/h, and precipitation uses millimetres.

Recommendation thresholds:

  • Umbrella or waterproof layer: precipitation probability at least 40%.

  • Warm jacket: daily low below 10°C.

  • Light jacket: daily high below 18°C when the warm-jacket rule does not apply.

  • Heat precautions: daily high at least 28°C.

  • Strong-wind precautions: maximum daily wind at least 40 km/h.

Local setup

Python 3.10 or newer is required.

python3 -m venv .venv
.venv/bin/pip install -r requirements-dev.txt
.venv/bin/pytest -q

Start the server:

.venv/bin/python weather_mcp_server.py

The Streamable HTTP endpoint is http://localhost:8000/mcp.

Generate three live Open-Meteo examples:

PYTHONPATH=. .venv/bin/python scripts/run_demo.py

Results are written to evidence/demo_results.md. They prove live adapter calls, not an Agent Bricks deployment.

Databricks App deployment

The MCP server is designed to run as one Databricks App. Authenticate the Databricks CLI first:

databricks auth login --host https://<workspace-host>
databricks auth profiles

Create a workspace source directory, upload the project, create the app, and deploy it:

export DBX_USER='<your-workspace-email>'
export APP_NAME='weather-prediction-mcp'
export SOURCE_PATH="/Workspace/Users/${DBX_USER}/${APP_NAME}"

databricks workspace mkdirs "$SOURCE_PATH"
databricks sync . "$SOURCE_PATH" --watch=false
databricks apps create "$APP_NAME" --description 'Open-Meteo weather MCP server'
databricks apps deploy "$APP_NAME" --source-code-path "$SOURCE_PATH"
databricks apps get "$APP_NAME" -o json

Do not upload .venv; it is excluded by .gitignore. Databricks Apps installs requirements.txt and starts the app.yaml command. The deployed external MCP URL is:

https://weather-prediction-mcp-rajesh-1352785079224954.aws.databricksapps.com/mcp

The app endpoint is permission-controlled by Databricks Apps. Grant the intended agent/user permission to use the app before testing the MCP connection.

Agent Bricks configuration

The deployed server is registered as the governed Unity Catalog MCP Service:

bootcamp_students.rajesh.weather_prediction_mcp

It is connected to Agent Bricks supervisor agent:

supervisor-agent-2026-08-08-20-02-56

The agent uses these three tools:

  • get_current_weather

  • get_forecast

  • get_travel_recommendation

Four recorded conversations—including three weather questions and an ambiguous-location guardrail test—are documented in evidence/agent_bricks_transcript.md.

Error behavior

  • Empty, unresolved, and invalid-coordinate locations return a clean ok: false response.

  • Forecast lengths outside 1-16 and unsupported dates return validation messages.

  • API timeouts, HTTP errors, malformed payloads, and unexpected internal failures do not expose stack traces.

  • The agent prompt prohibits filling missing tool results with guesses.

Verification status

  • Automated adapter and MCP wrapper tests: see tests/.

  • Live Open-Meteo adapter demonstration: see evidence/demo_results.md.

  • Databricks App deployment: succeeded as weather-prediction-mcp-rajesh.

  • Authenticated deployed MCP initialization: HTTP 200, MCP protocol 2025-06-18.

  • Deployed app screenshot: see evidence/databricks-app-overview.png.

  • Active MCP Service and three-tool screenshot: see evidence/Mcp_tools_screenshot.jpg.

  • Supervisor configuration, system prompt, MCP attachment, tool trace, and Toronto response screenshot: see evidence/MCP_conversation_1.jpg.

  • Chicago forecast and Austin recommendation tool-trace screenshot: see evidence/Mcp_conversation_3.jpg.

  • Austin grounded final answer and Springfield ambiguity guardrail screenshot: see evidence/MCP_conversation_4.jpg.

  • Agent Bricks registration: completed through bootcamp_students.rajesh.weather_prediction_mcp.

  • Agent behavior: three weather conversations and one ambiguity guardrail conversation recorded in evidence/agent_bricks_transcript.md.

  • Evidence note: the Chicago conversation proves tool use but contains a “tomorrow” date-label mismatch and should be rerun for the cleanest correctness evidence.

  • GitHub repository: published at https://github.com/rajeshd101/databricks-mcp-demo.

Files

agent/agent_config.yaml     External MCP tool record
agent/system_prompt.md      Agent Bricks instructions and guardrails
app.yaml                   Databricks App process configuration
evidence/demo_results.md   Three live API demonstrations
evidence/deployment.md     Deployment and protocol evidence
evidence/databricks-app-overview.png  Deployment screenshot
evidence/agent_bricks_transcript.md  Agent conversations and tool traces
evidence/Mcp_tools_screenshot.jpg  Active MCP Service and enabled tools
evidence/MCP_conversation_1.jpg  Supervisor configuration and conversation
evidence/Mcp_conversation_3.jpg  Forecast and recommendation traces
evidence/MCP_conversation_4.jpg  Recommendation answer and guardrail
scripts/run_demo.py        Reproducible live demonstration
tests/                     Adapter and MCP error-boundary tests
weather_adapter.py         Open-Meteo HTTP/parsing/recommendation layer
weather_mcp_server.py      Thin FastMCP tool layer
SUBMISSION.md              Grader-facing submission summary
TESTING.md                 Local and deployed test procedure

Limitations

  • Current conditions are modeled Open-Meteo data, not direct observations from a local weather station.

  • Geocoding selects the first Open-Meteo match; users should add province/state and country for ambiguous names.

  • This version does not provide official severe-weather alerts. Users should consult official local alert services for safety-critical decisions.

  • Forecasts are limited to Open-Meteo's next 16 days.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    An MCP server providing worldwide weather via the free Open-Meteo APIs (no API key needed). Runs fully self-contained in Docker as a streamable-HTTP MCP service.
    -
  • F
    license
    Not graded
    quality
    B
    maintenance
    MCP server exposing weather tools (current conditions, forecasts, umbrella prediction, travel advice, city comparisons) via Open-Meteo, designed for integration with Databricks Agent Bricks.
    -
  • F
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that provides weather forecast tools (current weather, forecast, travel recommendations, and city comparison) powered by Open-Meteo, designed for Databricks Agent Bricks.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    A FastMCP server that provides current weather, forecasts, and rule-based umbrella/jacket recommendations via Open-Meteo, deployable to Databricks Agent Bricks.
    Apache 2.0