README.md•2.73 kB
# Weather MCP Server
A powerful weather information server built with FastMCP that provides weather alerts and tools through multiple interfaces.
## Features
- 🌤️ **Weather Alerts**: Get real-time weather alerts for any US state
- 🔊 **Echo Resource**: Simple message echoing functionality
- 🖥️ **Multiple Interfaces**: Choose between MCP server or web interface
- 🎨 **Beautiful UI**: Modern, responsive web interface
## Quick Start
### Option 1: Interactive Launcher (Recommended)
```bash
python run_server.py
```
This will present you with options to run either the MCP server or web interface.
### Option 2: Direct Web Interface
```bash
python server/web_interface.py
```
Then open your browser to: http://localhost:8000
### Option 3: MCP Server Only
```bash
python main.py
```
## Installation
1. **Install dependencies:**
```bash
uv sync
```
2. **Run the server:**
```bash
python run_server.py
```
## Usage
### Web Interface
1. Start the web interface
2. Open http://localhost:8000 in your browser
3. Use the forms to:
- Get weather alerts for a US state (e.g., CA, NY, TX)
- Echo messages through the resource system
### MCP Server
The MCP server provides these tools:
- **`get_alerts(state)`**: Get weather alerts for a US state
- `state`: Two-letter US state code (e.g., "CA", "NY")
- **`echo_resource(message)`**: Echo a message as a resource
- `message`: Any text message to echo
## API Endpoints
- `GET /`: Main web interface
- `POST /api/alerts`: Get weather alerts (form data: `state`)
- `POST /api/echo`: Echo a message (form data: `message`)
## Dependencies
- `mcp[cli]>=1.13.0`: MCP server framework
- `fastapi>=0.104.0`: Web framework
- `uvicorn[standard]>=0.24.0`: ASGI server
- `httpx>=0.25.0`: HTTP client
- `python-multipart>=0.0.6`: Form data handling
## Project Structure
```
secondproject/
├── main.py # MCP server entry point
├── run_server.py # Interactive launcher
├── server/
│ ├── weather.py # MCP server implementation
│ └── web_interface.py # Web interface
├── pyproject.toml # Project configuration
└── README.md # This file
```
## Troubleshooting
### Common Issues
1. **Port already in use**: Change the port in `web_interface.py` or stop other services
2. **Dependencies missing**: Run `uv sync` to install all dependencies
3. **API errors**: Check your internet connection for weather data
### Getting Help
- Check the console output for error messages
- Ensure all dependencies are installed
- Verify Python version (requires 3.12+)
## License
This project is open source and available under the MIT License.