README.md•2.68 kB
# MCP Server - Weather and Stock Information Service
This MCP (Model Control Protocol) server provides real-time weather alerts, forecasts, stock market data, and news information through various API integrations.
## Features
- Weather Alerts: Get active weather alerts for US states
- Weather Forecast: Get detailed weather forecasts for specific locations
- Stock Market Data: Access top gainers and losers in the US stock market
- Stock News and Sentiments: Get news and sentiment analysis for specific stocks
- General News: Search for news articles by keyword and date
## Prerequisites
- Python 3.x
- `uv` package manager
- API Keys for:
- Alpha Vantage (for stock data)
- News API (for news data)
## Setup
1. Clone the repository:
```bash
git clone https://github.com/suraj2906/mcpServer
cd mcpServer
```
2. Create a virtual environment and install dependencies:
```bash
uv venv
uv pip install -r requirements.txt
```
3. Create a `.env` file in the project root with your API keys:
```
ALPHA_VANTAGE_API_KEY=your_alpha_vantage_key
NEWS_API_KEY=your_news_api_key
```
## Configuration
To use this MCP server with Claude, you need to add the following configuration to Claude's config file:
1. Open Claude's settings
2. Go to File > Settings > Developer > Edit Config
3. Add the following configuration:
```json
{
"mcpServers": {
"weatherAndStock": {
"command": "uv",
"args": [
"--directory",
"YOUR\\REPOSITORY\\PATH",
"run",
"mcp-server.py"
]
}
}
}
```
Note: Make sure to adjust the path (`C:\\Users\\asus\\code\\mcpServer`) to match your actual project location.
## Available Tools
### Weather Tools
- `get_weather_alerts(state)`: Get active weather alerts for a US state
- Example: `get_weather_alerts("CA")`
- `get_forecast(latitude, longitude)`: Get weather forecast for a location
- Example: `get_forecast(37.7749, -122.4194)`
### Stock Market Tools
- `get_top_gainers_losers()`: Get top gainers and losers in the US stock market
- `get_news_and_sentiments(ticker)`: Get news and sentiment analysis for a stock
- Example: `get_news_and_sentiments("AAPL")`
### News Tools
- `get_news_today(keyword, date)`: Get news articles for a keyword and date
- Example: `get_news_today("technology", "2024-03-20")`
## Error Handling
The server includes robust error handling for API requests and will return appropriate error messages if:
- API keys are missing
- API requests fail
- Invalid parameters are provided
- No data is found for the given criteria
## Contributing
Feel free to submit issues and enhancement requests!