Skip to main content
Glama
tradingview-mcp-server

tradingview-mcp-server

TradingView MCP Market Data & Technical Analysis for AI Assistants

TradingView MCP server — real-time market data, technical indicators, screeners, and backtesting for Claude, ChatGPT, Cursor, Copilot, and any MCP client. Stocks, crypto, forex & futures across global exchanges. Backtesting + live sentiment + Yahoo Finance + 37 technical-analysis tools — the most complete TradingView MCP toolkit, all in one server.

🆕 The hosted server now draws. Ask for a chart and an interactive candlestick view (1d / 1h / 15m, optional Bollinger overlay) renders live inside the conversation via MCP Apps — and the AI reads the band values back to you:

Paste one URL (or pip install), then just ask. Real output, straight from the live server:

Try these first — they work in Claude, ChatGPT, Cursor, or any MCP client:

Show today's top crypto gainers on Binance
Run a full technical analysis of NVDA
What's the multi-timeframe read on gold?
Backtest an RSI strategy on BTC on the daily timeframe
NOTE

Independent open-source project —not affiliated with, endorsed by, or associated with TradingView Inc. "TradingView" is a trademark of its respective owner; this project consumes third-party market data and is not a TradingView product.

NOTE

Does it need — or risk — your TradingView account? No. This server does not log into, scrape, or automate a TradingView session, and it requires no TradingView account or API key. Market data is fetched server-side from public endpoints, so there is no account of yours in the loop and no browser/UI automation. (This is different from MCP servers that drive the TradingView Desktop app via Chrome DevTools.) You are responsible for ensuring your own use complies with the terms of any data source you point it at.

"TradingView MCP" now means two very different kinds of project. Both are useful — for different jobs:

This project — data & analysis API

Desktop-automation MCPs

What you need

Nothing — public market data

TradingView Desktop, usually with a paid TradingView plan

Where it works

Claude.ai, Claude Code, ChatGPT, Cursor, Copilot — any MCP client

Mostly Claude Code, on your own machine

When your machine is off

Hosted version keeps answering, 24/7

Stops

Screeners & backtesting

Built in (37 tools, multi-exchange)

Whatever the TradingView UI offers

Charts

Interactive in-conversation charts (MCP Apps, hosted)

TradingView's own charts

Your TradingView account

Not needed, never touched

Drives your logged-in session

If you want an AI clicking around your TradingView Desktop — editing Pine Script, drawing on charts, using replay — check out tradesdontlie/tradingview-mcp. If you want headless market data, screeners and backtesting available to any AI client, with nothing installed and no TradingView account in the loop — that's this project.

IMPORTANT

Not financial advice. Nothing produced by this software is investment, financial, legal, tax, or accounting advice. tradingview-mcp is an informational and educational analysis tool. Its outputs, including indicators, scores, signals, "trade setups", entries, stop losses, and targets, are computed from third party market data and are not recommendations to buy, sell, or hold any asset. It does not execute trades, manage money, or guarantee any result. Trading and investing carry a substantial risk of loss, and you can lose some or all of your capital. Always do your own research and consult a licensed professional before making any financial decision. You are solely responsible for your own decisions and for complying with the laws and regulations that apply to you. Market data may be delayed, inaccurate, or incomplete, and is provided without warranty.

TIP

Prefer zero setup? Use the hosted version. pro.cryptosieve.com serves all 37 tools as one connector URL for Claude.ai, ChatGPT, Copilot, and Cursor — no uv, pandas, or Python to wrangle. From $9/mo (Pro) or $29/mo (Pro+ — higher limits), with a 3-day free trial. Self-hosting stays free forever; hosted is just for folks who'd rather skip the ops. (Full self-host vs hosted comparison in Quick Start below.)

License: MIT Python 3.10-3.13 MCP Ready OpenClaw Ready Version PyPI GitHub Sponsors

⭐ If this tool improves your workflow, please star the repo and consider sponsoring — it keeps the project alive and growing!


🎥 Framework Demo

https://github-production-user-asset-6210df.s3.amazonaws.com/67838093/478689497-4a605d98-43e8-49a6-8d3a-559315f6c01d.mp4


Related MCP server: TradingView MCP

🆕 What's New

Stability & Strategy Expansion (May 2026)

  • Async hot-path tools — 7 high-traffic tools (yahoo_price, stock_extended_hours, top_gainers, volume_breakout_scanner, multi_timeframe_analysis, financial_news, combined_analysis) converted to async def. FastMCP runs sync tools serialized on the event loop — async unlocks real intra-server parallelism so concurrent tool calls actually overlap. combined_analysis additionally fans its 3 sub-calls out via asyncio.gather for ~3× wall-clock improvement on the power tool. yahoo_price / stock_extended_hours use httpx.AsyncClient for true non-blocking I/O; sync-library tools (tradingview_ta, tradingview-screener, feedparser) are off-loaded via asyncio.to_thread. (PR — open)

  • 9 backtest strategies (up from 6) — added rsi_pullback, keltner_breakout, and triple_ema, covering trend-pullback, ATR-normalized breakout, and SMA200-filtered EMA cross edges. compare_strategies now ranks the full 9.

  • Resilience layer — automatic retry + 60-second TTL cache on the TradingView screener provider, eliminating transient "Expecting value" errors on combined_analysis and multi_timeframe_analysis. (PR #32 — merged)

  • Financial news service rebuild — replaces deprecated Reuters RSS endpoints with Yahoo Finance, MarketWatch, and CNBC. Fixes the long-standing count: 0 bug on financial_news. (PR #33 — merged)

  • TA throttle — caps concurrent tradingview_ta calls (default 4) + min 0.8s spacing between starts. Prevents parallel bursts of combined_analysis / multi_timeframe_analysis from hitting TradingView's empty-body rate-limit cliff. Tunable via env vars. (PR #34 — merged)

  • Walk-forward backtesting (walk_forward_backtest_strategy) — train/test split with overfitting verdict (ROBUST / MODERATE / WEAK / OVERFITTED).

  • Hourly (1h) timeframe support across backtest_strategy, compare_strategies, and walk_forward_backtest_strategy.

  • Full trade log + equity curve outputs (include_trade_log=True, include_equity_curve=True).


🏗️ Architecture

tradingview-mcp Architecture


✨ Why tradingview-mcp?

Feature

tradingview-mcp

Traditional Setups

Bloomberg Terminal

Setup Time

5 minutes

Hours (Docker, Conda...)

Weeks (Contracts)

Cost

Free & Open Source

Variable

$30k+/year

Backtesting

✅ 9 strategies + Walk-forward + Sharpe

❌ Manual scripting

✅ Proprietary

Live Sentiment

✅ Reddit + RSS news

❌ Separate setup

✅ Terminal

Market Data

✅ Live / Real-Time

Historical / Delayed

Live

API Keys

None required

Multiple (OpenAI, etc.)

N/A


🚀 Quick Start (5 Minutes)

Two ways to run it — the same 37 tools either way:

| | 🧑‍💻 Self-host (this repo) | ☁️ Hosted — pro.cryptosieve.com | |---|---| | Price | Free forever (MIT) | $9/mo Pro · $29/mo Pro+ · 3-day free trial | | Time to first call | ~5 minutes (Python + uv) | ~60 seconds (paste one URL) | | Updates & ops | You run and update it | Managed — always on the latest | | Runs on | Your machine or VPS | Hosted, streamed from the edge | | Limits | Your hardware | 2,500/mo · 60/min (Pro) → 10,000/mo · 150/min (Pro+) | | Best for | Tinkerers, forkers, full control | Folks who'd rather skip the ops |

☁️ Zero setup: paste one connector URL into Claude.ai, ChatGPT, Copilot, or Cursor → start a 3-day free trial. Everything below is for self-hosting.

🚀 Transports

This server supports three MCP transports. Pick the one that matches your client:

Transport

When to use

stdio (default)

Claude Desktop, Codex, and any local MCP client that spawns the server as a child process.

sse

Remote clients or reverse-proxied setups where the server must expose an HTTP endpoint with Server-Sent Events.

streamable-http

Same as SSE but uses HTTP streaming; useful when the client prefers plain HTTP response bodies over event streams.

stdio (default)

uv run tradingview-mcp

SSE

uv run tradingview-mcp sse --host 0.0.0.0 --port 8000

Then point your client at http://<host>:8000/sse.

streamable-http

uv run tradingview-mcp streamable-http --host 0.0.0.0 --port 8000

Then point your client at http://<host>:8000/mcp.

Note: --host and --port default to 127.0.0.1:8000. Set HOST / PORT environment variables to override defaults without flags.

Install via pip

pip install tradingview-mcp-server

Optional: news & sentiment (free Marketaux key)

financial_news and market_sentiment (plus the news/sentiment parts of combined_analysis) are powered by Marketaux — licensed market news with per-entity sentiment. Grab a free API key (100 requests/day; the server caches for 4h and shares one fetch between news and sentiment, so the free tier goes a long way) and set:

export MARKETAUX_API_TOKEN=your_token_here   # optional

Without a token those two tools return a friendly "not configured" note — all other tools work normally.

Claude Desktop Config (claude_desktop_config.json)

Note: On macOS, GUI apps like Claude Desktop may not have ~/.local/bin in their PATH. Use the full path to uvx to avoid "command not found" errors.

{
  "mcpServers": {
    "tradingview": {
      "command": "/Users/YOUR_USERNAME/.local/bin/uvx",
      "args": ["--from", "tradingview-mcp-server", "tradingview-mcp"]
    }
  }
}

On Linux, replace /Users/YOUR_USERNAME with /home/YOUR_USERNAME. On Windows, use %USERPROFILE%\.local\bin\uvx.exe.

Codex Plugin Config

This repository also includes mcp-only Codex plugin metadata:

  • .codex-plugin/plugin.json

  • .codex-mcp.json

The plugin uses the same PyPI package entrypoint:

{
  "mcpServers": {
    "tradingview": {
      "command": "uvx",
      "args": ["--from", "tradingview-mcp-server", "tradingview-mcp"]
    }
  }
}

After installing or enabling the Codex plugin, restart Codex so the MCP server is loaded in the next session. Depending on your Codex version, codex mcp list may show registered MCP servers, but tool availability should be verified in a fresh Codex session.

Or run from source

git clone https://github.com/atilaahmettaner/tradingview-mcp
cd tradingview-mcp
uv run tradingview-mcp

🛠️ Troubleshooting

🪟 Windows: MCP error -32001: Request timed out on first launch

Symptom — you see this in the Claude Desktop logs shortly after adding the config:

[tradingview] Server started and connected successfully
[tradingview] Message from client: initialize ...
[60 seconds later]
[tradingview] notifications/cancelled — reason: "MCP error -32001: Request timed out"

Why it happens: Python 3.14 is not supported yet. uvx downloads tradingview-mcp-server, creates a fresh virtualenv, and installs dependencies the first time it runs. Some native dependencies in the MCP stack do not currently publish compatible Python 3.14 wheels, so installation can fall back to source builds or fail before Claude Desktop finishes initializing the server.

Fix — pin to Python 3.13 (has prebuilt pandas wheels):

{
  "mcpServers": {
    "tradingview": {
      "command": "uvx",
      "args": ["--python", "3.13", "--from", "tradingview-mcp-server", "tradingview-mcp"]
    }
  }
}

On macOS use the full path to uvx (see the note in Quick Start). On Windows uvx is typically %USERPROFILE%\.local\bin\uvx.exe.

Alternative — pre-install once, then let Claude Desktop reuse the cache:

# Run in a terminal before launching Claude Desktop
uv tool install --python 3.13 tradingview-mcp-server

After the install finishes, start Claude Desktop with the normal config and the server will come up instantly (cache is already warm).

Credit: @wyh4444 for the original report in #24.


⚠️ Error Envelope Format

Tools that have adopted the structured error format return either their normal payload or an 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}}

Why: the previous [] / {"error": "Analysis failed: ..."} strings made it impossible to distinguish "no matches today" from "upstream rate-limit cliff." The new envelope is programmatically branchable by code, and retryable tells the caller whether waiting and retrying can help (upstream storms pass; a missing dependency won't fix itself).

Full coverage (every failure mode — upstream outage, empty symbol list, missing dependency, unexpected exception — returns an envelope, never a raw string/traceback): top_gainers, top_losers, bollinger_scan, rating_filter, volume_breakout_scanner, smart_volume_scanner.

Partial adoption (main error paths return envelopes): coin_analysis, volume_confirmation_analysis, consecutive_candles_scan, futures_market_overview, futures_top_movers, stock_prices, and the backtest input guards. Remaining tools migrate in batches — tracked in #76.

Detecting an error:

result = volume_breakout_scanner(exchange="KUCOIN")
if isinstance(result, dict) and "error" in result:
    code = result["error"]["code"]
    if result["error"].get("retryable"):
        # Wait + retry, raise alert, fall back to single-batch call, etc.
        ...
else:
    for row in result:
        ...

Stable codes are defined in core/errors.py.


📱 Use via Telegram, WhatsApp & More (OpenClaw)

Connect this server to Telegram, WhatsApp, Discord and 20+ messaging platforms using OpenClaw — a self-hosted AI gateway. Tested & verified on Hetzner VPS (Ubuntu 24.04).

How It Works

OpenClaw routes Telegram messages to an AI agent. The agent uses trading.py — a thin Python wrapper — to call tradingview-mcp functions and return formatted results. No MCP protocol needed between OpenClaw and the server; it's a direct Python import.

Telegram → OpenClaw agent (AI model) → trading.py (bash) → tradingview-mcp → Yahoo Finance

Quick Setup

# 1. Install UV and tradingview-mcp
curl -LsSf https://astral.sh/uv/install.sh | sh && source ~/.bashrc
uv tool install tradingview-mcp-server

# 2. Configure OpenClaw channels
cat > ~/.openclaw/openclaw.json << 'EOF'
{
  channels: {
    telegram: {
      botToken: "YOUR_BOT_TOKEN_HERE",
    },
  },
}
EOF

# 3. Configure gateway + agent
openclaw config set gateway.mode local
openclaw config set acp.defaultAgent main

# 4. Set your AI model (choose ONE option below)
openclaw configure --section model

# 5. Install the skill + tool wrapper
mkdir -p ~/.agents/skills/tradingview-mcp ~/.openclaw/tools
curl -fsSL https://raw.githubusercontent.com/atilaahmettaner/tradingview-mcp/main/openclaw/SKILL.md \
  -o ~/.agents/skills/tradingview-mcp/SKILL.md
curl -fsSL https://raw.githubusercontent.com/atilaahmettaner/tradingview-mcp/main/openclaw/trading.py \
  -o ~/.openclaw/tools/trading.py && chmod +x ~/.openclaw/tools/trading.py

# 6. Start the gateway
openclaw gateway install
systemctl --user start openclaw-gateway.service

Choose Your AI Model

OpenRouter is not required — use whichever provider you have a key for:

Provider

Model ID for OpenClaw

Get Key

OpenRouter (aggregator — access to all models)

openrouter/google/gemini-3-flash-preview

openrouter.ai/keys

Anthropic (Claude direct)

anthropic/claude-sonnet-4-5

console.anthropic.com

Google (Gemini direct)

google/gemini-2.5-flash

aistudio.google.com

OpenAI (GPT direct)

openai/gpt-4o-mini

platform.openai.com

# Examples — set your chosen model:
openclaw config set agents.defaults.model "openrouter/google/gemini-3-flash-preview"  # via OpenRouter
openclaw config set agents.defaults.model "anthropic/claude-sonnet-4-5"               # Anthropic direct
openclaw config set agents.defaults.model "google/gemini-2.5-flash"                   # Google direct

⚠️ Important: Prefix must match your provider. google/... needs a Google API key. openrouter/... needs an OpenRouter key.

⚠️ Common Mistakes

Symptom

Cause

Fix

Unrecognized keys: mcpServers

mcpServers not supported in this version

Remove from config, use bash wrapper

No API key for provider "google"

Used google/model but only have OpenRouter key

Use openrouter/google/model instead

which agent? loop

acp.defaultAgent not set

openclaw config set acp.defaultAgent main

Gateway won't start

gateway.mode missing

openclaw config set gateway.mode local

Test Your Bot

Once running, send your Telegram bot:

market snapshot
backtest RSI strategy for AAPL, 1 year
compare all strategies for BTC-USD

👉 Full OpenClaw Setup Guide →


Unlike basic screeners, this framework deploys specialized AI agents that debate findings in real-time:

  1. 🛠️ Technical Analyst — Bollinger Bands (±3 proprietary rating), RSI, MACD

  2. 🌊 Sentiment & Momentum Analyst — Reddit community sentiment + price momentum

  3. 🛡️ Risk Manager — Volatility, drawdown risk, mean-reversion signals

Output: STRONG BUY / BUY / HOLD / SELL / STRONG SELL with confidence score


🔧 All 37 MCP Tools

📊 Backtesting Engine

Tool

Description

backtest_strategy

Backtest 1 of 9 strategies with institutional metrics (Sharpe, Calmar, Expectancy). Supports 1d and 1h timeframes; optional full trade log + equity curve.

compare_strategies

Run all 9 strategies on the same symbol and rank by performance.

walk_forward_backtest_strategy

Train/test split walk-forward validation with overfitting verdict (ROBUST / MODERATE / WEAK / OVERFITTED).

9 Strategies to Test:

  • rsi — RSI oversold/overbought mean reversion

  • bollinger — Bollinger Band mean reversion

  • macd — MACD golden/death cross

  • ema_cross — EMA 20/50 Golden/Death Cross

  • supertrend — ATR-based Supertrend trend following 🔥

  • donchian — Donchian Channel breakout (Turtle Trader style)

  • rsi_pullback — Dip-buy in confirmed uptrend (SMA50>SMA200 + RSI<40 entry) 🆕

  • keltner_breakout — ATR-normalized breakout (EMA20 + 2·ATR upper band) 🆕

  • triple_ema — EMA 20/50 cross gated by SMA200 trend filter 🆕

🆕 strategies require period='1y' or '2y' so the SMA200 trend filter can complete its warmup.

Metrics you get: Win Rate, Total Return, Sharpe Ratio, Calmar Ratio, Max Drawdown, Profit Factor, Expectancy, Best/Worst Trade, vs Buy-and-Hold, with realistic commission + slippage simulation.

Example prompt: "Compare all 9 strategies on MSFT for 2 years"
→ #1 triple_ema:        +15.1% | Sharpe:  0.0 | WR: 100%
→ #2 keltner_breakout:  +14.3% | Sharpe:  4.7 | WR:  40%
→ #3 bollinger:         +12.2% | Sharpe:  4.1 | WR:  64%
→ Buy & Hold:            -2.1%

💰 Yahoo Finance — Real-Time Prices (New in v0.6.0)

Tool

Description

yahoo_price

Real-time quote: price, change %, 52w high/low, market state

market_snapshot

Global overview: S&P500, NASDAQ, VIX, BTC, ETH, EUR/USD, SPY, GLD

Supports: Stocks (AAPL, TSLA, NVDA), Crypto (BTC-USD, ETH-USD, SOL-USD), ETFs (SPY, QQQ, GLD), Indices (^GSPC, ^DJI, ^IXIC, ^VIX), FX (EURUSD=X), Turkish (THYAO.IS, SASA.IS)


🌍 Global Stock Screener — Common & Preferred Shares

Tool

Description

stock_screener

List common or preferred stocks for any TradingView country market (america, korea, germany, brazil, …) with price, currency, % change, dividend yield — ranked by market cap. The API twin of TradingView's "Common stock" / "Preferred stock" symbol-search filter.

stock_prices

Direct price lookup for specific symbols (comma-separated EXCHANGE:SYMBOL, e.g. NASDAQ:NVDA, KRX:005930) — price, currency, daily % change, with unrecognized tickers named in not_found.


🧠 AI Sentiment & Intelligence

Tool

Description

market_sentiment

Reddit sentiment across finance communities (bullish/bearish score, top posts)

financial_news

Live RSS headlines from Yahoo Finance, MarketWatch, CNBC, CoinDesk, CoinTelegraph

combined_analysis

Power Tool: TradingView technicals + Reddit sentiment + live news → confluence decision. Now backed by retry + 60s cache for resilience against transient screener errors.


📈 Technical Analysis Core

Tool

Description

get_technical_analysis

Full TA: RSI, MACD, Bollinger, 23 indicators with BUY/SELL/HOLD

get_multiple_analysis

Bulk TA for multiple symbols at once

get_bollinger_band_analysis

Proprietary ±3 BB rating system

get_stock_decision

3-layer decision engine (ranking + trade setup + quality score)

screen_stocks

Multi-exchange screener with 20+ filter criteria

scan_by_signal

Scan by signal type (oversold, trending, breakout...)

get_candlestick_patterns

15 candlestick pattern detector

get_multi_timeframe_analysis

Weekly→Daily→4H→1H→15m alignment analysis


🌍 Multi-Exchange Support

Exchange

Tools

Binance

Crypto screener, all pairs

KuCoin / Bybit+

Crypto screener

NASDAQ / NYSE

US stocks (AAPL, TSLA, NVDA...)

EGX (Egypt)

egx_market_overview, egx_stock_screener, egx_trade_plan, egx_fibonacci_retracement

Turkish (BIST)

Via TradingView screener


💬 Example AI Conversations

You: "Give me a full market snapshot right now"
AI: [market_snapshot] → S&P500 -3.4%, BTC +0.1%, VIX 31 (+13%), EUR/USD 1.15

You: "What is Reddit saying about NVDA?"
AI: [market_sentiment] → Strongly Bullish (0.41) | 23 posts | 18 bullish

You: "Backtest RSI strategy on BTC-USD for 2 years"
AI: [backtest_strategy] → +31.5% return | 100% win rate | 2 trades | B&H: -5%

You: "Which of the 9 strategies worked best on MSFT in the last 2 years?"
AI: [compare_strategies] → triple_ema #1 (+15.1%, WR 100%), keltner_breakout #2 (+14.3%), macd last (-23.4%)

You: "Run walk-forward backtest on supertrend for SPY"
AI: [walk_forward_backtest_strategy] → Verdict: ROBUST (avg robustness 0.92) | OOS return +8.5%

You: "Analyze TSLA with all signals: technical + sentiment + news"
AI: [combined_analysis] → BUY (Technical STRONG BUY + Bullish Reddit + Positive news)

💖 Support the Project

This framework is free and open source, built in spare time. If it saves you hours of research or helps you make better decisions, please consider sponsoring:

Tier

Monthly

What You Get

☕ Coffee

$5

Heartfelt gratitude + name in README

🚀 Supporter

$15

Above + priority bug fixes

💎 Pro

$30

Above + priority feature requests

Every sponsor directly funds new features like Walk-Forward Backtesting, Twitter/X sentiment, and managed cloud hosting.


📋 Roadmap

  • TradingView technical analysis (30+ indicators)

  • Multi-exchange screener (Binance, KuCoin, MEXC, EGX, US stocks)

  • Reddit sentiment analysis

  • Live financial news (Yahoo / MarketWatch / CNBC / CoinDesk / CoinTelegraph)

  • Yahoo Finance real-time prices

  • Backtesting engine (9 strategies + Sharpe / Calmar / Expectancy)

  • Walk-forward backtesting (overfitting detection)

  • Resilience layer (retry + TTL cache) on screener provider

  • Hourly (1h) backtesting timeframe

  • Twitter/X market sentiment

  • Paper trading simulation

  • Managed cloud hosting (no local setup)


📄 License

MIT License — see LICENSE for details.


Disclaimer: This tool is for educational and research purposes only. It does not constitute financial advice. Always do your own research before making investment decisions.

Available Tools

37 tools
advanced_candle_patternB
Read-only

Advanced candle pattern analysis using multi-timeframe data.

Args: exchange: Exchange name (BINANCE, KUCOIN, etc.) base_timeframe: Base timeframe for analysis (5m, 15m, 1h, 4h) pattern_length: Number of consecutive periods to analyse (2-4) min_size_increase: Minimum percentage increase in candle size limit: Maximum number of results to return

Inputs: limit, exchange, base_timeframe, pattern_length, +1 more.

backtest_strategyA
Read-only

Backtest a trading strategy on historical data with institutional-grade metrics.

Args: symbol: Yahoo Finance symbol (AAPL, BTC-USD, THYAO.IS, ^GSPC) strategy: rsi | bollinger | macd | ema_cross | supertrend | donchian | rsi_pullback | keltner_breakout | triple_ema (rsi_pullback and triple_ema need period >= '1y' for SMA200 warmup) period: '1mo', '3mo', '6mo', '1y', '2y' initial_capital: Starting capital in USD (default $10,000) commission_pct: Per-trade commission % (default 0.1%) slippage_pct: Per-trade slippage % (default 0.05%) interval: '1d' (daily) or '1h' (hourly) include_trade_log: Include full per-trade log (default False) include_equity_curve: Include equity curve data points (default False)

Inputs: symbol (required), strategy (required), period, interval, +5 more.

bitcoin_market_pulseA
Read-only

Single-call BTC macro context: price, dominance, total market cap + risk assessment.

Use this WHENEVER analyzing any cryptocurrency (altcoin or BTC itself) to get the broader market frame in one shot. A SOL/ETH/whatever setup looks very different when BTC is dumping with rising dominance vs. when alts are leading. Calling this once gives Claude the macro context to provide Bitcoin-aware commentary alongside the per-coin analysis - without chaining 2-3 separate yahoo_price + manual reasoning calls.

Returns:

  • bitcoin: price, 24h change %, volume, market cap

  • dominance: BTC and ETH market-cap share of total crypto

  • total_market: total crypto mcap + 24h change + active coin count

  • assessment: label (HIGH_RISK / ALT_RISK / ALT_FAVORABLE / OPPORTUNITY_WITH_CAUTION / NEUTRAL) + 1-paragraph reasoning

Inputs: no named parameters.

bollinger_scanA
Read-only

Scan for assets with low Bollinger Band Width (squeeze detection). Works with crypto and stocks.

This scans a whole EXCHANGE for squeezes (canonical name is exactly bollinger_scan; there is no "get_bollinger_band_analysis" tool). For the Bollinger read of ONE symbol, call coin_analysis instead.

Example: bollinger_scan(exchange="BINANCE", timeframe="15m", bbw_threshold=0.008)

Args: exchange: Exchange — crypto: KUCOIN, BINANCE, BYBIT, MEXC; stocks: EGX, BIST, NASDAQ, NYSE, BURSA, HKEX, SSE, SZSE, TWSE, TPEX timeframe: One of 5m, 15m, 1h, 4h, 1D, 1W, 1M. Typical squeeze thresholds: 15m→0.008, 1h→0.02, 4h→0.04, 1D→0.12 bbw_threshold: Maximum BBW value to filter (default 0.04) limit: Number of rows to return (max 100)

Returns list[dict] on success. On ANY failure returns a structured error envelope {"error": {"code": ..., "retryable": ...}}.

Inputs: limit, exchange, timeframe, bbw_threshold. Returns: result

coin_analysisA
Read-only

Get detailed analysis for a specific asset (coin or stock) on specified exchange and timeframe.

This is the canonical single-symbol technical readout (there is no "get_technical_analysis" or "get_technical_summary" tool — use THIS one). Use multi_timeframe_analysis instead when you need trend alignment across several timeframes, and combined_analysis when you also want news sentiment + headlines in the same call.

Example: coin_analysis(symbol="BTCUSDT", exchange="BINANCE", timeframe="1h")

Args: symbol: Bare ticker, no exchange prefix — crypto: "BTCUSDT", "ETHUSDT"; stocks: "COMI" (EGX), "THYAO" (BIST), "600519" (SSE), "300251" (SZSE), "2330" (TWSE), "3105" (TPEX) exchange: Exchange — crypto: KUCOIN, BINANCE, MEXC; stocks: EGX, BIST, NASDAQ, NYSE, BURSA, HKEX, SSE, SZSE, TWSE, TPEX. If the symbol isn't listed there, the error's listed_on field names exchanges that do list it. timeframe: Time interval (5m, 15m, 1h, 4h, 1D, 1W, 1M)

Returns: Detailed analysis with all indicators and metrics

Inputs: symbol (required), exchange, timeframe.

combined_analysisA
Read-only

POWER TOOL: TradingView technical analysis + news sentiment + financial news.

Use this when you want TA AND sentiment AND news for one symbol in a single call. For indicators only, coin_analysis is faster; for cross-timeframe trend alignment use multi_timeframe_analysis.

Example: combined_analysis(symbol="NVDA", exchange="NASDAQ", timeframe="1D")

Args: symbol: Bare ticker, no exchange prefix ("AAPL", "BTCUSDT", "THYAO", "GDX") exchange: Exchange (NASDAQ, NYSE, AMEX, NYSEARCA, PCX, BINANCE, KUCOIN, MEXC, BIST, EGX, TWSE, TPEX) timeframe: Analysis timeframe (5m, 15m, 1h, 4h, 1D, 1W)

Inputs: symbol (required), exchange, timeframe.

compare_strategiesA
Read-only

Run all 9 strategies (RSI, Bollinger, MACD, EMA Cross, Supertrend, Donchian, RSI Pullback, Keltner Breakout, Triple EMA) and return a ranked leaderboard.

Args: symbol: Yahoo Finance symbol (AAPL, BTC-USD, SPY…) period: '1mo', '3mo', '6mo', '1y', '2y' (period >= '1y' recommended so rsi_pullback and triple_ema can complete SMA200 warmup; otherwise they contribute zero trades) initial_capital: Starting capital in USD (default $10,000) interval: '1d' (daily) or '1h' (hourly)

Inputs: symbol (required), period, interval, initial_capital.

consecutive_candles_scanB
Read-only

Scan for coins with consecutive growing/shrinking candles pattern.

Args: exchange: Exchange name (BINANCE, KUCOIN, etc.) timeframe: Time interval (5m, 15m, 1h, 4h) pattern_type: "bullish" (growing candles) or "bearish" (shrinking candles) candle_count: Number of consecutive candles to check (2-5) min_growth: Minimum growth percentage for each candle limit: Maximum number of results to return

Inputs: limit, exchange, timeframe, min_growth, +2 more.

egx_index_analysisA
Read-only

Analyse an EGX index showing constituent performance with full indicators.

Args: index: EGX30, EGX70, EGX100, SHARIAH33, EGX35LV, TAMAYUZ timeframe: One of 5m, 15m, 1h, 4h, 1D, 1W, 1M (default 1D) limit: Number of stocks to show in detail (max 100)

Inputs: index, limit, timeframe.

egx_market_overviewB
Read-only

Get a comprehensive overview of the Egyptian Exchange (EGX) market.

Args: timeframe: One of 5m, 15m, 1h, 4h, 1D, 1W, 1M (default 1D for stocks) limit: Number of stocks per category (max 20)

Inputs: limit, timeframe.

egx_sector_scanA
Read-only

Scan EGX stocks by sector. Shows available sectors if none specified.

Args: sector: Sector name (banks, healthcare_and_pharma, real_estate, etc.) Leave empty to list all sectors. timeframe: One of 5m, 15m, 1h, 4h, 1D, 1W, 1M limit: Max results per sector (max 50)

Inputs: limit, sector, timeframe.

egx_sector_scannerA
Read-only

Sector rotation scanner for EGX — identifies hot/cold sectors and top picks.

Args: timeframe: One of 5m, 15m, 1h, 4h, 1D, 1W, 1M (default 1D) top_n_sectors: Number of top sectors to show stock picks for (1-18, default 5) top_n_stocks: Number of top stocks per highlighted sector (1-10, default 3) min_stock_score: Minimum stock score for picks (0-100, default 60)

Inputs: timeframe, top_n_stocks, top_n_sectors, min_stock_score.

egx_stock_screenerA
Read-only

Production stock ranking engine for EGX — finds strong stocks with actionable setups.

Args: timeframe: One of 5m, 15m, 1h, 4h, 1D, 1W, 1M (default 1D) min_score: Minimum stock score to include (0-100, default 55) index_filter: Filter by index — EGX30, EGX70, EGX100, SHARIAH33, EGX35LV, TAMAYUZ limit: Number of results (max 50)

Inputs: limit, min_score, timeframe, index_filter.

egx_trade_planA
Read-only

Generate a full trade plan for a specific EGX stock.

Args: symbol: EGX stock symbol (e.g., "COMI", "TMGH", "FWRY") timeframe: One of 5m, 15m, 1h, 4h, 1D, 1W, 1M (default 1D)

Inputs: symbol (required), timeframe.

fibonacci_retracementB
Read-only

Fibonacci retracement analysis for any stock or crypto symbol.

Args: symbol: Bare ticker, no exchange prefix — crypto: "BTCUSDT"; stocks: "COMI" (EGX), "THYAO" (BIST), "600519" (SSE), "300251" (SZSE), "2330" (TWSE), "3105" (TPEX), "GDX" (AMEX) exchange: Exchange — crypto: KUCOIN, BINANCE, MEXC; stocks: EGX, BIST, NASDAQ, NYSE, AMEX, NYSEARCA, PCX, SSE, SZSE, TWSE, TPEX lookback: Period for swing high/low — "1M", "3M", "6M", "52W", "ALL" (default 52W) timeframe: Analysis timeframe (5m, 15m, 1h, 4h, 1D, 1W, 1M — default 1D)

Inputs: symbol (required), exchange, lookback, timeframe.

financial_newsB
Read-only

Real-time financial news via Marketaux (licensed).

Args: symbol: Optional symbol filter ("AAPL", "BTC"). None = all news. category: News category ("crypto", "stocks", "all") limit: Max number of news items

Inputs: limit, symbol, category.

futures_category_snapshotB
Read-only

Quote all major front-month contracts in a specific futures category.

Args: category: equity_index | energy | metals | agriculture | rates | forex | crypto_futures

Returns: OHLCV quotes for the standard watchlist of contracts in that category. Example symbols: ES1! NQ1! (equity_index), CL1! NG1! (energy), GC1! SI1! (metals).

Inputs: category.

futures_market_overviewA
Read-only

Top futures contracts sorted by trading volume.

Args: category: all | equity_index | energy | metals | agriculture | rates | forex | crypto_futures exchanges: us (CME, COMEX, NYMEX, CBOT) | global (adds ICE, EUREX) limit: max contracts to return (default 30) volume_min: minimum volume filter (0 = no filter)

Returns: Dict with total_available count and list of contracts with OHLCV + % change.

Inputs: limit, category, exchanges, volume_min.

futures_top_moversA
Read-only

Futures contracts with the biggest percentage moves today.

Args: direction: gainers | losers exchanges: us | global limit: max results volume_min: minimum volume filter (default 10, filters illiquid contracts)

Returns: List of futures ranked by % change with OHLCV data.

Inputs: limit, direction, exchanges, volume_min.

futures_watchlistA
Read-only

Return the full categorized list of well-known front-month futures symbols.

Categories: equity_index, energy, metals, agriculture, rates, forex, crypto_futures. Use these symbols with futures_category_snapshot or coin_analysis for deeper analysis.

Inputs: no named parameters.

market_sentimentA
Read-only

News sentiment for stocks and crypto (licensed Marketaux entity sentiment).

Args: symbol: Asset symbol ("AAPL", "BTC", "ETH", "TSLA") category: News group to search ("crypto", "stocks", "all") limit: Max articles to analyse

Inputs: symbol (required), limit, category.

market_snapshotB
Read-only

Global market overview: major indices, top crypto, FX rates, and key ETFs. Powered by Yahoo Finance.

Inputs: no named parameters.

multi_agent_analysisA
Read-only

Run a multi-agent debate (Technical, Sentiment, Risk) for a specific symbol.

Args: symbol: Symbol — crypto: "BTCUSDT"; stocks: "COMI" (EGX), "THYAO" (BIST), "600519" (SSE), "300251" (SZSE), "2330" (TWSE), "3105" (TPEX), "GDX" (AMEX) exchange: Exchange — crypto: KUCOIN, BINANCE, MEXC; stocks: EGX, BIST, NASDAQ, NYSE, AMEX, NYSEARCA, PCX, SSE, SZSE, TWSE, TPEX timeframe: Time interval (5m, 15m, 1h, 4h, 1D, 1W)

Returns: A structured debate between 3 AI agents culminating in a final trading decision.

Inputs: symbol (required), exchange, timeframe.

multi_timeframe_analysisA
Read-only

Multi-timeframe alignment analysis (Weekly → Daily → 4H → 1H → 15m).

Canonical name is exactly multi_timeframe_analysis (there is no "get_multi_timeframe_analysis" tool). Use this for cross-timeframe trend alignment on ONE symbol; for a single-timeframe deep dive use coin_analysis; for TA + sentiment + news use combined_analysis.

Example: multi_timeframe_analysis(symbol="SOLUSDT", exchange="BINANCE")

Args: symbol: Bare ticker, no exchange prefix — crypto: "BTCUSDT"; stocks: "COMI" (EGX), "THYAO" (BIST), "600519" (SSE), "300251" (SZSE), "2330" (TWSE), "3105" (TPEX), "GDX" (AMEX) exchange: Exchange — crypto: KUCOIN, BINANCE, MEXC; stocks: EGX, BIST, NASDAQ, NYSE, AMEX, NYSEARCA, PCX, SSE, SZSE, TWSE, TPEX

Inputs: symbol (required), exchange.

rating_filterA
Read-only

Filter coins by Bollinger Band rating.

Args: exchange: Exchange name like KUCOIN, BINANCE, BYBIT, MEXC, etc. timeframe: One of 5m, 15m, 1h, 4h, 1D, 1W, 1M rating: BB rating (-3 to +3): -3=Strong Sell, -2=Sell, -1=Weak Sell, 1=Weak Buy, 2=Buy, 3=Strong Buy limit: Number of rows to return (max 50)

Returns list[dict] on success. On ANY failure returns a structured error envelope {"error": {"code": ..., "retryable": ...}}.

Inputs: limit, rating, exchange, timeframe. Returns: result

smart_volume_scannerA
Read-only

Smart volume + technical analysis combination scanner.

Args: exchange: Exchange name min_volume_ratio: Minimum volume multiplier (default 2.0) min_price_change: Minimum price change percentage (default 2.0) rsi_range: "oversold" (<30), "overbought" (>70), "neutral" (30-70), "any" limit: Number of results (max 30)

Returns list[dict] on success. On ANY failure returns a structured error envelope {"error": {"code": ..., "retryable": ...}}.

Inputs: limit, exchange, rsi_range, min_price_change, +1 more. Returns: result

stock_extended_hoursA
Read-only

Real-time pre-market and after-hours prices for a US stock symbol.

Use this when the user asks about a stock outside the regular 9:30am-4pm ET session — earnings reactions, overnight news, "what is X doing in after-hours?", "how did Y open in pre-market?". Returns the most recent valid print from each session window (pre-market, regular, post-market) along with computed % changes vs. the previous close and the regular close, respectively.

During the regular session, post_market will be null (no data yet). On weekends/holidays, returns whatever's most recent in each window.

Args: symbol: US stock symbol — AAPL, NVDA, TSLA, SPY, ^GSPC, etc.

Returns: - pre_market: {price, as_of_utc, change_vs_previous_close_pct} or null - regular: {price, as_of_utc, change_pct} (consolidated tape close) - post_market: {price, as_of_utc, change_vs_regular_close_pct} or null - previous_close, currency, exchange, market_state for context

Inputs: symbol (required).

stock_options_chainA
Read-only

Full options chain (calls + puts) for a US stock symbol and one expiry.

Use this when the user asks "what's the options chain for X?", "show me AAPL puts expiring next Friday", or wants to inspect bid/ask/IV/volume on a specific strike. If no expiry is provided, returns the nearest expiry so Claude can quote it back and ask "want a different one?".

Args: symbol: US stock symbol — AAPL, NVDA, TSLA, SPY, etc. expiry: Optional ISO date (YYYY-MM-DD). Must match one of the available_expiries Yahoo returns; otherwise returns an error with the list of valid dates.

Returns: - underlying_price, underlying_change_pct - requested_expiry, available_expiries (list of YYYY-MM-DD) - call_count, put_count - calls: list of {strike, last_price, bid, ask, volume, open_interest, implied_volatility, in_the_money, expiration} - puts: same shape as calls

Inputs: symbol (required), expiry.

stock_options_unusual_activityA
Read-only

Top strikes by volume / open-interest ratio — institutional positioning signal.

Use this when the user asks "any unusual options activity on X?", "where is the smart money positioned on NVDA before earnings?", or wants a V/OI screener for a ticker. A V/OI ratio > 1 means today's volume already exceeds standing open interest, which classically flags fresh institutional positioning on a specific strike in a specific direction (call vs put).

Scans the soonest few expirations, filters out illiquid strikes (under min_volume), and returns the top-N sorted by V/OI descending. Also returns aggregate call vs put volume so Claude can comment on the overall directional bias.

Args: symbol: US stock symbol — AAPL, NVDA, TSLA, SPY, META, etc. top_n: How many strikes to return. Default 10. min_volume: Filter floor for today's volume — prevents noise from illiquid strikes with high V/OI ratios. Default 100. expiries: Number of soonest expirations to scan. Default 4 (typically covers ~1 month of weeklies + monthlies).

Returns: - underlying_price - expiries_scanned (list of YYYY-MM-DD) - total_call_volume, total_put_volume, put_call_volume_ratio - unusual: list of top-N contracts sorted by V/OI desc, each with {strike, side (call|put), expiration, volume, open_interest, v_oi_ratio, last_price, implied_volatility, in_the_money, strike_vs_spot_pct (moneyness)}

Inputs: symbol (required), top_n, expiries, min_volume.

stock_pricesA
Read-only

Current price + daily % change for specific stock symbols.

Args: tickers: comma-separated EXCHANGE:SYMBOL list (max 2000 — one upstream request even at full size), e.g. "NASDAQ:NVDA, NASDAQ:TSLA, KRX:005930". The exchange prefix is required — the scanner's direct-ticker lookup is exchange-scoped.

Returns: Envelope dict: rows of {ticker, symbol, description, exchange, price, open, high, low, currency, change_percent} plus a not_found list naming any requested ticker the scanner didn't recognize.

Inputs: tickers (required).

stock_screenerA
Read-only

Screen stocks by share type — the API twin of TradingView's "Common stock" / "Preferred stock" symbol-search filter.

Args: country: TradingView market name — e.g. america, korea, germany, brazil, japan, uk, india, turkey, canada, australia, france, hongkong stock_type: common | preferred limit: rows to return (max 2000, single upstream request), ranked by market cap descending exclude_otc: default True — drop OTC listings (foreign companies traded over-the-counter); "america" otherwise means "US venue", not "US company" compact: default False — True returns only ticker/symbol/price/currency/ change_percent per row (light payload for bulk price feeds) sort_by: market_cap (default) | dividend_yield | change | price — server-side descending sort over the WHOLE market, so e.g. sort_by=dividend_yield with limit=20 is the market's true top-20 dividend payers, not just the biggest companies re-sorted

Returns: Envelope dict: total_matches (market-wide count), returned, and rows of {ticker, symbol, description, exchange, price, open, high, low, currency, change_percent, dividend_yield, market_cap} — price is the current/last close; open/high/low are the current session's daily bar. Prices are in the market's local currency (e.g. KRW for korea).

Inputs: limit, compact, country, sort_by, +2 more.

top_gainersA
Read-only

Return top gainers for an exchange and timeframe using Bollinger Band analysis.

Args: exchange: Exchange name — crypto: KUCOIN, BINANCE, BYBIT, MEXC; stocks: EGX, BIST, NASDAQ, NYSE, BURSA, HKEX, SSE, SZSE, TWSE, TPEX timeframe: One of 5m, 15m, 1h, 4h, 1D, 1W, 1M limit: Number of rows to return (max 50)

Returns: list[dict] on success. On ANY failure returns a structured error envelope {"error": {"code": ..., "retryable": ...}} — never a raw exception string.

Inputs: limit, exchange, timeframe. Returns: result

top_losersA
Read-only

Return top losers for an exchange and timeframe. Supports crypto (KUCOIN, BINANCE, MEXC) and stocks (EGX, BIST, NASDAQ).

Returns list[dict] on success. On ANY failure returns a structured error envelope {"error": {"code": ..., "retryable": ...}}.

Inputs: limit, exchange, timeframe. Returns: result

volume_breakout_scannerA
Read-only

Detect coins with volume breakout + price breakout.

Args: exchange: Exchange name like KUCOIN, BINANCE, BYBIT, MEXC, etc. timeframe: One of 5m, 15m, 1h, 4h, 1D, 1W, 1M volume_multiplier: How many times the volume should be above normal level (default 2.0) price_change_min: Minimum price change percentage (default 3.0) limit: Number of rows to return (max 50)

Returns list[dict] on success, or an error envelope on total upstream failure ({"error": {"code": "ALL_BATCHES_FAILED", ...}}). The empty list now strictly means "no matches today"; rate-limit cliffs surface explicitly.

Inputs: limit, exchange, timeframe, price_change_min, +1 more. Returns: result

volume_confirmation_analysisB
Read-only

Detailed volume confirmation analysis for a specific coin.

Args: symbol: Coin symbol (e.g., BTCUSDT) exchange: Exchange name timeframe: Time frame for analysis

Inputs: symbol (required), exchange, timeframe.

walk_forward_backtest_strategyA
Read-only

Walk-forward backtest to detect overfitting — validates strategy on unseen data.

Args: symbol: Yahoo Finance symbol (AAPL, BTC-USD, SPY…) strategy: rsi | bollinger | macd | ema_cross | supertrend | donchian | keltner_breakout (rsi_pullback and triple_ema not supported here — SMA200 warmup exceeds typical fold size; use run_backtest with period='2y') period: '1mo', '3mo', '6mo', '1y', '2y' (recommend '2y') initial_capital: Starting capital per fold in USD (default $10,000) commission_pct: Per-trade commission % (default 0.1%) slippage_pct: Per-trade slippage % (default 0.05%) n_splits: Number of walk-forward folds (default 3, max 10) train_ratio: Fraction of each fold used for training (default 0.7) interval: '1d' (daily) or '1h' (hourly)

Inputs: symbol (required), strategy (required), period, interval, +5 more.

yahoo_priceA
Read-only

Real-time price quote from Yahoo Finance for any stock, crypto, ETF or index.

Args: symbol: Yahoo Finance symbol — e.g. AAPL, BTC-USD, SPY, ^GSPC, EURUSD=X, THYAO.IS

Inputs: symbol (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 37 tools

    Disambiguation2/5

    Many tools occupy the same conceptual space, especially the volume scanners (volume_breakout_scanner, smart_volume_scanner, volume_confirmation_analysis) and the EGX tools (egx_sector_scan vs egx_sector_scanner). An agent could easily select the wrong one despite the descriptions, because the boundaries between scan, scanner, analysis, and screener are fuzzy.

    Naming Consistency3/5

    All names are lowercase snake_case and readable, but the naming pattern is inconsistent: some are noun phrases (top_gainers, financial_news), some are verb-led (backtest_strategy, compare_strategies), and similar actions use interchangeable suffixes like scan, scanner, analysis, and screener. The near-twin names egx_sector_scan and egx_sector_scanner further weaken consistency.

    Tool Count2/5

    At 37 tools, the surface is well above the comfortable 3-15 range and clearly in the 'too many' category. The broad market domain partially justifies the count, but many tools are near-variants or EGX-specific expansions that could be consolidated.

    Completeness4/5

    The server covers major market workflows well: quotes, news/sentiment, technical analysis, multi-timeframe scans, backtesting, options, futures, and a dedicated EGX module. Minor gaps exist, such as a raw historical OHLC endpoint and broader fundamental screening, but agents can work around them with the existing tools.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      Provides AI agents with real-time financial market intelligence including stock quotes, crypto data, technical analysis, and portfolio insights. Enables natural language queries for current prices, technical indicators, asset comparisons, and portfolio analysis.
      17
      9
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      Provides real-time market data, technical analysis, screeners, and backtesting for stocks, crypto, forex, and futures to AI assistants via MCP.
      37
      1
      MIT
    • A
      license
      Not graded
      quality
      A
      maintenance
      Enables AI assistants to access and analyze financial data, stock information, company fundamentals, and market insights through 250+ tools covering stocks, ETFs, crypto, forex, commodities, and economics.
      624 npm
      Apache 2.0
    • A
      license
      Not graded
      quality
      A
      maintenance
      Enables AI assistants to access and analyze financial data, stock information, company fundamentals, and market insights through 250+ tools covering stocks, ETFs, crypto, forex, commodities, and economics.
      624 npm
      Apache 2.0