Skip to main content
Glama
Bearspeed77

TradingView MCP Server

by Bearspeed77

tradingview-mcp

config/rules.json에 설명된 암호화폐 차트 분석 워크플로를 위한 MCP 서버입니다: 캔들을 가져오고, 관심 있는 지표를 계산하며, 해당 지표에 대한 편향 및 리스크 규칙을 평가합니다.

설계 참고: TradingView에 연결하지 않는 이유

이 프로젝트가 시작된 설정 가이드는 Chrome DevTools 프로토콜(--remote-debugging-port=9222)을 통해 TradingView 데스크톱 앱을 구동했습니다. 이 접근 방식은 서버가 로그인된 브라우저 세션을 완전히 제어할 수 있게 합니다 — 차트뿐만 아니라 계정도 읽을 수 있습니다.

rules.json에는 이것이 필요하지 않습니다. Binance 현물 페어, 1W/1D/4H 캔들, RSI, MACD, EMA 및 거래량은 모두 인증 없이 공개 엔드포인트에서 사용할 수 있습니다. 따라서 이 서버는 공개 시장 데이터를 읽고, 자격 증명을 보유하지 않으며, 로그인된 세션에 절대 접근하지 않습니다.

CDP 접근 방식이 제공할 수 있는 한 가지는 이 서버가 도달할 수 없는 데이터입니다: 저장된 레이아웃 및 도면, 유료 지표, 그리고 구독하는 거래소 피드입니다. 이러한 데이터가 필요하다면, 그것이 의도적으로 다시 열어야 하는 트레이드오프입니다.

Related MCP server: Trading Signals MCP Server

설치

npm install
npm test          # 46 unit + integration tests, no network required
npm run smoke     # live end-to-end check against the real API

config/mcp-entry.json을 ~/.claude.json에 병합하고 <HOME>을 홈 디렉토리로 바꾸어 Claude Code에 등록합니다:

{
  "mcpServers": {
    "tradingview": { "command": "node", "args": ["<HOME>/tradingview-mcp/src/server.js"] }
  }
}

mcpServers가 이미 존재한다면, 객체를 교체하지 말고 tradingview 키를 추가하십시오.

TRADINGVIEW_MCP_RULES=/path/to/rules.json을 사용하여 서버가 다른 규칙 파일을 가리키도록 설정합니다.

도구

도구

기능

tv_health_check

구성 + 데이터 소스 연결 가능성. 실패하는 대신 ready: false를 보고합니다.

get_rules

로드된 rules.json (해결된 기본값 포함).

get_price

최신 거래 가격.

get_candles

원시 OHLCV, 오래된 순서부터.

get_indicators

RSI, MACD, 추세 EMA, 200 EMA, 거래량, 시장 구조.

get_bias

하나의 심볼/시간대에 대한 편향, 모든 조건이 표시됩니다.

scan_watchlist

전체 관심 목록 및 모든 시간대에 걸친 편향.

get_macro_snapshot

현재 CRYPTOCAP TOTAL / TOTAL3 / BTC.D.

check_risk

리스크 규칙에 따른 포지션 크기 및 R:R.

편향 결정 방식

rules.json의 bias_criteria는 산문 형식입니다 — 사람과 모델에게는 유용하지만 기계가 구문 분석할 수는 없습니다. 실제로 get_bias를 구동하는 숫자 임계값은 bias_engine에 있으므로, 둘은 의도적으로 동기화 상태를 유지합니다.

심볼이 bullish가 되려면 세 가지 조건이 모두 충족되어야 합니다: 가격이 추세 EMA 위에 있고, 일일 RSI가 강세 밴드 내에 있으며, 시장 구조가 더 높은 고점 그리고 더 높은 저점을 보여야 합니다. Bearish는 그 반대입니다. 그 외의 모든 것은 neutral입니다.

get_bias는 항상 레이블과 함께 개별 조건 결과를 반환하므로 이유를 알 수 있습니다 — 그리고 입력을 사용할 수 없는 경우(예: 200개 막대의 기록이 없는 페어의 200 EMA) 지원할 수 없는 숫자 대신 이유와 함께 unknown을 반환합니다.

알아둘 가치가 있는 두 가지 의도적인 결과:

  • RSI가 70 이상이면 bullish가 아닙니다. 밴드 상한선이 70이므로 수직 급등은 롱 신호가 아닌 neutral로 읽힙니다.

  • RSI 게이트는 항상 일봉에서 옵니다. 4H를 판단할 때도 마찬가지입니다. rules.json이 RSI 조건을 "on daily"로 지정하기 때문입니다.

EMA 기간

원래 규칙에는 모순이 있었습니다: 세 가지 bias_criteria 모두 500 EMA를 참조한 반면, indicators_i_care_about에는 50과 200만 나열되어 있었습니다. bias_engine.trend_ema_period를 지표 목록과 일치하도록 50으로 설정했습니다 — 주봉의 500 EMA는 약 10년치의 캔들이 필요하며, 대부분의 페어에는 해당 기록이 없습니다.

500을 의도한 것이라면 config/rules.json에서 한 줄만 변경하면 되며, unknown 경로는 조용히 잘못된 답변을 제공하는 대신 정직하게 "기록 부족"을 알려줍니다.

데이터 소스 및 제한 사항

현물 페어의 경우 Binance 공개 REST API; CRYPTOCAP 집계의 경우 CoinGecko /global.

CRYPTOCAP 항목은 현재 값만 제공합니다 — 무료 시가총액 기록은 사용할 수 없으므로 get_indicators와 get_bias는 시리즈를 생성하는 대신 이를 거부합니다. scan_watchlist는 이를 건너뛰고 skipped_macro 아래에 나열합니다. TOTAL3는 TOTAL x (1 - BTC.D - ETH.D)로 파생됩니다.

Binance는 일부 지역을 지리적으로 차단합니다. tv_health_check가 예상대로 작동해야 하는 네트워크에서 연결할 수 없다고 보고하면, 이것이 가장 먼저 확인해야 할 사항입니다.

테스트

npm test는 완전히 오프라인으로 실행됩니다: 지표 수학은 Wilder의 게시된 RSI 참조 값에 대해 검증되며, MCP 계층은 스텁 데이터 소스와 인메모리 전송을 통해 실제 클라이언트에 의해 구동됩니다.

npm run smoke는 실제 네트워크가 필요한 부분입니다 — 클라이언트가 하는 것처럼 stdio를 통해 서버를 시작하고 라이브 API를 호출합니다.

재정적 조언이 아닙니다

이 서버는 공개 데이터에 대한 사용자 자신의 규칙이 무엇을 말하는지 보고합니다. 사용자를 위해 어떤 것도 결정하지 않으며, rules.json의 no_trades_during 창은 알림으로 표시될 뿐 강제되지 않습니다 — 여기서는 경제 캘린더를 확인하지 않습니다.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    F
    maintenance
    Scheduled scans across all Binance spot and perpetual pairs using CEL rules (RSI, volume, MAs, price action). Runs server-side 24/7, fires webhooks on match, with delivery proof and alert explainability.
    18
    27 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables research on Binance perpetual futures by scanning public data for four structural signals across BTC, ETH, SOL and 12 meme coins, and generating trading plans with counter-evidence, risk sizing, and trackable signal IDs—without placing trades.
    50 npm
    MIT