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
```
This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessSyncing