MCP服务器-TradingView图表图像抓取器
🚀 现在,通过浏览器池优化,并发性能提高了70-80%!
此MCP服务器提供了基于股票代码和时间间隔获取TradingView图表图像的工具,并具有高级浏览器池,以实现最大的并发性能。
🔥 性能优化
浏览器池技术
- 生产版本:用途
main_optimized.py通过浏览器池实现最大并发性能 - 性能改进:并发请求速度提高70-80%
- 并发处理:最多支持4个具有预初始化浏览器实例的同时请求
- 预期性能:
- 1个请求:~6-8s(基线) - 2个并发:每个约3-4s(快60-70%) - 3个并发:每个约2.5-3.5秒(快70-80%)
版本比较
main_optimized.py(生产):浏览器池、并发优化、性能跟踪main.py(遗留):简单的单浏览器方法,用于调试/回退
特性
- 🚀 优化图表图像工具: 通过浏览器池获取直接图表图像,以实现最大的并发性能
- 📊 性能统计: 内置性能监控和统计
- 🔄 浏览器池管理: 预初始化浏览器实例,实现零开销并发请求
- 🎯 自然语言提示: 使用间隔映射轻松进行图表请求
- ⚙️ 环境配置: 通过环境变量完全可配置
- 🔐 TradingView身份验证: 基于会话的安全身份验证
- 💾 剪贴板捕获: 直接base64图像捕获,性能更快
工具
get_tradingview_chart_image
说明: 获取具有优化并发性能的TradingView图表快照的直接图像URL。
演出 使用浏览器池技术,此优化版本在并发请求方面的性能提高了70-80%。
论据:
ticker(str):TradingView股票代码(例如,“BYBIT:BTCUSDT.P”,“NASDAQ:AAPL”)。 必需.interval(str):图表时间间隔(例如,“1”、“5”、“15”、“60”、“240”、“D”、“W”)。 必需.
退货:
- (str):直接TradingView快照图像URL(例如。,
data:image/png;base64,...或https://s3.tradingview.com/snapshots/...).
加薪:
Error(MCP型):如果刮刀遇到错误。错误代码:
- 400:输入错误(无效的股票代码/区间格式) - 503:刮刀错误(刮刀过程中出现故障) - 500:意外的内部服务器错误
get_performance_stats
说明: 获取优化的TradingView MCP服务器的性能统计数据。
退货:
- 关于请求性能、基线改进和浏览器池状态的详细指标
输出示例:
🚀 OPTIMIZED TRADINGVIEW MCP SERVER PERFORMANCE STATS
• Total Requests: 12
• Average Time: 3.30s
• Performance Improvement: 70.8%
• Browsers in Pool: 4
• Max Concurrent: 4提示
Get the {interval} chart for {ticker}
- 将常用时间段名称(例如“1分钟”、“5分钟”、”1小时“、”每日“)映射到TradingView代码
Show me the daily TradingView chart for {ticker}
- 特别要求提供每日(“D”)图表
Fetch TradingView chart image for {ticker} on the {interval} timeframe
- 具有时间框架映射的全面提示
设置
- 创建虚拟环境:
# Navigate to the project directory
cd tradingview-chart-mcp
# Create the venv (use python3 if python is not linked)
python3 -m venv .venv- 激活虚拟环境:
- macOS/Linux:
source .venv/bin/activate- Windows(Git Bash/WSL):
source .venv/Scripts/activate- Windows(命令提示符):
.venv\\Scripts\\activate.bat- Windows(PowerShell):
.venv\\Scripts\\Activate.ps1_(注意:您可能需要调整PowerShell执行策略: Set-ExecutionPolicy RemoteSigned -Scope CurrentUser)_
您的终端提示现在应该表明您处于 (.venv).
- 安装依赖项(在venv中):
pip install -r requirements.txt- 配置环境(用于本地测试):
- 复制 .env.example 到 .env. - 填写您的 TRADINGVIEW_SESSION_ID 和 TRADINGVIEW_SESSION_ID_SIGN 在 .env 文件。您可以在登录TradingView后从浏览器的Cookie中获取这些信息。 - 这 .env 当直接运行服务器时使用文件(例如。, python main.py)用于本地测试。 - 调整可选刮刀设置(MCP_SCRAPER_HEADLESS等等) .env 如果需要进行本地跑步。
- 确保ChromeDriver: 确保
chromedriver已安装并可在系统的PATH中访问,或配置tview-scraper.py因此,如果它允许指定路径。
运行服务器
生产(优化)
python main_optimized.py传统(简单)
python main.py命令行选项
# HTTP transport with custom port
python main_optimized.py --transport streamable-http --port 8003
# Enable authentication (default for TradingView)
python main_optimized.py --auth
# Adjust concurrency
python main_optimized.py --max-concurrent 6
# Disable browser pooling (fallback to traditional)
python main_optimized.py --disable-pooling🧪 性能测试
代理风格测试
使用与生产代理相同的方法测试服务器:
cd tests/
# Sequential performance test
python test_mcp_agent_style.py --runs 5 --ticker BYBIT:BTCUSDT.P --interval 240
# Concurrent performance test
python test_mcp_agent_style.py --concurrent 3 --ticker BYBIT:BTCUSDT.P --interval 240
# Test different symbols and timeframes
python test_mcp_agent_style.py --concurrent 4 --ticker NASDAQ:AAPL --interval 15
python test_mcp_agent_style.py --concurrent 2 --ticker BYBIT:ETHUSDT.P --interval D预期结果
- 顺序的:每个请求约6-8s(基线)
- 并发(3x):每个请求约2.5-3.5秒(改进70-80%)
- 成功率:负载下100%可靠性
- 吞吐量:高效处理多达4个并发请求
🔧 技术细节
浏览器池架构
- 预初始化浏览器:4个浏览器实例可立即使用
- 线程安全池:具有适当锁定的并发访问
- 异步信号量:最佳请求限制
- 性能跟踪:实时统计和监控
- 优雅的清理:适当的浏览器生命周期管理
保存快捷方式功能
这 MCP_SCRAPER_USE_SAVE_SHORTCUT 该功能允许您将图表图像作为base64数据URL直接捕获到剪贴板:
优点:
- 更快的性能:不需要HTTP请求
- 可靠的:不依赖TradingView的CDN
- 离线能力:加载图表后即可工作
- 直接集成:立即使用Base64数据URL
配置:
# Enable clipboard image capture (DEFAULT)
MCP_SCRAPER_USE_SAVE_SHORTCUT=True
# Disable and use traditional screenshot links
MCP_SCRAPER_USE_SAVE_SHORTCUT=False使用示例
可用工具:
get_tradingview_chart_image(ticker: str, interval: str):通过浏览器池优化图表获取
示例提示:
- “获取纳斯达克股票代码AAPL的15分钟图表”
- “显示BYBIT:BTCUSDT.P的日线图”
- “获取COINBASE:ETHUSD在60时间范围内的交易视图图表图像”
停用虚拟环境
完成后:
deactivate🔄 后备选项
如果您在优化版本中遇到问题:
- 禁用浏览器池:
python main_optimized.py --disable-pooling- 使用旧版本:
python main.py- 调试模式:
python main_optimized.py --log-level DEBUG📊 性能监控
优化后的服务器内置了性能监控功能:
- 请求成功率
- 平均响应时间
- 绩效改进指标
- 浏览器池利用率
- 并发请求处理统计
通过以下方式访问这些指标 get_performance_stats 工具或通过服务器日志。
🔌 与MCP客户端(克劳德桌面/光标)一起使用
此服务器支持两种提供配置的方式:
- 经由
.env文件(用于本地测试): 跑步时python main.py服务器将直接从加载凭据和设置.env项目目录中的文件。 - 通过客户端环境变量(建议集成): 当由MCP客户端(如Claude/Cursor)运行时,您应该配置客户端以直接注入所需的环境变量。 这些将覆盖在
.env文件。
克劳德桌面
- 打开您的Claude Desktop配置文件:
- 窗户: %APPDATA%\\Claude\\claude_desktop_config.json - macOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
- 在中添加或合并以下内容
mcpServers对象。在中提供您的凭据env块:
{
"mcpServers": {
"tradingview-chart-mcp": {
"command": "/absolute/path/to/your/tradingview-chart-mcp/.venv/bin/python3",
"args": ["/absolute/path/to/your/tradingview-chart-mcp/main.py"],
"env": {
"TRADINGVIEW_SESSION_ID": "YOUR_SESSION_ID_HERE",
"TRADINGVIEW_SESSION_ID_SIGN": "YOUR_SESSION_ID_SIGN_HERE"
// Optional: Add MCP_SCRAPER_* variables here too if needed
// "MCP_SCRAPER_HEADLESS": "False"
}
}
// ... other servers if any ...
}
}- 替换占位符路径(
command,args)你的实际绝对路径。
- 替换
YOUR_SESSION_ID_HERE和YOUR_SESSION_ID_SIGN_HERE使用您的实际TradingView凭据。
- 重新启动克劳德桌面。
光标
- 首选
Settings -> Cursor Settings -> MCP -> Edit User MCP Config (~/.cursor/mcp.json).
- 在中添加或合并以下内容
mcpServers对象。在中提供您的凭据env块:
{
"mcpServers": {
"tradingview-chart-mcp": {
"command": "/absolute/path/to/your/tradingview-chart-mcp/.venv/bin/python3",
"args": ["/absolute/path/to/your/tradingview-chart-mcp/main.py"],
"env": {
"TRADINGVIEW_SESSION_ID": "YOUR_SESSION_ID_HERE",
"TRADINGVIEW_SESSION_ID_SIGN": "YOUR_SESSION_ID_SIGN_HERE"
// Optional: Add MCP_SCRAPER_* variables here too if needed
// "MCP_SCRAPER_HEADLESS": "False"
}
}
// ... other servers if any ...
}
}- 替换占位符路径(
command,args)你的实际绝对路径。
- 替换
YOUR_SESSION_ID_HERE和YOUR_SESSION_ID_SIGN_HERE使用您的实际TradingView凭据。
- 重新启动游标。
通过Smithery安装
通过以下方式自动安装克劳德桌面版TradingView图表图像抓取器 史密瑟里:
npx -y @smithery/cli install @ertugrul59/tradingview-chart-mcp --client claude配置
环境变量
可以设置以下环境变量来配置刮刀:
TRADINGVIEW_SESSION_ID:您的TradingView会话ID(必填)TRADINGVIEW_SESSION_ID_SIGN:您的TradingView会话ID签名(必填)MCP_SCRAPER_HEADLESS:在无头模式下运行浏览器(默认:True)MCP_SCRAPER_WINDOW_WIDTH:浏览器窗口宽度(默认值:1400)MCP_SCRAPER_WINDOW_HEIGHT:浏览器窗口高度(默认值:1400)MCP_SCRAPER_USE_SAVE_SHORTCUT:使用剪贴板图像捕获而不是屏幕截图链接(默认值:True)MCP_SCRAPER_CHART_PAGE_ID:自定义图表页面ID(可选)
保存快捷方式功能
这 MCP_SCRAPER_USE_SAVE_SHORTCUT 该功能允许您将图表图像作为base64数据URL直接捕获到剪贴板,而不是获取屏幕截图链接。这消除了从URL下载图像的需要。
优点:
- 更快的图表捕获(无需HTTP请求)
- 更可靠(不依赖于TradingView的CDN)
- 加载图表后脱机工作
- 直接使用base64数据URL
它是如何工作的:
- 启用时(
True):用途Shift+Ctrl+S(或Shift+Cmd+S在Mac上)直接将图表图像捕获到剪贴板 - 禁用时(
False):使用传统Alt+S获取截图链接,然后转换为图像URL
配置:
# Enable clipboard image capture (DEFAULT)
MCP_SCRAPER_USE_SAVE_SHORTCUT=True
# Disable and use traditional screenshot links
MCP_SCRAPER_USE_SAVE_SHORTCUT=False