A ready-to-use implementation of the Model Context Protocol (MCP) that extends Claude with real-time weather data capabilities.
Model Context Protocol (MCP) is an open communication framework that allows AI models like Claude to interact with external tools. This enables Claude to access real-time data, process files, and interact with external services - capabilities not available to most LLMs out of the box.
Learn more about MCP:
This repository provides:
- Complete MCP Weather Server: A fully functional implementation that gives Claude access to real-time weather data
- Template Code: Use as a starting point for your own MCP projects
- Configuration Examples: Sample configuration files for connecting to Claude Desktop
The MCP Weather Server implements two primary tools:
- get-forecast: Retrieve current weather conditions and forecasts for any location by latitude/longitude
- get-alerts: Check for active weather alerts in any US state
Once connected, Claude can:
- Answer questions about current weather conditions
- Provide detailed weather forecasts
- Alert users to severe weather warnings
- Make recommendations based on weather data
- Node.js 16+ and npm
- Claude Desktop
- Basic knowledge of TypeScript/JavaScript
-
Clone this repository:
git clone https://github.com/SterlingChin/mcp-weather-server.git cd mcp-weather-server -
Install dependencies:
npm install
-
Build the project:
npm run build
-
Open your Claude Desktop configuration file:
- Mac:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%AppData%\Claude\claude_desktop_config.json
- Mac:
-
Add the following configuration (update the path to point to your repository):
{ "mcpServers": { "weather": { "command": "node", "args": [ "/absolute/path/to/your/mcp-weather-server/build/index.js" ] } } } -
Restart Claude Desktop
-
Look for the hammer icon in Claude Desktop, indicating that MCP tools are available
Try asking Claude these questions:
- "What's the weather like in San Francisco right now?"
- "Are there any weather alerts in Texas today?"
- "What's the forecast for Chicago this weekend?"
├── src/
│ ├── index.ts # Main server entry point
│ ├── tools/ # Tool implementations
│ │ ├── get-forecast.ts
│ │ └── get-alerts.ts
│ └── utils/ # Helper functions and API client
│ └── nws-api.ts
├── build/ # Compiled JavaScript files
├── examples/ # Example code and usage patterns
├── docs/ # Additional documentation
├── package.json
└── tsconfig.json
This repository can serve as a template for building your own MCP servers. Follow these steps:
- Fork this repository or create a new one based on its structure
- Replace the weather API implementation with your own service
- Define your tools by adding new files in the
src/toolsdirectory - Register your tools in
src/index.ts - Build and test your implementation
For detailed guidance, check out our step-by-step tutorial.
This server uses the National Weather Service API, which is free to use and doesn't require authentication. Other APIs you might consider integrating include:
- Dictionary/Language APIs
- News and Information APIs
- Public Data APIs
- Financial APIs
When selecting APIs for your MCP server, consider:
- Authentication requirements
- Rate limits
- Data format and parsing complexity
- Update frequency
- Claude can't find your server: Verify your configuration path and restart Claude Desktop
- API requests failing: Check your internet connection and API endpoint status
- Unexpected responses: Look at Claude Desktop logs at
~/Library/Logs/Claude/mcp*.log
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Built with ❤️ using the Model Context Protocol
