An MCP (Model Context Protocol) server that provides weather information and deployment safety checks, designed to be used with GitHub Copilot in Visual Studio Code 1.100+.
- Get current weather conditions for any city in the world
- Check if it's safe to deploy to a server in a specific city
- Deploy to a server if conditions are safe
- Temperature display in appropriate units (°F for US, °C elsewhere)
- Codebase structured following SOLID principles for maintainability
Deployment is considered safe when:
- It's between 9am and 5pm in the target city's local time
- The weather conditions are clear or sunny
The application follows SOLID design principles:
- Single Responsibility: Each package has a clear, focused purpose
- Open/Closed: Code can be extended without modifying existing functionality
- Liskov Substitution: Interfaces allow for substitution of implementations
- Interface Segregation: Focused interfaces define minimal required behaviors
- Dependency Inversion: High-level modules depend on abstractions
See ARCHITECTURE.md for more details on the design.
- Go 1.18 or higher
- VS Code 1.100 or higher with GitHub Copilot
-
Clone this repository:
git clone https://github.com/devopsjester/floyd-weather-mcp.git cd floyd-weather-mcp -
Build the server:
go build -o floyd-weather-server
-
Add to your VS Code
settings.json:"mcp": { "servers": { "floyd": { "command": "/path/to/floyd-weather-server" } } }
This server is designed to be used with GitHub Copilot through VS Code MCP integration.
-
Check deployment safety: Ask about deployment safety for a city.
-
Get weather information: Ask about weather conditions in a city.
-
Deploy to a city: Request deployment to a city.
- "Is it safe to deploy to London, United Kingdom?"
- "What's the weather in New York, USA?"
- "Deploy to Tokyo, Japan"
- Built in Go
- Uses the OpenMeteo API for geocoding and weather data (free, public, no authentication required)
- Follows MCP protocol for interactions with GitHub Copilot
The server uses these OpenMeteo API endpoints:
- Geocoding:
https://geocoding-api.open-meteo.com/v1/search - Weather:
https://api.open-meteo.com/v1/forecast - Timezone: Part of the forecast API
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.