Skip to main content
Glama
Ham12-3

tradinview-mcp

by Ham12-3
README.md
# 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

```bash
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:

```bash
pnpm dev:http
```

Endpoint:

```text
http://localhost:3000/api/mcp
```

## Real Provider Mode

`mock` is the safe offline default. To use real public crypto market data, enable Binance:

```env
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:

```env
REQUIRE_REAL_PROVIDER=true
```

Then run:

```bash
pnpm dev
```

Use the `verify_provider` MCP tool with:

```json
{ "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:

```bash
pnpm build
```

Add a stdio MCP server entry similar to:

```json
{
  "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:

```bash
npx vercel --prod
```

Set Vercel env vars for real Binance data:

```env
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:

```text
https://your-project.vercel.app/api/mcp
```

See [Setup](docs/setup.md) for the full ChatGPT connection flow.

For development, use:

```json
{
  "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:

```json
{ "query": "BTC", "provider": "mock" }
```

```json
{ "symbol": "BTCUSDT", "interval": "1h", "limit": 100, "provider": "mock" }
```

```json
{
  "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://schema`
- `market://provider-status`
- `market://compliance-notes`

## Prompts

- `analyse_symbol`
- `compare_assets`
- `build_watchlist`

## Optional Binance Provider

Binance is disabled unless configured:

```env
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

```bash
pnpm typecheck
pnpm test
pnpm build
```

Run the live provider smoke test only when you want an internet-backed check:

```bash
pnpm test:live
```

More details:

- [Research](docs/research.md)
- [Architecture](docs/architecture.md)
- [API](docs/api.md)
- [Setup](docs/setup.md)
- [Compliance](docs/compliance.md)
- [TradingView integration plan](docs/tradingview-integration.md)

TDQS

B3.3/5.0

Scored across 9 tools

Disambiguation5/5

Each tool targets a distinct operation: watchlist management (add, remove, get), data retrieval (OHLCV, quote), calculations (indicators), search, verification, and rendering. No two tools overlap in purpose.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case (e.g., add_to_watchlist, get_quote, render_chart_html). Naming is predictable and uniform.

Tool Count5/5

9 tools is well-scoped for a market data and watchlist server. Each tool serves a clear function without unnecessary bloat or missing essentials.

Completeness4/5

The surface covers watchlist CRUD core data retrieval, indicator calculations, search, and verification. Minor gaps exist (e.g., batch watchlist operations, advanced OHLCV filtering), but the main workflows are supported.

Maintenance

ActivityInactive
ResponsivenessNo issues