tradingview-mcp-india
tradingview-mcp-india
A fork of tradingview-mcp-server
by Atila Ahmettaner (MIT), with Indian stock-market (NSE / BSE) support added.
What this fork adds
Registered
NSEandBSEas stock exchanges mapped to TradingView'sindiamarket (src/tradingview_mcp/core/utils/validators.py).Bundled symbol lists
coinlist/nse.txtandcoinlist/bse.txt(top ~1,000 most-liquid tickers each), so symbol-iterating tools work too.Indian news: new
indiaRSS category (Economic Times, Moneycontrol, LiveMint, Hindu BusinessLine) and a dedicatedindia_newsMCP tool.Indian sentiment: new
indiaReddit group (r/IndianStockMarket, r/IndianStreetBets, r/DalalStreetTalks, r/StockMarketIndia, r/IndiaInvestments).Indian indices in
market_snapshot: Nifty 50 (^NSEI), Sensex (^BSESN), Bank Nifty (^NSEBANK), plus USDINR FX.combined_analysisrouting: NSE/BSE now pull Indian news + Indian sentiment (previously fell through to Reuters/US subreddits and returned nothing).SSL reliability fix (important): all outbound HTTPS (Yahoo Finance, Reddit, RSS) now uses a certifi-backed SSL context — via
proxy_manager._https_handler()for the shared opener and a dedicated fetch innews_service, plus browser User-Agent and manual HTTP 308 redirect following. Without this, the macOSCERTIFICATE_VERIFY_FAILEDerror silently broke every network tool (Yahoo price, snapshot, backtest, sentiment, news) — not just India.
Everything else is unchanged from upstream v0.7.1.
Install (editable)
python3 -m venv venv && source venv/bin/activate
pip install -e .Editable means your local edits to src/ are live immediately — no reinstall, and
a pip install --upgrade of the original PyPI package can never overwrite this fork.
Usage for Indian markets
Screener / technical-analysis tools — pass exchange="NSE" (or "BSE"), use 1D/1W timeframes:
top_gainers(exchange="NSE", timeframe="1D")
coin_analysis(symbol="RELIANCE", exchange="NSE", timeframe="1D")
multi_agent_analysis(symbol="INFY", exchange="NSE", timeframe="1D")Yahoo / backtest tools — use the .NS (NSE) or .BO (BSE) suffix:
backtest_strategy("TCS.NS", "rsi", "1y")
compare_strategies("INFY.NS")Indian news:
india_news(limit=10) # all India market headlines
india_news(symbol="RELIANCE") # only headlines mentioning RELIANCE
financial_news(category="india") # same feeds via the generic toolStock suggestion engine (NSE/BSE)
AI-assisted LONG trade ideas — each with entry (CMP), stop-loss, two targets, risk/reward, a 0–100 conviction score, and a plain-English rationale:
india_swing_picks(exchange="NSE", top_n=5) # 2-7 day swing ideas (daily TF)
india_swing_picks(direction="short") # bearish setups
india_swing_picks(index_filter="NIFTY50") # restrict to an index universe
india_intraday_signals(exchange="NSE", top_n=5) # same-session ideas (15m, VWAP-aware)
india_trade_plan("AXISBANK", mode="swing", direction="auto") # full plan for one stock
india_backtest("TCS", period="2y") # validate vs history (6-strategy leaderboard)
india_swing_picks(capital=200000, risk_pct=1.5) # add position sizing (qty + ₹ P&L)Position sizing: pass
capital(INR) andrisk_pctto any idea tool. Each idea then carriesposition_sizing: sharequantitysized so a stop-out loses ~risk_pctof capital (capped by capital), plusposition_value, rupeeloss_at_stop, andprofit_at_t1/t2. Short sizing is notional (real shorting needs margin).direction:
"auto"(long uptrends / short downtrends),"long", or"short". Short setups use a dedicated bearish momentum/quality scorer (the shared engine is long-biased) and inverted levels (stop above entry, targets below).index_filter:
"NIFTY50","NIFTYBANK","NIFTYNEXT50"— constituents bundled incore/data/india_indices.py(refresh on NSE rebalance).india_backtest: maps the symbol to Yahoo (
.NS/.BO) and runs all 6 strategies as a robustness check on whether the name respects technical setups.
How it works: scans the most-liquid NSE/BSE stocks, scores momentum
(compute_stock_score) and setup tradability (compute_trade_quality), builds
levels via compute_trade_setup, then layers on a conviction blend, a directional
gate (long-only; downtrends filtered out), and a generated rationale. ATR and
average volume are backfilled from tradingview_screener because tradingview_ta
omits them — without this the trade-setup engine produced no levels at all (this
gap also silently affected the upstream EGX setup path). Stops are floored
(≥0.5% swing / ≥0.6% intraday) so signals aren't stopped out by noise.
Educational analysis only — not investment advice.
The egx_* tools are Egypt-specific and do not apply to India.
Refreshing the symbol lists
python scripts/refresh_india_symbols.py # NSE/BSE liquid universe (coinlist/*.txt)
python scripts/refresh_india_indices.py # Nifty 50 / Bank Nifty / Next 50 constituents (official NSE CSVs)refresh_india_indices.py writes core/data/india_indices.json, which overrides the
bundled constituent lists. Run it after an NSE index rebalance.
Run the MCP server
tradingview-mcp # stdio transport (default)
tradingview-mcp streamable-http --host 127.0.0.1 --port 8000Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kumarakshay2456/tradingview-mcp-india'
If you have feedback or need assistance with the MCP directory API, please join our Discord server