Weather MCP Server
by Yaseen-md
README.md
# Weather MCP Server
[](https://github.com/Yaseen-md/weather-mcp-server/actions/workflows/ci.yml)
[](https://opensource.org/licenses/MIT)
A standard [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server that provides real-time weather forecasts based on city names using the Open-Meteo API.
## Features
- **Geocoding**: Automatically converts city names to geographic coordinates (latitude & longitude)
- **Real-time Weather**: Retrieves current temperature, wind speed, and weather codes
- **MCP Integration**: Fully compatible with MCP clients like Claude Desktop
- **Zero API Keys**: Uses the free, open-source Open-Meteo API—no registration required!
## Prerequisites
- Node.js >= 18.x
- npm or yarn
## Installation
1. Clone the repository:
```bash
git clone https://github.com/Yaseen-md/weather-mcp-server.git
cd weather-mcp-server
```
2. Install dependencies:
```bash
npm install
```
3. Build the server:
```bash
npm run build
```
## Development
Run the server directly without building:
```bash
npm run dev
```
## Integrating with Claude Desktop
To use this weather server with Claude Desktop, you need to configure your `claude_desktop_config.json` file.
**Mac:** `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
Add the following configuration:
```json
{
"mcpServers": {
"weather": {
"command": "node",
"args": [
"C:/path/to/your/weather-mcp-server/build/index.js"
]
}
}
}
```
*(Make sure to replace the path with the actual absolute path to your built `index.js` file.)*
## Tools Available
### `get_weather`
Fetches the current weather for a specified city.
**Input parameters:**
- `city` (string): The name of the city (e.g., "Delhi", "Tokyo", "London", "San Francisco")
**Returns:**
Temperature in Celsius, wind speed, and weather code.
## License
This project is licensed under the [MIT License](LICENSE).
TDQS
A3.6/5.0
Scored across 1 tool
Disambiguation5/5
With only one tool, there is no possibility of confusion between tools. The tool's purpose is clear and distinct by default.
Naming Consistency5/5
The tool name follows a consistent verb_noun pattern (get_weather). With a single tool, there are no naming inconsistencies to evaluate.
Tool Count3/5
One tool feels thin for a weather server, which typically offers multiple data types like forecasts and alerts. However, it is borderline given the narrow 'current weather' scope.
Completeness2/5
The server only covers current conditions, missing obvious weather domain features such as forecasts, historical data, or alerts. This significantly limits its usefulness for common weather queries.
Maintenance
ActivityMaintained
ResponsivenessNo issues