FastMCP v2 server that exposes TradingView technical indicators and OHLCV data through the tradingview_scraper library. The mcp-tradingview console entry powers Claude Desktop or any MCP-aware client.
- Install uv and Python 3.11+
- Run the setup script:
./setup.sh- Installs dependencies and creates virtual environment
- Automatically configures Claude Desktop with the MCP server
- Restart Claude Desktop to load the new configuration
- Install uv and Python 3.11+
uv venv --python 3.11 && source .venv/bin/activateuv pip install -e .- Configure Claude Desktop (see below)
- Stdio (Claude default):
uv run mcp-tradingview - SSE service:
uv run mcp-tradingview --transport sse --host 0.0.0.0 --port 8000 - HTTP service:
uv run mcp-tradingview --transport http --host 0.0.0.0 --port 8000 --path /mcp
FASTMCP_HOST, FASTMCP_PORT, and FASTMCP_PATH environment variables override the bind settings when present.
get_indicators(symbol, exchange="BINANCE", timeframe="1h", all_indicators=True, export_result=False)– full TradingView indicator snapshot; returnssuccess,symbol,exchange,timeframe, and anindicatorsmapping.get_specific_indicators(symbol, indicators, exchange="BINANCE", timeframe="1h", export_result=False)– filters the full snapshot to requested keys (case-insensitive) and echoesrequested_indicators.get_historical_data(symbol, exchange="BINANCE", timeframe="1h", max_records=100, export_result=False)– streams OHLCV candles viaStreamer, returningrecords_collected,data, and optionalexport_file.
- Resource
indicators/{symbol}emits a formatted indicator report usingget_indicatorsdefaults. - When
export_result=True, JSON payloads are written toexport/; keep large archives out of version control.
Add the server to claude_desktop_config.json. Here are the recommended configurations:
claude mcp add tradingview -- uvx --from /absolute/path/to/mcp-tradingview-server mcp-tradingviewOr with uv run:
claude mcp add tradingview -- uv run mcp-tradingview --cwd /absolute/path/to/mcp-tradingview-server{
"mcpServers": {
"tradingview": {
"command": "uvx",
"args": ["--from", "/absolute/path/to/mcp-tradingview-server", "mcp-tradingview"]
}
}
}Alternative with uv run:
{
"mcpServers": {
"tradingview": {
"command": "uv",
"args": ["run", "mcp-tradingview"],
"cwd": "/absolute/path/to/mcp-tradingview-server"
}
}
}{
"mcpServers": {
"tradingview": {
"command": "uv",
"args": ["run", "mcp-tradingview", "--transport", "http", "--host", "0.0.0.0", "--port", "8001", "--path", "/mcp"],
"cwd": "/absolute/path/to/mcp-tradingview-server"
}
}
}Restart Claude Desktop after updating the configuration. The bundled CLAUDE.md provides extra guidance the model can reference while chatting.
uv run pytestexecutes the asynchronous test suite intest_server.py.- Use
logging.getLogger(__name__)for diagnostics; avoid printing secrets. - Refer to
export/for captured fixtures when updating tests or documentation.
This project is provided as-is for educational and research purposes.