tradesdontlie/tradingview-mcp
摘要
一种通过Chrome DevTools协议将Claude Code连接到TradingView桌面的工具,实现AI辅助图表分析、Pine Script开发和工作流程自动化。所有数据处理均在本地进行,需要有效的TradingView订阅。
查看缓存全文
缓存时间: 2026/07/21 12:36
tradesdontlie/tradingview-mcp
来源:https://github.com/tradesdontlie/tradingview-mcp
TradingView MCP 桥接器
您的 TradingView 桌面图表的个人 AI 助手。通过 Chrome DevTools 协议将 Claude Code 连接到本地运行的 TradingView 应用,实现 AI 辅助图表分析、Pine Script 开发和工作流程自动化。
[!警告]
**本工具与 TradingView Inc. 无任何关联、认可或从属关系。**它通过 Chrome DevTools 协议与您本地运行的 TradingView 桌面应用交互。使用前请阅读免责声明。
[!重要]
**需要有效的 TradingView 订阅。**本工具不会绕过或规避任何 TradingView 付费墙或访问控制。它仅读取和控制已安装在您机器上的 TradingView 桌面应用。
[!注意]
**所有数据处理均在您的本地机器上进行。**本工具不会将任何 TradingView 数据传输、存储或重新分发到外部。
[!谨慎]
本工具通过 Electron 调试接口访问 TradingView 未公开的内部 API。这些接口可能在任何 TradingView 更新中发生变化或失效,恕不另行通知。如果您需要稳定性,请固定您的 TradingView 桌面版本。
工作原理(以及为何运行它是安全的)
本工具不连接 TradingView 的服务器,不修改任何 TradingView 文件,也不拦截任何网络流量。它仅通过 Chrome DevTools 协议(CDP)与本地运行的 TradingView 桌面实例通信——这是 Google 内置于所有 Chromium/Electron 应用(包括 VS Code、Slack 和 Discord)中的标准调试接口。
调试端口默认处于禁用状态,必须由您使用标准的 Chromium 标志(--remote-debugging-port=9222)显式启用。没有这一步,什么都不会发生。
本工具不会做什么
- 连接 TradingView 的服务器或 API
- 存储、传输或重新分发任何市场数据
- 在没有有效 TradingView 订阅和已安装桌面应用的情况下工作
- 绕过任何 TradingView 付费墙或访问限制
- 执行真实交易(仅图表交互)
- 在 TradingView 更改其内部 Electron 结构后继续工作
研究背景
本项目探索一个开放的研究问题:**基于 LLM 的智能体如何与专业交易界面交互以支持人类决策?**具体研究内容包括:
- 结构化工具 API(MCP)如何桥接 LLM 和状态化的桌面金融应用
- 当智能体在实时图表数据上操作时,会出现哪些延迟、上下文和可靠性约束
- 智能体如何处理模糊的金融 UI 状态(例如解读 Pine Script 输出、读取指标表格)
- 自然语言是否是图表导航和 Pine Script 开发的有效接口
- LLM 智能体在实时数据环境中运行的失败模式
这不是一个交易机器人。它是一个接口层,使交易应用对 LLM 智能体可读,允许研究人员和开发者研究金融工作流中的人机协作。请参阅 RESEARCH.md 了解开放问题、发现和相关工作。
前提条件
- TradingView 桌面应用(需要付费订阅才能获取实时数据)
- Node.js 18+
- 支持 MCP 的 Claude Code(用于 MCP 工具)或任何终端(用于 CLI)
- macOS、Windows 或 Linux
它能做什么
为您的 AI 助手提供您个人图表的“眼睛”和“手”:
- Pine Script 开发——在 AI 辅助下编写、注入、编译、调试和迭代脚本
- 图表导航——更改品种、时间周期、缩放到特定日期、添加/移除指标
- 可视化分析——读取图表上的指标值、价格水平和注释
- 在图表上绘图——趋势线、水平线、矩形、文本注释
- 管理警报——创建、列出和删除价格警报
- 回放练习——逐步浏览历史柱线,练习入场/出场
- 截图——捕获图表状态供 AI 视觉分析
- 多窗格布局——设置 2x2、3x1 等网格,每个窗格可显示不同品种
- 监控图表——从本地运行的图表流式传输 JSONL 数据,用于本地监控脚本
- CLI 访问——每个 MCP 工具同时也是
tvCLI 命令,支持管道和 JSON 输出 - 启动 TradingView——自动检测并以调试模式从任何平台启动
使用 Claude Code 安装
将以下内容粘贴到 Claude Code 中,它将处理其余步骤:
安装 TradingView MCP 服务器。克隆 https://github.com/tradesdontlie/tradingview-mcp.git,运行 npm install,将其添加到我的 MCP 配置文件 ~/.claude/.mcp.json 中,然后用调试端口启动 TradingView。最后使用 tv_health_check 验证连接。
或者按照下面的手动步骤操作。
快速开始
1. 安装
git clone https://github.com/tradesdontlie/tradingview-mcp.git
cd tradingview-mcp
npm install
2. 使用 CDP 启动 TradingView
TradingView 桌面必须在端口 9222 上启用 Chrome DevTools 协议。
Mac:
./scripts/launch_tv_debug_mac.sh
Windows:
scripts\launch_tv_debug.bat
Linux:
./scripts/launch_tv_debug_linux.sh
或手动在任何平台上启动:
/path/to/TradingView --remote-debugging-port=9222
或使用 MCP 工具(自动检测安装路径):
“使用 tv_launch 以调试模式启动 TradingView”
3. 添加到 Claude Code
添加到您的 Claude Code MCP 配置(~/.claude/.mcp.json 或项目中的 .mcp.json):
{
"mcpServers": {
"tradingview": {
"command": "node",
"args": ["/path/to/tradingview-mcp/src/server.js"]
}
}
}
将 /path/to/tradingview-mcp 替换为您的实际路径。
4. 验证
向 Claude 提问:
“使用 tv_health_check 验证 TradingView 是否已连接。”
CLI
每个 MCP 工具也可以作为 tv CLI 命令使用。所有输出均为 JSON 格式,方便与 jq 配合使用。
# 全局安装(可选)
npm link
# 或直接运行
node src/cli/index.js
快速示例
tv status # 检查连接
tv quote # 当前价格
tv symbol AAPL # 更改品种
tv ohlcv --summary # 价格摘要
tv screenshot -r chart # 捕获图表截图
tv pine compile # 编译 Pine Script
tv pane layout 2x2 # 四图表网格
tv pane symbol 1 ES1! # 设置窗格品种
tv stream quote | jq '.close' # 监控价格变化
所有命令
tv status / launch / state / symbol / timeframe / type / info / search
tv quote / ohlcv / values
tv data lines/labels/tables/boxes/strategy/trades/equity/depth/indicator
tv pine get/set/compile/analyze/check/save/new/open/list/errors/console
tv draw shape/list/get/remove/clear
tv alert list/create/delete
tv watchlist get/add
tv indicator add/remove/toggle/set/get
tv layout list/switch
tv pane list/layout/focus/symbol
tv tab list/new/close/switch
tv replay start/step/stop/status/autoplay/trade
tv stream quote/bars/values/lines/labels/tables/all
tv ui click/keyboard/hover/scroll/find/eval/type/panel/fullscreen/mouse
tv screenshot / discover / ui-state / range / scroll
流式传输
tv stream 命令通过 Chrome DevTools 协议定期轮询您本地运行的 TradingView 桌面实例(在 localhost 上)。不连接 TradingView 的服务器。所有数据保留在您的机器上。
[!警告]
无论数据来源如何,以编程方式消耗 TradingView 数据可能与其使用条款冲突。您有责任确保您的使用符合规定。
tv stream quote # 价格跳动监控
tv stream bars # 逐柱线更新
tv stream values # 指标值监控
tv stream lines --filter "NY Levels" # 价格水平监控
tv stream tables --filter Profiler # 表格数据监控
tv stream all # 同时监控所有窗格(多品种)
Claude 如何知道使用哪个工具
当在此项目中工作时,Claude 会自动读取 CLAUDE.md。其中包含完整的决策树:
| 您说… | Claude 使用… |
|---|---|
| “我的图表上有什么?” | chart_get_state → data_get_study_values → quote_get |
| “显示了哪些水平?” | data_get_pine_lines → data_get_pine_labels |
| “读取会话表格” | data_get_pine_tables 并指定 study_filter |
| “给我完整的分析” | quote_get → data_get_study_values → data_get_pine_lines → data_get_pine_labels → data_get_pine_tables → data_get_ohlcv(摘要)→ capture_screenshot |
| “切换到 AAPL 日线” | chart_set_symbol → chart_set_timeframe |
| “编写一个 Pine Script 用于…” | pine_set_source → pine_smart_compile → pine_get_errors |
| “从 3 月 1 日开始回放” | replay_start → replay_step → replay_trade |
| “设置一个四图表网格” | pane_set_layout → 依次对每个窗格执行 pane_set_symbol |
| “在 24500 画一条水平线” | draw_shape(horizontal_line) |
| “截个图” | capture_screenshot |
工具参考(78 个 MCP 工具)
图表读取
| 工具 | 何时使用 | 输出大小 |
|---|---|---|
chart_get_state | 首次调用——获取品种、时间周期、所有指标名称和 ID | ~500B |
data_get_study_values | 读取所有指标的当前 RSI、MACD、BB、EMA 值 | ~500B |
quote_get | 获取最新价格、OHLC、成交量 | ~200B |
data_get_ohlcv | 获取价格柱线。使用 summary: true 获得紧凑统计信息 | 500B(摘要)/ 8KB(100 根柱线) |
自定义指标数据(Pine 绘图)
读取任何可见 Pine 指标输出的 line.new()、label.new()、table.new()、box.new()。
| 工具 | 何时使用 | 输出大小 |
|---|---|---|
data_get_pine_lines | 读取水平价格水平(支撑/阻力、会话水平) | ~1-3KB |
data_get_pine_labels | 读取文本注释和价格(“PDH 24550”、“Bias Long”) | ~2-5KB |
data_get_pine_tables | 读取数据表格(会话统计、分析仪表板) | ~1-4KB |
data_get_pine_boxes | 读取价格区域/范围,返回 {high, low} 对 | ~1-2KB |
始终使用 study_filter 以定位特定指标:study_filter: "Profiler"。
图表控制
| 工具 | 功能 |
|---|---|
chart_set_symbol | 更改代码(BTCUSD、AAPL、ES1!、NYMEX:CL1!) |
chart_set_timeframe | 更改分辨率(1、5、15、60、D、W、M) |
chart_set_type | 更改样式(蜡烛图、HeikinAshi、折线图、面积图、砖形图) |
chart_manage_indicator | 添加/移除指标。使用完整名称:“Relative Strength Index”而非“RSI” |
chart_scroll_to_date | 跳转到某个日期(ISO 格式:“2025-01-15”) |
chart_set_visible_range | 缩放到精确范围(Unix 时间戳) |
symbol_info / symbol_search | 品种元数据和搜索 |
indicator_set_inputs / indicator_toggle_visibility | 更改指标设置,显示/隐藏 |
多窗格布局
| 工具 | 功能 |
|---|---|
pane_list | 列出所有窗格及其品种和活动状态 |
pane_set_layout | 更改网格:s、2h、2v、2x2、4、6、8 |
pane_focus | 聚焦指定索引的窗格 |
pane_set_symbol | 设置任意窗格的品种 |
标签页管理
| 工具 | 功能 |
|---|---|
tab_list | 列出打开的图表标签页 |
tab_new / tab_close | 打开/关闭标签页 |
tab_switch | 按索引切换到标签页 |
Pine Script 开发
| 工具 | 步骤 |
|---|---|
pine_set_source | 1. 将代码注入编辑器 |
pine_smart_compile | 2. 编译(自动检测 + 错误检查) |
pine_get_errors | 3. 读取编译错误(如果有) |
pine_get_console | 4. 读取 log.info() 输出 |
pine_save | 5. 保存到 TradingView 云端 |
pine_get_source | 读取当前脚本(警告:复杂脚本可能超过 200KB) |
pine_new | 创建空白指标/策略/库 |
pine_open / pine_list_scripts | 打开或列出已保存的脚本 |
pine_analyze | 离线静态分析(无需图表) |
pine_check | 服务端编译检查(无需图表) |
回放模式
| 工具 | 步骤 |
|---|---|
replay_start | 进入回放模式并指定日期 |
replay_step | 前进一根柱线 |
replay_autoplay | 自动前进(设置速度,单位为毫秒) |
replay_trade | 买入/卖出/平仓 |
replay_status | 检查持仓、盈亏、日期 |
replay_stop | 返回实时模式 |
绘图、警报、UI 自动化
| 工具 | 功能 |
|---|---|
draw_shape | 绘制水平线、趋势线、矩形、文本 |
draw_list / draw_remove_one / draw_clear | 管理图形 |
alert_create / alert_list / alert_delete | 管理价格警报 |
capture_screenshot | 截图(区域:full、chart、strategy_tester) |
batch_run | 跨多个品种/时间周期运行操作 |
watchlist_get / watchlist_add | 读取/修改关注列表 |
layout_list / layout_switch | 管理已保存的布局 |
ui_open_panel / ui_click / ui_evaluate | UI 自动化 |
tv_launch / tv_health_check / tv_discover | 连接管理 |
上下文管理
工具默认返回紧凑输出,以最小化上下文使用。对于典型的“分析我的图表”工作流,总上下文约为 5-10KB,而不是约 80KB。
| 特性 | 如何节省上下文 |
|---|---|
| Pine 线条 | 仅返回去重后的价格水平,而非每个线条对象 |
| Pine 标签 | 每个研究最多 50 个,仅文本和价格 |
| Pine 表格 | 预格式化的行字符串,无单元格元数据 |
| Pine 矩形区域 | 仅返回去重后的 {high, low} 区域 |
| OHLCV 摘要模式 | 统计信息 + 最后 5 根柱线,而非所有柱线 |
| 指标输入 | 自动过滤加密/编码的 blob |
verbose: true | 在任何 Pine 工具上传递此参数以获取原始数据(含 ID 和颜色) |
study_filter | 定位一个指标,而非扫描所有 |
在您的系统上找到 TradingView
启动脚本和 tv_launch 会自动检测 TradingView。如果自动检测失败:
| 平台 | 常见位置 |
|---|---|
| Mac | /Applications/TradingView.app/Contents/MacOS/TradingView |
| Windows | %LOCALAPPDATA%\TradingView\TradingView.exe、%PROGRAMFILES%\WindowsApps\TradingView*\TradingView.exe |
| Linux | /opt/TradingView/tradingview、~/.local/share/TradingView/TradingView、/snap/tradingview/current/tradingview |
关键标志:--remote-debugging-port=9222
测试
# 需要 TradingView 以 --remote-debugging-port=9222 模式运行
npm test
包含 29 个测试,覆盖:Pine Script 静态分析、服务端编译和 CLI 路由。
架构
Claude Code ←→ MCP 服务器(stdio) ←→ CDP(端口 9222) ←→ TradingView 桌面(Electron)
- 传输:MCP over stdio(78 个工具)+ CLI(
tv命令,30 个命令包含 66 个子命令) - 连接:Chrome DevTools 协议,localhost:9222
- 流式传输:轮询-比较-去重循环,JSONL 输出到 stdout
- 无其他依赖,仅需
@modelcontextprotocol/sdk和chrome-remote-interface
归属
本项目与以下公司无任何关联、认可或从属关系:
- TradingView Inc.——TradingView 是 TradingView Inc. 的商标。
- Anthropic——Claude 和 Claude Code 是 Anthropic, PBC 的商标。本工具是一个独立的 MCP 服务器,通过标准 MCP 协议连接到 Claude Code。它不包含或修改任何 Anthropic 软件。
免责声明
本项目仅供个人、教育和研究用途。
**本工具的工作原理:**本工具使用 Chrome DevTools 协议(CDP),这是基于 Chromium 的应用中内置的标准调试接口。它不会逆向工程任何专有的 TradingView 协议,不会连接 TradingView 的服务器,也不会绕过任何访问控制。调试端口必须由用户通过标准的 Chromium 命令行标志(--remote-debugging-port=9222)显式启用。
使用本软件即表示您确认并同意:
- 您全权负责确保您对本工具的使用符合 TradingView 的使用条款(https://www.tradingview.com/policies/)以及所有适用法律。
- TradingView 的使用条款**限制自动化
相似文章
@Saccc_c: Claude Code + TradingView = 最牛逼的交易看盘组合 TradingView 是美股、crypto 投资者最常用的看盘工具,而现在它可以通过MCP方式完全接入 Claude Code 不到5min配置完毕,你就可以…
本文介绍了一个名为TradingView MCP Bridge的开源工具,它通过MCP协议将Claude Code与本地运行的TradingView Desktop连接,使得AI能够实时读取图表、开发Pine Script策略、进行历史复盘等,形成一个强大的交易看盘组合。
@milesdeutscher: 如何用Vibe Code通过TradingView MCP和Claude Fable 5创建自定义交易指标。我完全不精通技术,而且我…
一份关于如何使用TradingView MCP和Claude Code在Pine Script中创建自定义交易指标的指南,无需技术技能。
一款MCP工具,让你从Claude.ai聊天中运行并管理Claude Code会话(在构思的地方工作)
一款开源MCP工具,让Claude.ai能够运行并管理Claude Code会话,形成一个循环:Claude.ai触发Claude Code,并在浏览器中接收响应,从而免去复制粘贴的操作。
ChromeDevTools/chrome-devtools-mcp
Chrome DevTools MCP 是一个开源的模型上下文协议服务器,允许 AI 编程助手(Gemini、Claude、Cursor、Copilot)控制并检查实时 Chrome 浏览器,用于自动化、调试和性能分析。它将 Chrome DevTools 与 Puppeteer 集成,为 AI 助手提供完整的浏览器检查和自动化能力。
@milesdeutscher: Claude Code 现在可以秒级连接金融数据集。输入提示即可进行金融研究、获取公司数据、访问超过17,000只股票等。
本文介绍了一个新的 MCP 服务器,它允许 Claude Code 和其他 AI 客户端在数秒内连接金融数据集,通过 OAuth 或 API 密钥认证提供股票价格、SEC 文件等数据的访问。