TradingView筛选器MCP服务器
MCP服务器,用于从Supabase获取动态配置的TradingView筛选器数据。使用持久浏览器会话提供2-3秒的快速响应时间。
特性
- 动态配置:从Supabase加载筛选器
controls桌子 - 快速响应:使用持久浏览器获取2-3秒
- 索引过滤:按九个索引(NIFTYBANK、NIFTYIT等)过滤结果
- 自动配置:添加/删除筛选器不需要更改代码
- 持续会话:维护浏览器会话以获得最佳性能
安装
# Install Node.js dependencies
npm install
# Install Python dependencies (using existing venv)
source /Users/jaykrish/agents/project_output/venv/bin/activate
pip install -r requirements.txt配置
环境变量(.env)
SUPABASE_URL=your_supabase_url
SUPABASE_ANON_KEY=your_supabase_anon_keyTradingView Cookie
复制 cookies.json 将TradingView身份验证Cookie添加到根目录。
用法
启动持久服务
持久浏览器服务必须运行才能获得最佳性能:
./start_screener_service.sh启动MCP服务器
npm start停止持久服务
./stop_screener_service.shMCP配置
添加到您的 .mcp.json:
{
"mcpServers": {
"tradingview-screener": {
"command": "node",
"args": [
"/Users/jaykrish/Documents/digitalocean/tradingview-screener-mcp/src/tradingview_screener_mcp.js"
]
}
}
}可用工具
1.列表_筛选器_类型
列出数据库中所有可用的筛选器类型。
2.fetch_screener_data
获取特定类型的筛选器数据。
参数:
screener_type(必填):控制表中的策略名称index_filter(可选):九元、九元、五十元等。
例子:
{
"screener_type": "momentum_breakout_with_volume",
"index_filter": "NIFTYBANK"
}3.获取_筛选_会话_健康
检查持久浏览器会话运行状况。
4.刷新_筛选_会话
重新启动浏览器会话。
5.刷新_筛选_配置
从数据库重新加载筛选器配置。
6.get_screen_config
查看当前筛选器配置。
数据库模式
筛选器在Supabase中配置 controls 表:
SELECT strategy, url, description, holding_period, tradetype
FROM controls
WHERE on_off = 'ON'
AND url LIKE '%tradingview.com%';必填栏:
strategy:唯一筛选器标识符url:TradingView筛选器URLon_off:“ON”启用description:筛选器描述holding_period:BTST、摆动、位置等。tradetype:长,短,两者都有
建筑
MCP Server (Node.js)
↓
Python Handler
↓
Persistent Browser Service (localhost:8765)
↓
TradingView Website (Selenium)演出
- 首次请求:~8-10秒(浏览器初始化)
- 后续请求:2-3秒(使用持久会话)
- 缓存TTL:配置时间为5分钟
- 会话生存期:直到手动重启或崩溃
故障排除
服务无法启动
# Check if port 8765 is in use
lsof -i :8765
# View service logs
tail -f logs/screener_service.log未返回数据
- 检查cookies.json是否存在且有效
- 验证数据库中的TradingView URL
- 检查服务运行状况:
curl http://localhost:8765/health
数据库连接问题
- 验证.env文件是否具有正确的Supabase凭据
- 检查控制表是否有带
on_off = 'ON' - 确保列名匹配:
description(不是desc)
许可证
麻省理工学院
