Weather 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 MCP ServerGet active weather alerts for Texas"
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 for Claude
This repository implements a Model Context Protocol (MCP) server for Claude. It exposes weather-related tools via FastMCP over stdio, using the National Weather Service (NWS) API for data.
Project Structure
weather/
├── clients/
│ ├── __init__.py
│ └── nws_client.py
├── formatters/
│ ├── __init__.py
│ └── alert_formatter.py
├── services/
│ ├── __init__.py
│ └── weather_service.py
├── tools/
│ ├── __init__.py
│ └── weather_tools.py
├── models/
│ ├── __init__.py
│ └── responses.py
├── config.py
├── logging_config.py
├── main.py
├── pyproject.toml
└── README.mdRelated MCP server: Weather MCP Server
Features
MCP server for Claude using
FastMCPget_alerts(state)tool for active weather alertsget_forecast(latitude, longitude)tool for forecast dataSimple, maintainable service and client separation
Requirements
Python 3.10 or higher
uvinstalled and available at the full path used by Claudemcpandhttpxdependencies installed in the Python environment
Running the Server Locally
From the repository root:
cd /Users/dinukakasun/Documents/MCP/weather
/Users/dinukakasun/.local/bin/uv --directory /Users/dinukakasun/Documents/MCP/weather run main.pyor using the virtual environment Python if preferred:
/Users/dinukakasun/Documents/MCP/weather/.venv/bin/python main.pyThe server should start and expose MCP tools on stdio.
Claude Desktop MCP Configuration
Update ~/Library/Application Support/Claude/claude_desktop_config.json so Claude launches this server with the correct executable path and working directory.
Example configuration:
{
"mcpServers": {
"weather": {
"command": "/Users/dinukakasun/.local/bin/uv",
"args": [
"--directory",
"/Users/dinukakasun/Documents/MCP/weather",
"run",
"main.py"
]
}
}
}Why absolute paths matter
Claude desktop may not inherit your interactive shell PATH. Using the absolute uv path avoids startup failures caused by missing commands.
Example Claude Questions
Use these example prompts to exercise the MCP server:
Get the current weather alerts for CA using get_alerts.Call get_forecast with latitude 37.7749 and longitude -122.4194.What are active alerts for NY?Provide a 5-period weather forecast for 40.7128, -74.0060.
Local Test Client
You can verify the MCP tools locally with a small Python client that starts the server and sends a request over stdio.
import asyncio
import json
import subprocess
async def run_request():
proc = await asyncio.create_subprocess_exec(
"/Users/dinukakasun/.local/bin/uv",
"--directory",
"/Users/dinukakasun/Documents/MCP/weather",
"run",
"main.py",
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
)
request = {
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"capabilities": {},
"clientInfo": {"name": "local-test", "version": "1.0.0"}
}
}
stdout, stderr = await proc.communicate((json.dumps(request) + "\n").encode())
print(stdout.decode())
print(stderr.decode())
asyncio.run(run_request())This confirms the server accepts MCP requests. For tool-specific tests, replace method with a valid tool name and pass params matching the tool signature.
Verifying the MCP Server
Start the server manually.
Confirm the process is running:
ps aux | grep "main.py" | grep -v grepConfirm Claude is configured to use the same command and working directory.
If Claude still does not connect, use the absolute
uvpath inclaude_desktop_config.json.
Notes
The MCP server uses
stdiotransport, not a network HTTP endpoint.The entrypoint is
main.py, notweather.py.The tools are registered in
tools/weather_tools.py.
Reference
Model Context Protocol Python server docs: https://modelcontextprotocol.io/docs/develop/build-server#python
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Latest Blog Posts
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/dinuka-kasun-medis/weather'
If you have feedback or need assistance with the MCP directory API, please join our Discord server