tradinview-mcp
Provider-based TradingView-style market research and charting MCP server.
This project does not scrape TradingView, does not use undocumented TradingView APIs, and does not execute trades. It exposes MCP tools for market-data research, indicator calculation, watchlists, and local chart HTML rendering.
Quick Start
pnpm install
cp .env.example .env
pnpm dev
The default provider is mock, so the server works without API keys.
For the ChatGPT/Vercel-style remote endpoint locally:
pnpm dev:http
Endpoint:
http://localhost:3000/api/mcp
Real Provider Mode
mock is the safe offline default. To use real public crypto market data, enable Binance:
ENABLE_BINANCE=true
DEFAULT_PROVIDER=binance
BINANCE_BASE_URL=https://data-api.binance.vision
To make sure the server never starts accidentally with mock data:
REQUIRE_REAL_PROVIDER=true
Then run:
pnpm dev
Use the verify_provider MCP tool with:
{ "provider": "binance", "symbol": "BTCUSDT", "interval": "1h" }
That tool performs real quote and OHLCV calls and returns realProvider: true when the selected provider is not mock.
MCP Client Config
After building:
pnpm build
Add a stdio MCP server entry similar to:
{
"mcpServers": {
"tradinview-mcp": {
"command": "node",
"args": ["C:/Users/mobol/Downloads/tradinview-mcp/dist/index.js"],
"env": {
"DEFAULT_PROVIDER": "mock"
}
}
}
}
ChatGPT via Vercel
Deploy the remote MCP endpoint:
npx vercel --prod
Set Vercel env vars for real Binance data:
ENABLE_BINANCE=true
DEFAULT_PROVIDER=binance
REQUIRE_REAL_PROVIDER=true
BINANCE_BASE_URL=https://data-api.binance.vision
WATCHLIST_PATH=/tmp/watchlist.json
Then connect ChatGPT Developer Mode to:
https://your-project.vercel.app/api/mcp
See Setup for the full ChatGPT connection flow.
For development, use:
{
"mcpServers": {
"tradinview-mcp": {
"command": "pnpm",
"args": ["dev"],
"cwd": "C:/Users/mobol/Downloads/tradinview-mcp"
}
}
}
Tools
search_symbols: search configured providers.get_quote: get latest normalized quote.get_ohlcv: get OHLCV bars.calculate_indicators: calculate SMA, EMA, RSI, MACD, and Bollinger Bands.render_chart_html: render safe local Lightweight Charts HTML from supplied bars.get_watchlist: read local watchlist.add_to_watchlist: add or update a watchlist symbol.remove_from_watchlist: remove a watchlist symbol.verify_provider: perform a provider quote/OHLCV smoke check.
Example tool inputs:
{ "query": "BTC", "provider": "mock" }
{ "symbol": "BTCUSDT", "interval": "1h", "limit": 100, "provider": "mock" }
{
"bars": [
{ "time": "2026-06-23T00:00:00.000Z", "open": 100, "high": 105, "low": 99, "close": 103, "volume": 1000 }
],
"indicators": [{ "type": "SMA", "period": 20 }]
}
Resources
market://schemamarket://provider-statusmarket://compliance-notes
Prompts
analyse_symbolcompare_assetsbuild_watchlist
Optional Binance Provider
Binance is disabled unless configured:
ENABLE_BINANCE=true
DEFAULT_PROVIDER=binance
Only public crypto spot market data endpoints are used. The default Binance URL is https://data-api.binance.vision, Binance's market-data-only base endpoint.
Verification
pnpm typecheck
pnpm test
pnpm build
Run the live provider smoke test only when you want an internet-backed check:
pnpm test:live
More details:











