项目简介
'tradingview-mcp' 是一个高效的MCP服务器,它能够快速、安全地捕获TradingView上的金融图表快照。通过集成Playwright浏览器自动化工具,它可以在后台静默运行,根据用户的请求获取指定交易对和时间周期的图表图片,并以编程方式提供给LLM客户端。此外,它还提供用于验证TradingView会话以及列出可用时间周期的辅助工具。
主要功能点
- 获取图表快照: 根据交易对符号(例如"BINANCE:BTCUSDT")、时间周期(如"D"表示日线,"60"表示1小时),以及可选的图表宽度、高度和主题(深色/浅色),生成并返回PNG格式的TradingView图表快照。
- 验证TradingView会话: 检查配置的TradingView账户会话凭证('TRADINGVIEW_SESSION_ID' 和 'TRADINGVIEW_SESSION_ID_SIGN')是否有效,确保服务器能够正常访问TradingView。
- 列出可用时间周期: 提供一份TradingView支持的图表时间周期列表,方便用户了解可用的选项。
安装步骤
- 克隆仓库:
git clone https://github.com/viney-123/tradingview-mcp.git cd tradingview-mcp - 安装依赖: 推荐使用 Python 虚拟环境安装项目依赖:
python -m venv venv source venv/bin/activate # macOS/Linux 或 Git Bash # venv\Scripts\activate # Windows 命令提示符 pip install mcp-server playwright python-dotenv playwright install chromium # 安装Playwright所需的浏览器 - 配置TradingView凭证:
- 在项目根目录创建一个名为 '.env' 的文件。
- 你需要从你的TradingView浏览器会话中获取 'sessionid' 和 'sessionid_sign' cookie。通常可以通过浏览器开发者工具(Application -> Cookies)找到。
- 将它们添加到 '.env' 文件中,格式如下:
TRADINGVIEW_SESSION_ID="你的sessionid值" TRADINGVIEW_SESSION_ID_SIGN="你的sessionid_sign值" - 请注意:这些凭证非常重要,请妥善保管。
服务器配置
MCP客户端需要以下JSON配置信息来启动并连接到TradingView MCP服务器:
{ "name": "tradingview-mcp-server", "command": "python", "args": [ "-m", "src.tradingview_mcp.server" ], "description": "用于获取TradingView图表快照的MCP服务器。", "notes": "此服务器需要Python环境和配置了TradingView会话凭证的.env文件。请确保在运行前已安装所有依赖(mcp-server, playwright, python-dotenv)并执行了'playwright install chromium'。" }
- 'name': 服务器的唯一标识符。
- 'command': 启动服务器的可执行文件,此处为'python'。
- 'args': 传递给'command'的参数,'-m src.tradingview_mcp.server'表示将'src/tradingview_mcp/server.py'作为模块运行。
- 'description': 对服务器功能的简要说明。
- 'notes': 重要的操作提示和前置条件。
基本使用方法 (供LLM客户端调用)
LLM客户端可以通过JSON-RPC协议调用此MCP服务器暴露的工具。
- 获取可用工具列表: LLM客户端会首先调用 'list_tools' 方法来发现所有可用的工具及其功能描述和参数。
- 验证会话: 如果LLM需要确认TradingView凭证是否有效,可以调用 'validate_session' 工具。 例如:'call_tool("validate_session", {})'
- 获取图表快照: 若要获取比特币的日线图,LLM客户端可以调用 'get_chart_snapshot' 工具。 例如:'call_tool("get_chart_snapshot", {"symbol": "BINANCE:BTCUSDT", "interval": "D", "theme": "dark", "width": 1200, "height": 600})' 服务器将返回文本描述和一张包含图表快照的Base64编码PNG图片。
- 查询时间周期: 如果LLM需要知道哪些时间周期可用,可以调用 'list_timeframes' 工具。 例如:'call_tool("list_timeframes", {})' 服务器将返回一个包含所有支持时间周期的文本列表。
信息
分类
网页与API