Skip to main content
Glama
suraj2906

Weather and Stock Information MCP Server

by suraj2906
README.md
# 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!

TDQS

B3.2/5.0

Scored across 5 tools

Disambiguation4/5

Most tools have distinct purposes: weather forecasting vs. stock information vs. weather alerts. However, get_news_and_sentiments and get_news_today could cause confusion as both handle news retrieval, though one focuses on stock sentiment and the other on general keyword-based news. The descriptions help differentiate them, but overlap exists.

Naming Consistency4/5

Tool names follow a consistent verb_noun pattern (e.g., get_forecast, get_news_and_sentiments), all using snake_case. There is a minor deviation with get_top_gainers_losers, which uses a compound noun without 'and' in the name, but overall the naming is predictable and readable.

Tool Count4/5

With 5 tools, the count is reasonable for a server covering weather and stock information. It's slightly lean but manageable, as it includes core functions like forecasting, alerts, stock news, and market data. A few more tools might enhance coverage, but this is well-scoped for basic operations.

Completeness3/5

The tool surface has notable gaps. For weather, it covers forecasting and alerts but lacks current conditions or historical data. For stocks, it includes news, sentiment, and market movers but omits stock price quotes, historical data, or portfolio management. Agents can work around this, but the coverage is incomplete for a full weather and stock domain.

Maintenance

ActivityInactive
ResponsivenessNo issues