MCP Weather SSE Server
# 🧪 MCP Server for Claude Desktop
This guide shows you how to use your Model Context Protocol (MCP) server using Claude for Desktop.
## 1. Requirements
- Claude/Cursor for Desktop (Windows or macOS)
- MCP server script (e.g., `weather.py`,'map.py') running via `uv run weather.py`
## 2. Configure Claude to Launch the MCP Server
Create or edit the Claude config file:
- **macOS/Linux**: `~/.config/claude/claude_desktop_config.json` or `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
Example content:
```json
{
"mcpServers": {
"weather": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/weather",
"run",
"weather.py"
]
}
}
}
```
Replace `/ABSOLUTE/PATH/...` with the actual absolute path to the folder containing `weather.py`.
## 3. Restart Claude
Close and reopen Claude for Desktop. If configured correctly, a tool icon will appear at the bottom-left of the chat window.
## 4. Test Your Tool
Click the **tool icon** to see your MCP server tools like `search-location` and `get-forecast`.
Try prompts such as:
```
What’s the weather in Vinh, VietNam?
Find the restaurant near Ho Guom ?
```
Claude should use your local server to respond.
## 5. Troubleshooting
If you don’t see your server or tool in Claude:
### Check config
- Ensure JSON syntax is valid.
- Use absolute paths, not relative ones.
### Check logs
Logs may be found in:
- **macOS/Linux**: `~/Library/Logs/Claude/mcp.log`
- **Windows**: `%APPDATA%\Claude\Logs\mcp.log`
You can tail logs like this (macOS/Linux):
```bash
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log
```
### Manually test server
Run:
```bash
uv --directory /ABSOLUTE/PATH/... run weather.py
```
## ✅ Success
If you see your tool in Claude and prompts generate valid responses, the integration is complete!
TDQS
Scored across 5 tools
Multiple tools have overlapping purposes that could cause confusion. get_current_weather and get_weather_by_coordinates both retrieve current weather data but use different input parameters (city vs coordinates). get_forecast and get_weather_forecast both provide forecast data but use different data sources (NWS vs OpenWeatherMap) and input formats. An agent would struggle to choose between these overlapping tools.
The naming follows a consistent verb_noun pattern throughout (get_alerts, get_current_weather, get_forecast, get_weather_by_coordinates, get_weather_forecast). All tools start with 'get_' followed by a descriptive noun phrase. The only minor deviation is that some names include 'weather' while others don't, but the pattern remains readable and predictable.
With 5 tools, the count is reasonable for a weather server. However, given the overlap between tools, the effective surface area is smaller than the tool count suggests. The number is appropriate for the domain, but the redundancy means some tools don't fully earn their place in the set.
The server covers current weather and forecasts through multiple methods, plus alerts for US states. However, there are notable gaps: no historical weather data, no air quality information, and inconsistent geographic coverage (some tools are US-only while others are global). The surface provides multiple ways to get similar data but lacks breadth across weather-related dimensions.