tradingview-mcp-chefy
Token-efficient TradingView MCP for traders who backtest Pine strategies; aggregates strategy results and trade data server-side to reduce token usage.
README
tradingview-mcp-chefy
Token-efficient TradingView MCP for traders who actually backtest.
This is a fork built specifically for strategy testing. The existing TradingView MCPs work well for chart reading and morning workflows, but they burn tokens hard when you're iterating on Pine strategies — every backtest read dumps the full trade list, equity curve, and console output into your context. This fork rewrites those reads to aggregate inside TradingView's runtime before the data crosses the wire, returning summaries by default and detail on demand.
[!WARNING] Not affiliated with TradingView Inc. or Anthropic. This tool connects to your locally running TradingView Desktop app via Chrome DevTools Protocol. Review the Disclaimer before use.
[!IMPORTANT] Requires a valid TradingView subscription. This tool does not bypass any TradingView paywall. It reads from and controls the TradingView Desktop app already running on your machine.
[!NOTE] All processing is local. Nothing is sent anywhere. No TradingView data leaves your machine.
Credits
This project stands on two pieces of prior work:
- tradesdontlie/tradingview-mcp — the original CDP bridge and tool surface. The hard scraping work is theirs.
- LewisWJackson/tradingview-mcp-jackson — fork that added the morning-brief workflow, rules config, and a v2.14+ launch fix. This fork forks his.
If those repos help you, go star them.
What's Different in This Fork
| Area | Upstream behavior | This fork | Status |
|---|---|---|---|
data_get_strategy_results |
Returns full strategy tester payload (~67K tokens) | In-browser aggregation: returns ~40 curated metrics + computed expectancy + first/last trade timestamps. verbose: true for the full raw payload |
shipped (v0.1) |
data_get_trades |
max_trades cap only |
Cursor-paginated. Default limit: 20. all: true for full list |
planned |
data_get_equity |
Full curve point-by-point | Downsampled to N buckets (default 50). verbose: true for raw |
planned |
pine_get_console |
All console output | New pine_console_errors filters server-side |
planned |
| Strategy detector | Stops at first is_price_study === false source — latches onto Volume / EMA |
Score-based: scans all sources and picks the one with strongest strategy signals (ordersData, _strategyOrdersPaneView, _reportData, is_strategy meta) |
shipped (v0.1) |
Measured token cost — data_get_strategy_results
Real numbers from a 121-week (255-trade) backtest of a Pine strategy on COMEX:GC1! 1H:
| Mode | Output size | Approx tokens |
|---|---|---|
| Default (summary) | ~1.7 KB | ~425 |
verbose: true |
268,792 chars | ~67,000 |
~99% reduction per call in default mode. On a heavy iteration session (20+ runs), this is the difference between burning ~$20 of tokens on result reads alone vs ~$0.10.
The aggregation runs inside TradingView's Electron runtime — same CDP round-trip, ~150× less data crossing the wire.
Status
v0.1 — first aggregation tool (data_get_strategy_results) shipped, with hardened strategy detector and trade-aggregate computation in-browser. Other tools still match upstream behavior.
Roadmap:
- [x] Fork repo, set up structure
- [x]
data_get_strategy_resultssummary mode +verboseescape hatch - [x] Strategy detector hardening (score-based, no
is_price_studygate) - [x] In-browser trade-derived aggregates (win rate, PF, max DD, expectancy)
- [ ]
data_get_equitydownsampling - [ ]
data_get_tradescursor pagination - [ ]
pine_console_errorsfiltered tool - [ ] Token-cost benchmark video
- [ ] PR uncontroversial fixes back to LewisWJackson upstream
- [ ] v0.2 release
Quick Start
Same setup as upstream for now. When the new tools land in v0.2, the install path stays identical — only the
mcpServersconfig name might change.
Prerequisites
- TradingView Desktop app (paid subscription required for real-time / strategy data)
- Node.js 18+
- Claude Code (or any MCP client)
- macOS, Windows, or Linux
Install
git clone https://github.com/Chefy3x/tradingview-mcp-chefy.git ~/tradingview-mcp-chefy
cd ~/tradingview-mcp-chefy
npm install
Launch TradingView with debug port
Mac:
./scripts/launch_tv_debug_mac.sh
Windows:
scripts\launch_tv_debug.bat
Linux:
./scripts/launch_tv_debug_linux.sh
Add to Claude Code
Add to ~/.claude/.mcp.json (merge with existing servers):
{
"mcpServers": {
"tradingview": {
"command": "node",
"args": ["/Users/YOUR_USERNAME/tradingview-mcp-chefy/src/server.js"]
}
}
}
Replace YOUR_USERNAME with your actual username (echo $USER on Mac/Linux).
Verify
Restart Claude Code and ask: "Use tv_health_check to verify TradingView is connected."
Architecture
Claude Code ←→ MCP stdio ←→ src/server.js ←→ CDP :9222 ←→ TradingView Desktop (Electron)
- Connection: Chrome DevTools Protocol on
localhost:9222 - Aggregation: for backtest reads, the JS expression sent over CDP performs the reduction inside TradingView's runtime before returning. Same network hop, ~200x less data crossing the boundary.
- No external network calls — everything runs locally
- Zero added dependencies beyond what upstream uses
Contributing
Two-way street with upstream:
- Token efficiency improvements to existing tools → I'll PR these back to LewisWJackson upstream so everyone benefits
- New
backtest_*family of tools → stays in this fork (changes the mental model of how the MCP is used)
If you spot a bug in shared code paths, open an issue here and I'll route it.
Disclaimer
This project is provided for personal, educational, and research purposes only.
This tool uses the Chrome DevTools Protocol (CDP), a standard debugging interface built into all Chromium-based applications. It does not reverse engineer any proprietary TradingView protocol, connect to TradingView's servers, or bypass any access controls. The debug port must be explicitly enabled by the user via a standard Chromium command-line flag.
By using this software you agree that:
- You are solely responsible for ensuring your use complies with TradingView's Terms of Use and all applicable laws.
- This tool accesses undocumented internal TradingView APIs that may change at any time.
- This tool must not be used to redistribute, resell, or commercially exploit TradingView's market data.
- The authors are not responsible for any account bans, suspensions, or other consequences.
Use at your own risk.
License
MIT — see LICENSE. Inherited from upstream. Applies to source code only, not to TradingView's software, data, or trademarks.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.