tradingview-mesh
TradingView MCP Mesh — 200+ Repo Scan + Best-of Mashup
Scanned 335 unique TradingView repos (11 queries × 20 evaluated = 220 evaluations) via
github-deepscansurface+deep. Reports in../.agents/skills/github-deepscan/reports/.
Top Finds (composite /5)
Rank | Repo | Stars | What it does best | Composite |
1 |
| 518 | Pine v5 → TypeScript transpiler, type-safe indicator dev | 4.0 |
2 |
| 4312 | Data layer — 37 tools: market data, screeners, TA, backtest, sentiment, Yahoo, futures, no browser/login needed | 3.4 (deep) |
3 |
| 5936 | Browser layer — 78 tools via CDP to TradingView Desktop, chart control, drawings, alerts, screenshots, CLI | 3.2 (deep) |
4 |
| 38 | Fresh 2026-08-31, JS CDP controller | 3.6 |
5 |
| <100 | Real Chrome Pine injection — drives real TradingView chart, Pine compile via | not ranked (too new) |
6 |
| 887 | 100+ Pine example indicators | 3.2 |
Deep winner: atilaahmettaner (3.4) > tradesdontlie (3.2). Bus factor warning on jackson-video fork (≤2 contributors).
Mesh Architecture
User → Mesh MCP (Python FastMCP) → routes by tool prefix
├─ tv_browser.* → moon-dev + tradesdontlie CDP (real chart, Pine injection, invite-only legend)
├─ tv_data.* → atila core (screener, TA, backtest, sentiment, price — no login)
├─ tv_pine.* → PineTS transpile + pine-facade compile-check + everget examples
└─ tv_alert.* → fabston webhook (TradingView → webhook → bot)Why mesh: No single repo does all 4. Moon-dev is only one that can write custom Pine to chart (others only read data). Tradesdontlie has 78 chart tools + CLI but needs TV Desktop. Atila has 37 data tools with zero browser. PineTS makes Pine type-safe. Mesh = one MCP, all capabilities, invite-only supported via legend scrape.
What Invite-Only Looks Like
tv_list_indicators→ reads[data-name="legend-source-item"]→ invite-only shows same as public:{"title":"My Invite Only v2","values":["42.1"]}if on charttv_add_indicator(name="Exact Invite Name")→ searches Indicators dialog → TradingView returns your invite-only if you have accessCannot enumerate all invite-only you own without names, cannot decompile source (server-compiled)
Install (Windows)
cd C:\Users\LENOVO\tools\tradingview-mcp-mesh
python -m venv .venv; .\.venv\Scripts\activate
pip install -r requirements.txt
copy ..\Trading-View-MCP-for-AI-by-Moon-Dev\.env .env # set TV_MCP_CHROME_BINARY to real Chrome
# real Chrome 152 found at C:\Program Files\Google\Chrome\Application\chrome.exe
python -m tradingview_mcp_mesh.server # stdio MCPMCP config for Claude/Kimi:
{
"mcpServers": {
"tradingview-mesh": {
"command": "python",
"args": ["-m", "tradingview_mcp_mesh.server"],
"cwd": "C:/Users/LENOVO/tools/tradingview-mcp-mesh"
}
}
}Status
Sources cloned to
sources/(5 repos)Chrome CDP live at 9222 (real Chrome 152, not playwright) — but websocket
wshung before (even blank page). Needs retest after mesh wiring withchrome-remote-interface(tradesdontlie's lib is more robust thanwebsocket-client).Next: wire
tradesdontlie/src/connection.jsCDP client +moon-dev/cdp_client.pyfallback, expose unifiedtv_list_indicatorsthat merges both.
Scan Proof
tradingview mcp: 33 candidates, 20 evaluatedtradingview pine script: 34, 20tradingview api: 30, 20tradingview indicator: 30, 20tradingview webhook: 32, 20tradingview strategy: 32, 20tradingview chart: 30, 20lightweight-charts: 30, 20pinescript: 31, 20tradingview lightweight: 34, 20tradingview alert: 29, 20 Total unique ~335, evaluated 220 (>200 as requested).