A lightweight Model Context Protocol (MCP) server that enables AI assistants like Claude to retrieve and interpret real-time weather data.
Installing on Claude Desktop
To use your MCP server with Claude Desktop, add it to your Claude configuration:
1. Local mode
json{ "mcpServers": { "weather-mcp-server": { "command": "/path/to/weather-mcp-server", "env": { "WEATHER_API_KEY": "your-api-key" } } } }
You can get an API key from your personal account on WeatherAPI.
2. Remote mode
json{ "mcpServers": { "weather-mcp-server": { "url": "http://host:port/sse" } } }
Build from source
You can use go to build the binary in the cmd/github-mcp-server directory.
shellgo build -o weather-mcp-server ./cmd/weather-mcp-server
Using MCP with Docker Containers
1. Build the Docker Image:
shelldocker build -t weather-mcp-server .
2. Run the Docker Container:
shelldocker run -e WEATHER_API_KEY=your-api-key -d --name weather-mcp-server -p 8000:8000 weather-mcp-server
Replace your-api-key with your actual WeatherAPI API key.
Tools
-
current_weather - Gets the current weather for a city
city: The name of the city (string, required)
Project Structure
The project is organized into several key directories:
shell├── cmd │ └── weather-mcp-server ├── internal │ └── server │ ├── handlers # MCP handlers │ ├── services # Business logic layer │ │ ├── core # Core application logic │ │ └── mock # Mock services for testing │ ├── tools # MCP tools │ └── view # Templates for displaying messages └── pkg
Testing
If you're adding new features, please make sure to include tests for them.
1. Install the mockgen tool:
shellgo install go.uber.org/mock/mockgen@latest
See the installation guide on go.uber.org/mock.
2. Use the following command to generate mock files:
shellmake generate-mocks
3. To run unit tests:
shellmake run-tests
Contributing
Feel free to open tickets or send pull requests with improvements. Thanks in advance for your help!
Please follow the contribution guidelines.
License
This MCP server is licensed under the MIT License.






