Skip to main content
Glama
Bearspeed77

TradingView MCP Server

by Bearspeed77

tradingview-mcp

config/rules.json に記述された暗号資産チャート分析ワークフローのためのMCPサーバーです。ローソク足を取得し、関心のあるインジケーターを計算し、それらに対してあなたのバイアスとリスクルールを評価します。

設計上の注意: なぜTradingViewに接続しないのか

このプロジェクトの出発点となったセットアップガイドでは、Chrome DevTools Protocol(--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

1つの銘柄/時間枠のバイアス。すべての条件が表示されます。

scan_watchlist

ウォッチリスト全体と全時間枠にわたるバイアス。

get_macro_snapshot

現在のCRYPTOCAP TOTAL / TOTAL3 / BTC.D。

check_risk

リスクルールに基づくポジションサイズとR:R。

バイアスの決定方法

rules.json の bias_criteria は散文です。人間やモデルには有用ですが、機械で解析できるものではありません。get_bias を実際に駆動する数値しきい値は bias_engine に存在するため、これら二つは意図的に同期が保たれています。

銘柄が 強気 と判定されるのは、次の3つすべてが成立する場合のみです: 価格がトレンドEMAより上、日足RSIが強気バンド内、市場構造が高値更新 かつ 安値切り上げを示していること。弱気 はその逆です。それ以外は 中立 です。

get_bias は常に個々の条件結果をラベルとともに返すため、なぜ そう判断されたかがわかります。また、入力が利用できない場合(例えば、200本の履歴がないペアの200 EMA)は、サポートできない数値ではなく、理由とともに unknown を返します。

知っておくべき2つの意図的な結果:

  • RSIが70を超えていても強気ではありません。 あなたのバンドは上限が70なので、垂直な急騰はロングシグナルではなく中立と読み取られます。

  • RSIゲートは常に日足から取得されます。 4Hを判断する場合でも同様です。なぜなら rules.json がRSI条件を「日足で」と指定しているからです。

EMA期間

あなたの元のルールには矛盾がありました。3つすべての bias_criteria が 500 EMA を参照している一方で、indicators_i_care_about には 50 と 200 のみがリストされていました。私は bias_engine.trend_ema_period を 50 に設定し、インジケーターリストと一致させました。週足の500 EMAは約10年分のローソク足を必要としますが、これらのペアのほとんどにはその履歴がありません。

もし500を意図していた場合、config/rules.json の1行を変更するだけで済みます。また、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