atilaahmettaner/tradingview-mcp
요약
TradingView MCP 서버는 Claude, ChatGPT, Cursor 등 MCP 클라이언트를 위해 실시간 시장 데이터와 기술적 지표를 제공하는 오픈 소스 도구입니다. 주식, 암호화폐, 외환 등 다양한 자산에 대한 백테스팅과 기술적 분석 기능을 지원합니다.
핵심 포인트
- 실시간 시장 데이터 및 37가지 기술적 분석 도구 제공
- Claude, ChatGPT, Cursor 등 다양한 MCP 클라이언트와 호환
- TradingView 계정이나 API 키 없이 공개 엔드포인트 데이터 활용
- 백테스팅, 실시간 감성 분석, Yahoo Finance 데이터 통합
TradingView MCP 서버 — Claude, ChatGPT, Cursor, Copilot 및 모든 MCP 클라이언트를 위한 실시간 시장 데이터, 기술적 지표 (technical indicators), 스크리너 (screeners) 및 백테스팅 (backtesting) 기능을 제공합니다. 전 세계 거래소의 주식, 암호화폐 (crypto), 외환 (forex) 및 선물 (futures)을 지원합니다.
백테스팅 (Backtesting) + 실시간 감성 분석 (live sentiment) + Yahoo Finance + 37가지 기술적 분석 (technical-analysis) 도구 — 가장 완전한 TradingView MCP 툴킷을 하나의 서버에서 모두 제공합니다.
URL 하나를 붙여넣거나 (또는 pip install), 바로 질문하세요. 라이브 서버에서 직접 제공되는 실제 출력 결과:
먼저 이것들을 시도해 보세요 — Claude, ChatGPT, Cursor 또는 모든 MCP 클라이언트에서 작동합니다:
Binance에서 오늘 가장 많이 상승한 암호화폐 보여줘
NVDA의 전체 기술적 분석을 실행해줘
금(gold)에 대한 다중 타임프레임 (multi-timeframe) 분석 결과는 뭐야?
...
참고
독립적인 오픈 소스 프로젝트입니다 — TradingView Inc.와 제휴, 보증 또는 연관되어 있지 않습니다. "TradingView"는 해당 소유자의 상표입니다. 이 프로젝트는 제3자 시장 데이터를 소비하며 TradingView 제품이 아닙니다.
참고
귀하의 TradingView 계정이 필요하거나, 계정 사용에 위험을 초래하나요? 아니요. 이 서버는 TradingView 세션에 로그인, 스크래핑(scrape) 또는 자동화하지 않으며, TradingView 계정이나 API 키를 요구하지 않습니다. 시장 데이터는 공개 엔드포인트(public endpoints)로부터 서버 측에서 가져오므로, 귀하의 계정이 개입되지 않으며 브라우저/UI 자동화도 수행하지 않습니다. (이는 Chrome DevTools를 통해 TradingView 데스크톱 앱을 구동하는 MCP 서버와는 다릅니다.) 귀하가 지정한 데이터 소스의 이용 약관을 준수하는지 확인하는 책임은 귀하에게 있습니다.
중요
금융 조언이 아닙니다. 이 소프트웨어에 의해 생성된 어떠한 내용도 투자, 금융, 법률, 세무 또는 회계 조언이 아닙니다. tradingview-mcp는 정보 제공 및 교육용 분석 도구입니다. 지표 (indicators), 점수 (scores), 신호 (signals), "트레이딩 셋업 (trade setups)", 진입가 (entries), 손절가 (stop losses) 및 목표가 (targets)를 포함한 출력값은 제3자 시장 데이터로부터 계산된 것이며, 어떠한 자산을 매수, 매도 또는 보유하라는 권고가 아닙니다. 이 도구는 거래를 실행하거나, 자금을 관리하거나, 어떠한 결과도 보장하지 않습니다. 트레이딩과 투자는 상당한 손실 위험을 수반하며, 자본의 일부 또는 전부를 잃을 수 있습니다. 금융 결정을 내리기 전에 항상 스스로 조사하고 면허를 소지한 전문가와 상담하십시오. 귀하는 귀하의 결정과 귀하에게 적용되는 법률 및 규정을 준수할 책임이 전적으로 귀하에게 있습니다. 시장 데이터는 지연되거나, 부정확하거나, 불완전할 수 있으며 보증 없이 제공됩니다.
팁
설정 과정이 번거로우신가요? 호스팅 버전을 사용하세요. pro.cryptosieve.com은 Claude.ai, ChatGPT, Copilot 및 Cursor를 위해 37개의 모든 도구를 하나의 커넥터 URL로 제공합니다. uv, pandas 또는 Python을 다룰 필요가 없습니다. 월 $9(Pro) 또는 월 $29(Pro+ — 더 높은 한도)부터 시작하며, 3일간 무료 체험이 가능합니다. 셀프 호스팅(Self-hosting)은 영원히 무료로 유지되지만, 호스팅 버전은 운영(ops) 과정을 건너뛰고 싶은 분들을 위한 것입니다. (전체 셀프 호스팅 vs 호스팅 비교는 아래 Quick Start에서 확인하세요.)
⭐ 이 도구가 귀하의 워크플로우를 개선했다면, 저장소(repo)에 스타(star)를 눌러주시고 후원을 고려해 주세요. 프로젝트를 유지하고 성장시키는 데 큰 힘이 됩니다!
github.readme.mp4
안정성 및 전략 확장 (2026년 5월)
비동기 핫패스 도구 (Async hot-path tools) — 7개의 트래픽이 높은 도구(yahoo_price, stock_extended_hours, top_gainers, volume_breakout_scanner, multi_timeframe_analysis, financial_news, combined_analysis)가 async def로 변환되었습니다. FastMCP는 이벤트 루프(event loop)에서 직렬화된 동기(sync) 도구를 실행하지만, 비동기(async)를 사용하면 실제 서버 내부의 병렬성(parallelism)을 구현할 수 있어 동시 도구 호출이 실제로 중첩되어 실행될 수 있습니다. 또한 combined_analysis는 asyncio.gather를 통해 3개의 하위 호출을 병렬로 분산 처리합니다.
이 강력한 도구의 성능(wall-clock)을 약 3배 개선했습니다.
yahoo_price및stock_extended_hours를 위해 진정한 비차단 I/O (non-blocking I/O)를 구현하고자httpx.AsyncClient를 사용합니다. 동기 라이브러리 도구들(tradingview_ta,tradingview-screener,feedparser)은asyncio.to_thread를 통해 오프로드(off-loaded) 처리됩니다.
(PR — open)
9가지 백테스트 전략 (기존 6개에서 증가) — rsi_pullback, keltner_breakout, triple_ema를 추가하여 추세 되돌림(trend-pullback), ATR 정규화 돌파(ATR-normalized breakout), SMA200 필터링 EMA 교차 엣지(SMA200-filtered EMA cross edges)를 지원합니다. compare_strategies는 이제 전체 9개 전략의 순위를 매깁니다.
회복력 계층 (Resilience layer) — TradingView 스크리너 제공자에 대해 자동 재시도(automatic retry) 및 60초 TTL 캐시를 적용하여, combined_analysis 및 multi_timeframe_analysis에서 발생하는 일시적인 "Expecting value" 오류를 제거했습니다.
(PR #32 — merged)
금융 뉴스 서비스 재구축 — 더 이상 사용되지 않는(deprecated) Reuters RSS 엔드포인트를 Yahoo Finance, MarketWatch, CNBC로 교체합니다. financial_news에서 오랫동안 지속되었던 count: 0 버그를 수정했습니다.
(PR #33 — merged)
TA 스로틀 (TA throttle) — tradingview_ta 호출의 동시 실행 횟수를 제한(기본값 4회)하고, 시작 간 최소 0.8초의 간격을 둡니다. 이를 통해 combined_analysis / multi_timeframe_analysis의 병렬 폭주가 TradingView의 빈 본문(empty-body) 속도 제한(rate-limit) 임계값에 도달하는 것을 방지합니다. 환경 변수를 통해 조정 가능합니다.
(PR #34 — merged)
워크 포워드 백테스팅 (Walk-forward backtesting) (walk_forward_backtest_strategy) — 과적합(overfitting) 판정(ROBUST / MODERATE / WEAK / OVERFITTED)을 포함한 훈련/테스트 분할을 수행합니다.
backtest_strategy, compare_strategies, walk_forward_backtest_strategy 전반에 걸쳐 시간 단위 (1h) 타임프레임 지원을 추가했습니다.
전체 거래 로그 + 자산 곡선 (Full trade log + equity curve) 출력 기능 (include_trade_log=True, include_equity_curve=True)을 추가했습니다.
| 기능 | tradingview-mcp | 전통적인 셋업 (Traditional Setups) | Bloomberg Terminal |
|---|---|---|---|
| 설정 시간 | 5분 | 수 시간 (Docker, Conda...) | 수 주 (계약 절차) |
| 비용 | 무료 및 오픈 소스 (Free & Open Source) | 가변적 | 연간 $30k 이상 |
| 백테스팅 (Backtesting) | ✅ 9개 전략 + Walk-forward + Sharpe | ❌ 수동 스크립팅 | ✅ 독점적 (Proprietary) |
| 실시간 감성 분석 (Live Sentiment) | ✅ Reddit + RSS 뉴스 | ❌ 별도 설정 필요 | ✅ 터미널 (Terminal) |
| 시장 데이터 (Market Data) | ✅ 라이브 / 실시간 | 과거 데이터 / 지연 데이터 | 라이브 |
| API 키 | 필요 없음 | 다수 필요 (OpenAI 등) | 해당 없음 |
두 가지 실행 방식 — 어떤 방식을 선택하든 동일한 37개의 도구를 사용합니다:
| 🧑💻 셀프 호스팅 (Self-host, 이 리포지토리) | ☁️ 호스팅 서비스 — pro.cryptosieve.com |
|---|---|
| 가격 | 영구 무료 (MIT 라이선스) |
| 첫 호출까지 걸리는 시간 | ~5분 (Python + uv) |
| 업데이트 및 운영 (Ops) | 직접 실행 및 업데이트 |
| 실행 환경 | 사용자 로컬 머신 또는 VPS |
| 제한 사항 | 사용자 하드웨어 성능 |
| 추천 대상 | 튜닝 및 포크(fork)를 즐기며 완전한 제어를 원하는 사용자 |
☁️
설정이 필요 없습니다: Claude.ai, ChatGPT, Copilot 또는 Cursor에 커넥터 URL 하나만 붙여넣으세요 → 3일 무료 체험을 시작할 수 있습니다. 아래 내용은 모두 셀프 호스팅(self-hosting)을 위한 것입니다.
pip install tradingview-mcp-server
financial_news
및 market_sentiment
(그리고 combined_analysis의 뉴스/감성 분석 부분 포함)는 Marketaux를 통해 구동됩니다 —
개별 엔티티(entity)별 감성 분석이 포함된 라이선스 시장 뉴스입니다. 무료 API 키(일일 100회 요청 가능; 서버가 4시간 동안 캐싱하며 뉴스 및 감성 분석 간에 하나의 호출을 공유하므로 무료 티어로도 충분히 활용 가능합니다)를 발급받아 다음과 같이 설정하세요:
export MARKETAUX_API_TOKEN=your_token_here # 선택 사항
토큰이 없으면 해당 두 도구는 친절한 "설정되지 않음(not configured)" 메시지를 반환하며, 나머지 모든 도구는 정상적으로 작동합니다.
참고: macOS의 경우, Claude Desktop과 같은 GUI 앱의 PATH에 ~/.local/bin이 포함되어 있지 않을 수 있습니다. "command not found" 에러를 방지하려면 uvx의 전체 경로를 사용하세요.
{
"mcpServers": {
"tradingview": {
...
Linux의 경우, /Users/YOUR_USERNAME을
/home/YOUR_USERNAME으로
교체하세요. Windows의 경우, %USERPROFILE%\/.local/bin/uvx.exe를 사용하세요.
이 저장소에는 mcp 전용 Codex 플러그인 메타데이터도 포함되어 있습니다:
.codex-plugin/plugin.json
.codex-mcp.json
플러그인은 동일한 PyPI 패키지 엔트리포인트 (entrypoint)를 사용합니다:
{
"mcpServers": {
"tradingview": {
...
Codex 플러그인을 설치하거나 활성화한 후에는 Codex를 재시작하여 다음 세션에서 MCP 서버가 로드되도록 하세요. Codex 버전에 따라 codex mcp list 명령어가 등록된 MCP 서버를 보여줄 수 있지만, 도구 사용 가능 여부는 새로운 Codex 세션에서 확인해야 합니다.
git clone https://github.com/atilaahmettaner/tradingview-mcp
cd tradingview-mcp
uv run tradingview-mcp
증상 — 설정을 추가한 직후 Claude Desktop 로그에서 다음과 같은 내용을 확인하게 됩니다:
[tradingview] Server started and connected successfully
[tradingview] Message from client: initialize ...
[60 seconds later]
...
원인: Python 3.14는 아직 지원되지 않습니다. uvx는 처음 실행될 때 tradingview-mcp-server를 다운로드하고, 새로운 가상 환경 (virtualenv)을 생성하며, 의존성 (dependencies)을 설치합니다. MCP 스택의 일부 네이티브 의존성들이 현재 호환되는 Python 3.14 휠 (wheels)을 배포하지 않기 때문에, 설치 과정이 소스 빌드로 전환되거나 Claude Desktop이 서버 초기화를 완료하기 전에 실패할 수 있습니다.
해결 방법 — Python 3.13으로 고정 (사전 빌드된 pandas 휠 포함):
{
"mcpServers": {
"tradingview": {
...
macOS에서는 uvx의 전체 경로를 사용하세요 (Quick Start의 노트를 참조하세요). Windows에서 uvx는 일반적으로 %USERPROFILE%\/.local/bin/uvx.exe입니다.
대안 — 한 번 미리 설치한 후 Claude Desktop이 캐시를 재사용하도록 하기:
# Claude Desktop을 실행하기 전 터미널에서 실행
uv tool install --python 3.13 tradingview-mcp-server
설치가 완료된 후, 일반적인 설정으로 Claude Desktop을 시작하면 서버가 즉시 실행됩니다 (캐시가 이미 준비되어 있음).
구조화된 에러 형식 (structured error format)을 채택한 도구들은 일반적인 페이로드 (payload) 또는 에러 엔벨로프 (error envelope)를 반환합니다:
{"error": {"code": "ALL_BATCHES_FAILED", "message": "All 5 batches failed; first error: JSONDecodeError(...)", "batches_attempted": 5, "batches_failed": 5, "first_error": "...", "retryable": true}}
이유: 이전의 [] 또는 / {"error": "Analysis failed: ..."} 문자열 방식은 "오늘 일치하는 항목 없음"과 "상위 서비스의 속도 제한 (rate-limit) 임계치 도달"을 구분하는 것을 불가능하게 만들었습니다. 새로운 엔벨로프는 code를 통해 프로그래밍 방식으로 분기 처리가 가능하며, retryable은 호출자에게 대기 후 재시도하는 것이 도움이 될지 여부를 알려줍니다 (상위 서비스의 일시적인 폭주 상황은 지나가지만, 누락된 의존성 (dependency)은 스스로 해결되지 않습니다).
전체 적용 (Full coverage) (모든 실패 모드 — 상위 서비스 중단, 빈 심볼 리스트, 누락된 의존성, 예기치 않은 예외 — 가 엔벨로프를 반환하며, 절대 원시 문자열이나 트레이스백 (traceback)을 반환하지 않음): top_gainers, top_losers, bollinger_scan, rating_filter, volume_breakout_scanner, smart_volume_scanner.
부분 적용 (Partial adoption) (주요 에러 경로가 엔벨로프를 반환): coin_analysis, volume_confirmation_analysis, consecutive_candles_scan, futures_market_overview, futures_top_movers, stock_prices 및 백테스트 입력 가드 (input guards). 나머지 도구들은 배치 단위로 마이그레이션 중이며, 이는 #76에서 추적되고 있습니다.
에러 감지하기:
result = volume_breakout_scanner(exchange="KUCOIN")
if isinstance(result, dict) and "error" in result:
code = result["error"]["code"]
...
안정적인 코드들은 core/errors.py에 정의되어 있습니다.
이 서버를 셀프 호스팅 AI 게이트웨이인 OpenClaw를 사용하여 Telegram, WhatsApp, Discord 및 20개 이상의 메시징 플랫폼에 연결하세요. Hetzner VPS (Ubuntu 24.04)에서 테스트 및 검증되었습니다.
OpenClaw는 Telegram 메시지를 AI 에이전트로 라우팅합니다. 에이전트는 얇은 Python 래퍼 (wrapper)인 trading.py를 사용하여 tradingview-mcp 함수를 호출하고 포맷팅된 결과를 반환합니다. OpenClaw와 서버 사이에는 MCP 프로토콜이 필요하지 않으며, 직접적인 Python 임포트 (import) 방식으로 작동합니다.
Telegram → OpenClaw agent (AI 모델) → trading.py (bash) → tradingview-mcp → Yahoo Finance
# 1. UV 및 tradingview-mcp 설치
curl -LsSf https://astral.sh/uv/install.sh | sh && source ~/.bashrc
uv tool install tradingview-mcp-server
...
OpenRouter는 필수 사항이 아닙니다 — 키가 있는 공급자를 사용하세요:
| 공급자 | OpenClaw용 모델 ID | 키 받기 | |
|---|---|---|
| OpenRouter (모든 모델 접근 통합) | openrouter/google/gemini-3-flash-preview | openrouter.ai/keys | |
| Anthropic (Claude 직접) | anthropic/claude-sonnet-4-5 | console.anthropic.com | |
| Google (Gemini 직접) | google/gemini-2.5-flash | aistudio.google.com | |
| OpenAI (GPT 직접) | openai/gpt-4o-mini | platform.openai.com | |
# 예시 — 사용할 모델 설정:
openclaw config set agents.defaults.model "openrouter/google/gemini-3-flash-preview" # OpenRouter를 통해
openclaw config set agents.defaults.model "anthropic/claude-sonnet-4-5" # Anthropic 직접
...
⚠️ 중요: 접두사(Prefix)는 공급자와 일치해야 합니다. google/...은 Google API 키가 필요하며, openrouter/...는 OpenRouter 키가 필요합니다.
| 증상 | 원인 | 해결 방법 |
|---|---|---|
Unrecognized keys: mcpServers | 이 버전에서 mcpServers를 지원하지 않음 | 설정에서 제거하고 bash 래퍼(wrapper) 사용 |
No API key for provider "google" | google/model을 사용했지만 OpenRouter 키만 가지고 있음 | 대신 openrouter/google/model을 사용하세요 |
which agent? 루프 | acp.defaultAgent가 설정되지 않음 | openclaw config set acp.defaultAgent main |
| Gateway 시작 불가 | gateway.mode 누락 | openclaw config set gateway.mode local |
실행 후, Telegram 봇을 전송하세요:
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Trending Python (daily)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기