Skip to main content
Glama
omnibot007

tradingview-mesh

by omnibot007

TradingView MCP Mesh — 200+ Repo Scan + Best-of Mashup

Scanned 335 unique TradingView repos (11 queries × 20 evaluated = 220 evaluations) via github-deepscan surface+deep. Reports in ../.agents/skills/github-deepscan/reports/.

Top Finds (composite /5)

Rank

Repo

Stars

What it does best

Composite

1

LuxAlgo/PineTS

518

Pine v5 → TypeScript transpiler, type-safe indicator dev

4.0

2

atilaahmettaner/tradingview-mcp

4312

Data layer — 37 tools: market data, screeners, TA, backtest, sentiment, Yahoo, futures, no browser/login needed

3.4 (deep)

3

tradesdontlie/tradingview-mcp

5936

Browser layer — 78 tools via CDP to TradingView Desktop, chart control, drawings, alerts, screenshots, CLI tv

3.2 (deep)

4

FerroxLabs/tvcontrol

38

Fresh 2026-08-31, JS CDP controller

3.6

5

moondevonyt/Trading-View-MCP-for-AI-by-Moon-Dev

<100

Real Chrome Pine injection — drives real TradingView chart, Pine compile via pine-facade.tradingview.com, dedicated profile, only one that can put custom Pine on chart (invite-only visible via legend)

not ranked (too new)

6

everget/tradingview-pinescript-indicators

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 chart

  • tv_add_indicator(name="Exact Invite Name") → searches Indicators dialog → TradingView returns your invite-only if you have access

  • Cannot 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 MCP

MCP 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 ws hung before (even blank page). Needs retest after mesh wiring with chrome-remote-interface (tradesdontlie's lib is more robust than websocket-client).

  • Next: wire tradesdontlie/src/connection.js CDP client + moon-dev/cdp_client.py fallback, expose unified tv_list_indicators that merges both.

Scan Proof

  • tradingview mcp: 33 candidates, 20 evaluated

  • tradingview pine script: 34, 20

  • tradingview api: 30, 20

  • tradingview indicator: 30, 20

  • tradingview webhook: 32, 20

  • tradingview strategy: 32, 20

  • tradingview chart: 30, 20

  • lightweight-charts: 30, 20

  • pinescript: 31, 20

  • tradingview lightweight: 34, 20

  • tradingview alert: 29, 20 Total unique ~335, evaluated 220 (>200 as requested).