🚀 现在通过浏览器池优化,性能提升70-80%!
此MCP服务器提供工具,基于股票代码和时间间隔抓取TradingView图表图像,并采用高级浏览器池技术以实现最大并发性能。
main_optimized.py,结合浏览器池以实现最大并发性能main_optimized.py(生产):浏览器池、并发优化、性能追踪main.py(旧版):简单的单浏览器方法,用于调试/回退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')。必需。返回值:
data:image/png;base64,...或https://s3.tradingview.com/snapshots/...)。异常:
Error (MCP类型):如果抓取器遇到错误。错误码:
400:输入错误(无效的股票代码/时间间隔格式)503:抓取器错误(抓取过程中失败)500:意外的内部服务器错误get_performance_stats描述:获取优化的TradingView MCP服务器的性能统计数据。
返回值:
示例输出:
🚀 优化的TradingView MCP服务器性能统计
• 总请求次数:12
• 平均时间:3.30秒
• 性能提升:70.8%
• 浏览器池中的浏览器数量:4
• 最大并发数:4
获取{interval}图表的{ticker}
显示{ticker}的每日TradingView图表
获取{ticker}在{interval}时间段的TradingView图表图像
创建虚拟环境:
# 导航到项目目录
cd tradingview-chart-mcp
# 创建虚拟环境(如果python未链接,请使用python3)
python3 -m venv .venv
激活虚拟环境:
source .venv/bin/activate
source .venv/Scripts/activate
.venv\\Scripts\\activate.bat
.venv\\Scripts\\Activate.ps1
(注意:您可能需要调整PowerShell执行策略:Set-ExecutionPolicy RemoteSigned -Scope CurrentUser)您的终端提示符现在应指示您处于(.venv)中。
安装依赖项(在虚拟环境中):
pip install -r requirements.txt
配置环境(本地测试):
.env.example到.env。.env文件中填写您的TRADINGVIEW_SESSION_ID和TRADINGVIEW_SESSION_ID_SIGN。这些可以从登录TradingView后浏览器的cookie中获得。.env文件用于直接运行服务器(例如python main.py)进行本地测试。.env中调整可选的抓取器设置(如MCP_SCRAPER_HEADLESS等)以适应本地运行。确保ChromeDriver:确保chromedriver已安装并可在系统PATH中访问,或者根据tview-scraper.py的配置指定路径。
python main_optimized.py
python main.py
# 使用自定义端口的HTTP传输
python main_optimized.py --transport streamable-http --port 8003
# 启用认证(默认为TradingView)
python main_optimized.py --auth
# 调整并发数
python main_optimized.py --max-concurrent 6
# 禁用浏览器池(回退到传统模式)
python main_optimized.py --disable-pooling
使用与生产代理相同的方法测试服务器:
cd tests/
# 顺序性能测试
python test_mcp_agent_style.py --runs 5 --ticker BYBIT:BTCUSDT.P --interval 240
# 并发性能测试
python test_mcp_agent_style.py --concurrent 3 --ticker BYBIT:BTCUSDT.P --interval 240
# 测试不同的符号和时间段
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
MCP_SCRAPER_USE_SAVE_SHORTCUT功能允许您直接将图表图像捕获到剪贴板作为base64数据URL:
优点:
配置:
# 启用剪贴板图像捕获(默认)
MCP_SCRAPER_USE_SAVE_SHORTCUT=True
# 禁用并使用传统的截图链接
MCP_SCRAPER_USE_SAVE_SHORTCUT=False
可用工具:
get_tradingview_chart_image(ticker: str, interval: str):使用浏览器池优化的图表抓取示例提示:
完成时:
deactivate
如果您遇到优化版本的问题:
禁用浏览器池:
python main_optimized.py --disable-pooling
使用旧版:
python main.py
调试模式:
python main_optimized.py --log-level DEBUG
优化的服务器包括内置的性能监控:
通过get_performance_stats工具或服务器日志访问这些指标。
此服务器支持两种方式提供配置:
.env文件(用于本地测试):当直接运行python main.py时,服务器将从项目目录中的.env文件加载凭证和设置。.env文件中找到的值。打开您的Claude Desktop配置文件:
%APPDATA%\\Claude\\claude_desktop_config.json~/Library/Application\ Support/Claude/claude_desktop_config.json在mcpServers对象内添加或合并以下内容。在env块中提供您的凭证:
{
"mcpServers": {
"tradingview-chart-mcp": {
"command": "/绝对路径到你的tradingview-chart-mcp/.venv/bin/python3",
"args": ["/绝对路径到你的tradingview-chart-mcp/main.py"],
"env": {
"TRADINGVIEW_SESSION_ID": "YOUR_SESSION_ID_HERE",
"TRADINGVIEW_SESSION_ID_SIGN": "YOUR_SESSION_ID_SIGN_HERE"
// 可选:如有需要,在这里添加MCP_SCRAPER_*变量
// "MCP_SCRAPER_HEADLESS": "False"
}
}
// ... 其他服务器如果有...
}
}
替换占位符路径(command,args)为您实际的绝对路径。
替换YOUR_SESSION_ID_HERE和YOUR_SESSION_ID_SIGN_HERE为您实际的TradingView凭证。
重启Claude Desktop。
前往:设置 -> Cursor 设置 -> MCP -> 编辑用户MCP配置(~/.cursor/mcp.json)。
在mcpServers对象内添加或合并以下内容。在env块中提供您的凭证:
{
"mcpServers": {
"tradingview-chart-mcp": {
"command": "/绝对路径到你的tradingview-chart-mcp/.venv/bin/python3",
"args": ["/绝对路径到你的tradingview-chart-mcp/main.py"],
"env": {
"TRADINGVIEW_SESSION_ID": "YOUR_SESSION_ID_HERE",
"TRADINGVIEW_SESSION_ID_SIGN": "YOUR_SESSION_ID_SIGN_HERE"
// 可选:如有需要,在这里添加MCP_SCRAPER_*变量
// "MCP_SCRAPER_HEADLESS": "False"
}
}
// ... 其他服务器如果有...
}
}
替换占位符路径(command,args)为您实际的绝对路径。
替换YOUR_SESSION_ID_HERE和YOUR_SESSION_ID_SIGN_HERE为您实际的TradingView凭证。
重启Cursor。
要通过Smithery自动安装TradingView图表图像抓取器供Claude Desktop使用:
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下载图像的需求。
优点:
如何工作:
True)时:使用Shift+Ctrl+S(或Mac上的Shift+Cmd+S)直接将图表图像捕获到剪贴板False)时:使用传统的Alt+S获取截图链接,然后转换为图像URL配置:
# 启用剪贴板图像捕获(默认)
MCP_SCRAPER_USE_SAVE_SHORTCUT=True
# 禁用并使用传统的截图链接
MCP_SCRAPER_USE_SAVE_SHORTCUT=False