Skip to main content
Glama
Sauravmehto

Local Stock Analyst MCP

by Sauravmehto
README.md
# Local Stock Analyst MCP (Python)

Python MCP server that exposes stock-analysis tools with:

- Finnhub as primary provider
- Alpha Vantage as fallback
- local fallback calculations for RSI and MACD
- `stdio` and Render-compatible HTTP transport support

## Tools

- `get_stock_price`
- `get_quote`
- `get_company_profile`
- `get_candles`
- `get_stock_news`
- `get_rsi`
- `get_macd`
- `get_key_financials`
- `get_portfolio`
- `list_sell_decision_data_requirements`
- `analyze_portfolio_for_sell`
- `get_sma`
- `get_ema`
- `get_bollinger_bands`
- `get_atr`
- `get_adx`
- `get_stochastic`
- `get_obv`
- `get_vwap`
- `get_support_resistance_levels`
- `detect_chart_patterns`
- `get_market_indices`
- `generate_buy_sell_hold_signal`

## Requirements

- Python 3.11+
- API key for at least one provider:
  - `FINNHUB_API_KEY`
  - `ALPHAVANTAGE_API_KEY`

## Setup

```powershell
python -m venv .venv
.venv\Scripts\Activate.ps1
pip install -r requirements.txt
```

## Run Locally

### Stdio Mode (Claude Desktop local MCP)

```powershell
$env:TRANSPORT_MODE="stdio"
python -m mcp_server
```

### HTTP Mode (Render/local web MCP)

```powershell
$env:TRANSPORT_MODE="http"
$env:HOST="0.0.0.0"
$env:PORT="8000"
python -m mcp_server
```

Optional HTTP transport mode:

- `HTTP_TRANSPORT=sse` (default)
- `HTTP_TRANSPORT=streamable`

Health endpoint defaults to `/health`.

## Claude Desktop (Windows) Configuration

`%APPDATA%\Claude\claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "local-stock-analyst": {
      "command": "python",
      "args": ["-m", "mcp_server"],
      "cwd": "D:/mcpserverdemo/mcplocalstockliveinpythonrender",
      "env": {
        "TRANSPORT_MODE": "stdio",
        "FINNHUB_API_KEY": "YOUR_FINNHUB_KEY",
        "ALPHAVANTAGE_API_KEY": "YOUR_ALPHA_VANTAGE_KEY"
      }
    }
  }
}
```

## Render

Set environment variables:

- `TRANSPORT_MODE=auto` (or `http`)
- `HOST=0.0.0.0`
- `PORT` provided by Render
- provider API keys

Build command:

```bash
pip install -r requirements.txt
```

Start command:

```bash
python -m mcp_server
```

## Tests

```bash
python -m pytest -q
```