abhilashsahoo/fastmcp-weather-server
If you are the rightful owner of fastmcp-weather-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
FastMCP Weather Server is a production-ready weather MCP server built with FastMCP and TypeScript, designed for seamless integration with Claude Desktop, VS Code, and Cursor.
š¤ļø FastMCP Weather Server
A production-ready weather MCP server built with FastMCP and TypeScript that integrates seamlessly with Claude Desktop, VS Code, and Cursor.
⨠Features
- š Real-time Weather Data - Get current weather for any city worldwide
- š Type-Safe - Built with TypeScript and Zod validation
- š Progress Reporting - Built-in progress tracking for weather requests
- š Structured Logging - Comprehensive logging with context
- š ļø Easy Testing - Built-in CLI tools for development and debugging
- š Universal Integration - Works with Claude Desktop, VS Code, and Cursor
- ā” Fast Development - 5x faster than traditional MCP SDK
š Quick Start
Prerequisites
- Node.js 20.18.1 or higher (critical requirement)
- OpenWeatherMap API key (free tier: 1,000 calls/day)
Installation
git clone https://github.com/abhilashsahoo/fastmcp-weather-server.git
cd fastmcp-weather-server
npm install
Setup
-
Get your OpenWeatherMap API key:
- Sign up at openweathermap.org/api
- Copy your API key from the dashboard
-
Create environment file:
cp .env.example .env
-
Add your API key to
.env
:OPENWEATHER_API_KEY=your_api_key_here
Development
Test your server:
npm run dev
Try the interactive CLI:
get_weather {"city": "London"}
Debug with visual interface:
npm run inspect
Build for production:
npm run build
š§ MCP Client Integration
Claude Desktop
-
Find your config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
Add this configuration:
{ "mcpServers": { "weather": { "command": "npx", "args": ["tsx", "/absolute/path/to/fastmcp-weather-server/src/server.ts"], "env": { "OPENWEATHER_API_KEY": "your_actual_api_key_here" } } } }
-
Restart Claude Desktop and test:
What's the weather like in Tokyo?
VS Code
- Install the MCP extension
- Create
.vscode/settings.json
:{ "mcp.servers": { "weather": { "command": "npx", "args": ["tsx", "./src/server.ts"], "cwd": "${workspaceFolder}", "env": { "OPENWEATHER_API_KEY": "your_actual_api_key_here" } } } }
Cursor IDE
- Create
.cursor/mcp.json
:{ "servers": { "weather": { "command": "npx", "args": ["tsx", "./src/server.ts"], "env": { "OPENWEATHER_API_KEY": "your_actual_api_key_here" } } } }
š Available Scripts
Script | Description |
---|---|
npm run dev | Start FastMCP development server with CLI |
npm run inspect | Open visual debugging interface |
npm run test-direct | Test server directly without CLI |
npm run build | Compile TypeScript to JavaScript |
npm start | Run compiled server |
š ļø API Reference
Tools
get_weather
Get current weather information for any city worldwide.
Parameters:
city
(string, required): City name (e.g., "London", "New York")
Returns:
- Formatted weather data with temperature, conditions, humidity, and wind speed
Example:
{
"city": "London"
}
Response:
š¤ļø Weather in London:
š”ļø Temperature: 15°C (feels like 13°C)
āļø Conditions: partly cloudy
š§ Humidity: 65%
šØ Wind Speed: 3.2 m/s
š Troubleshooting
Common Issues
Issue | Solution |
---|---|
Node.js version error | Update to Node.js 20.18.1+: winget upgrade OpenJS.NodeJS |
Server not found | Check absolute path in MCP client configuration |
API key errors | Verify API key in .env and MCP client env section |
Module resolution errors | Delete node_modules and run npm install |
FastMCP CLI issues | Try npm run test-direct to test without CLI |
Windows-Specific
Update Node.js via PowerShell:
# Using Chocolatey
choco upgrade nodejs
# Using Winget
winget upgrade OpenJS.NodeJS
# Using nvm-windows
nvm install 20.18.1 && nvm use 20.18.1
Testing Steps
- Test server directly:
npm run test-direct
- Test with FastMCP CLI:
npm run dev
- Test with visual interface:
npm run inspect
- Test with Claude Desktop: Restart Claude and ask about weather
š Project Structure
fastmcp-weather-server/
āāā src/
ā āāā server.ts # Main FastMCP server
āāā dist/ # Compiled JavaScript (generated)
āāā .env # Environment variables (create from .env.example)
āāā .env.example # Environment template
āāā .gitignore # Git ignore rules
āāā package.json # Dependencies and scripts
āāā tsconfig.json # TypeScript configuration
āāā README.md # This file
š Features in Detail
FastMCP Advantages
- Zero Configuration: Server setup with single constructor
- Built-in Testing: CLI and web interface included
- Progress Reporting: Real-time progress updates
- Structured Logging: Contextual logging with data objects
- Type Safety: Zod schema validation
- Error Handling: User-friendly error messages
Weather Data
- Real-time Updates: Current conditions from OpenWeatherMap
- Global Coverage: Weather for any city worldwide
- Comprehensive Data: Temperature, humidity, wind, conditions
- Rate Limiting: 1,000 free requests per day
š Deployment
Development
npm run dev # Test with FastMCP CLI
Production
npm run build # Compile TypeScript
npm start # Run compiled server
Environment Variables
Variable | Description | Required |
---|---|---|
OPENWEATHER_API_KEY | OpenWeatherMap API key | Yes |
NODE_ENV | Environment (development/production) | No |
š Performance
- Requests: 1,000 weather calls/day (free tier)
- Response Time: < 500ms average
- Memory Usage: < 50MB
- Client Support: Claude Desktop, VS Code, Cursor
š¤ Contributing
- Fork the repository
- Create your feature branch:
git checkout -b feature/amazing-feature
- Commit your changes:
git commit -m 'Add amazing feature'
- Push to the branch:
git push origin feature/amazing-feature
- Open a Pull Request
š License
This project is licensed under the MIT License - see the file for details.
š Acknowledgments
- FastMCP - The amazing MCP framework
- OpenWeatherMap - Free weather API
- Model Context Protocol - The MCP specification
š Related Projects
- FastMCP - TypeScript MCP framework
- FastMCP Boilerplate - Starter template
- MCP Servers - Official MCP servers
Built with ā¤ļø using FastMCP and TypeScript